1#ifndef __DECODERNONAUDIBLEMULTITONE__
2#define __DECODERNONAUDIBLEMULTITONE__
8#define MAX_DECODE_STRING_SIZE 30
11class SpectralAnalysis;
15class DecoderNonAudibleMultiTone :
public Decoder {
17 DecoderNonAudibleMultiTone(
const BeepingConfig& config,
float sr,
18 int buffsize,
int windowSize);
19 ~DecoderNonAudibleMultiTone(
void);
23 int* mBlockEnergyRatiosMaxToneIdx;
24 int* mBlockEnergyRatiosSecondToneIdx;
25 int* mToneRepetitions;
27 int* idxTonesFrontDoorToken1;
28 int* idxTonesFrontDoorToken2;
30 int DecodeAudioBuffer(
float* audioBuffer,
int size);
31 int GetDecodedData(
char* stringDecoded);
33 int GetSpectrum(
float* spectrumBuffer);
35 int AnalyzeStartTokens(
float* audioBuffer);
36 int AnalyzeToken(
float* audioBuffer);
38 int ComputeStatsStartTokens(
void);
39 int ComputeStats(
void);
41 int getSizeFilledFrameCircularBuffer();
42 int getSizeFilledBlockCircularBuffer();
44 float ComputeBlockMagSpecSumsCurrentToken(
int midFreqBin,
int width,
46 std::vector<float>& sumPerFrame);
47 float ComputeBlockMagSpecSumsLastToken(
int midFreqBin,
int width,
int nbins,
48 std::vector<float>& sumPerFrame);