1#ifndef __DECODERCUSTOMMULTITONE__
2#define __DECODERCUSTOMMULTITONE__
8#define MAX_DECODE_STRING_SIZE 30
11class SpectralAnalysis;
15class DecoderCustomMultiTone :
public Decoder {
17 DecoderCustomMultiTone(
const BeepingConfig& config,
float sr,
int buffsize,
19 ~DecoderCustomMultiTone(
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 float GetDecodingBeginFreq();
34 float GetDecodingEndFreq();
36 int GetSpectrum(
float* spectrumBuffer);
38 int AnalyzeStartTokens(
float* audioBuffer);
39 int AnalyzeToken(
float* audioBuffer);
41 int ComputeStatsStartTokens(
void);
42 int ComputeStats(
void);
44 int getSizeFilledFrameCircularBuffer();
45 int getSizeFilledBlockCircularBuffer();
47 float ComputeBlockMagSpecSumsCurrentToken(
int midFreqBin,
int width,
49 std::vector<float>& sumPerFrame);
50 float ComputeBlockMagSpecSumsLastToken(
int midFreqBin,
int width,
int nbins,
51 std::vector<float>& sumPerFrame);