2#include <android/log.h>
6void ios_log(
const char* message, ...) __attribute__((format(printf, 1, 2)));
11enum DECODING_MODE { DECODING_MODE_AUDIBLE = 0, DECODING_MODE_INAUDIBLE = 1 };
14constexpr int numTokensAll = 32;
15constexpr int numTonesAll = 9;
17constexpr int numTokensAudible = numTokensAll;
18constexpr int numTokensNonAudible = numTokensAll;
20constexpr int numTonesAudibleMultiTone = numTonesAll;
21constexpr int numTonesNonAudibleMultiTone = numTonesAll;
23constexpr int numFrontDoorTokens = 2;
24constexpr int numWordTokens = 9;
25constexpr int numCheckTokens = 1;
26constexpr int numCorrectionTokens = 8;
27constexpr int numMessageTokens =
28 numWordTokens + numCheckTokens + numCorrectionTokens;
29constexpr int numTotalTokens = numFrontDoorTokens + numMessageTokens;
32extern int getIdxFromChar(
char c);
33extern char getCharFromIdx(
int idx);
35extern float getFreqFromIdxAudible(
int idx,
float mSampleRate,
int mWindowSize);
36extern float getFreqFromIdxNonAudible(
int idx,
float mSampleRate,
39extern void getFreqsFromIdxAudibleMultiTone(
int idx,
float samplingRate,
40 int windowSize,
float** freqs);
41extern float getToneFromIdxAudibleMultiTone(
int idx,
float samplingRate,
43extern void getIdxsFromIdxAudibleMultiTone(
int idx,
int** idxs);
45extern void getFreqsFromIdxNonAudibleMultiTone(
int idx,
float samplingRate,
46 int windowSize,
float baseFreq,
47 float freqOffset,
float** freqs);
48extern float getToneFromIdxNonAudibleMultiTone(
int idx,
float samplingRate,
49 int windowSize,
float baseFreq,
51extern void getIdxsFromIdxNonAudibleMultiTone(
int idx,
int** idxs);
53extern int getIdxTokenFromIdxsTonesAudibleMultiTone(
int idx1,
int idx2);
54extern int getIdxTokenFromIdxsTonesNonAudibleMultiTone(
int idx1,
int idx2);
56extern float getLoudnessFromIdx(
int idx,
int numTokens);
57extern void getLoudnessAudibleMultiToneFromIdx(
int idx,
float** freqsLoudness);
58extern void getLoudnessNonAudibleMultiToneFromIdx(
int idx,
59 float** freqsLoudness);
61extern float getMusicalNoteFromIdx(
int idx);
63extern float maxValue(
float* myArray,
int size);
64extern int maxValue(
int* myArray,
int size);
66extern float secondValue(
float* myArray,
int size);
68extern int maxValueIdx(
float* myArray,
int size);
69extern int maxValueIdx(
int* myArray,
int size);
71extern int secondValueIdx(
float* myArray,
int size);
72extern int secondValueIdx(
int* myArray,
int size);
74extern float sum(
float* data,
int size);
75extern float square_sum(
float* data,
int size);
76extern float mean(
float* data,
int size);
77extern float standard_deviation(
float* data,
int size);
78extern float standard_deviation(
float* data,
float mean,
int size);