beeping-core 2.0.0
C++20 library for encoding and decoding data over sound
Loading...
Searching...
No Matches
DecoderNonAudible.h
1#ifndef __DECODERNONAUDIBLE__
2#define __DECODERNONAUDIBLE__
3
4#include <Decoder.h>
5
6#include <vector>
7
8#define MAX_DECODE_STRING_SIZE 30 // max decoded string size is 30
9
10namespace BEEPING {
11class SpectralAnalysis;
12class ReedSolomon;
13// class Decoder;
14
15class DecoderNonAudible : public Decoder {
16 public:
17 DecoderNonAudible(const BeepingConfig& config, float sr, int buffsize,
18 int windowSize);
19 ~DecoderNonAudible(void);
20
21 int mSizeNighbBins;
22 int mSizeNeighbTokenBinAnal;
23 float* mEvalNeighbTokenMags;
24
25 int DecodeAudioBuffer(float* audioBuffer, int size);
26 int GetDecodedData(char* stringDecoded);
27
28 int GetSpectrum(float* spectrumBuffer);
29
30 int AnalyzeStartTokens(float* audioBuffer);
31 int AnalyzeToken(float* audioBuffer);
32
33 int ComputeStatsStartTokens(void);
34 int ComputeStats(void);
35
36 int getSizeFilledFrameCircularBuffer();
37 int getSizeFilledBlockCircularBuffer();
38
39 int DeReverbToken(const int nbins, int* freqsBins);
40
41 float ComputeBlockMagSpecSumsCurrentToken(int midFreqBin, int width,
42 int nbins,
43 std::vector<float>& sumPerFrame);
44 float ComputeBlockMagSpecSumsLastToken(int midFreqBin, int width, int nbins,
45 std::vector<float>& sumPerFrame);
46};
47} // namespace BEEPING
48
49#endif //__DECODERNONAUDIBLE__