1#ifndef __DECODERALLMULTITONE__
2#define __DECODERALLMULTITONE__
8#define MAX_DECODE_STRING_SIZE 30
11class SpectralAnalysis;
15class DecoderAllMultiTone :
public Decoder {
17 DecoderAllMultiTone(
const BeepingConfig& config,
float sr,
int buffsize,
20 using Decoder::AnalyzeToken;
21 using Decoder::ComputeStats;
22 using Decoder::ComputeStatsStartTokens;
23 ~DecoderAllMultiTone(
void);
27 int* mBlockEnergyRatiosMaxToneIdx;
28 int* mBlockEnergyRatiosSecondToneIdx;
29 int* mToneRepetitions;
31 int* idxTonesFrontDoorToken1;
32 int* idxTonesFrontDoorToken2;
33 int** idxTonesFrontDoorToken1Array;
34 int** idxTonesFrontDoorToken2Array;
36 int DecodeAudioBuffer(
float* audioBuffer,
int size);
37 int GetDecodedData(
char* stringDecoded);
39 int GetSpectrum(
float* spectrumBuffer);
41 int AnalyzeStartTokens(
float* audioBuffer);
42 int AnalyzeToken(
float* audioBuffer,
int mode);
44 int ComputeStatsStartTokens(
int mode);
45 int ComputeStats(
int mode);
47 int getSizeFilledFrameCircularBuffer();
48 int getSizeFilledBlockCircularBuffer();
49 int getSizeFilledBlockCircularBuffer(
int mode);
51 float ComputeBlockMagSpecSumsCurrentToken(
int midFreqBin,
int width,
53 std::vector<float>& sumPerFrame);
54 float ComputeBlockMagSpecSumsLastToken(
int midFreqBin,
int width,
int nbins,
55 std::vector<float>& sumPerFrame);