beeping-core 2.0.0
C++20 library for encoding and decoding data over sound
Loading...
Searching...
No Matches
Encoder.h
1#ifndef __ENCODER__
2#define __ENCODER__
3
4#include <BeepingConfig.h>
5
6namespace BEEPING {
7class ReedSolomon;
8
9class Encoder {
10 public:
11 Encoder(const BeepingConfig& config, float samplingRate, int buffsize,
12 int windowSize, int numTokens, int numTones);
13 virtual ~Encoder(void);
14
15 int SetAudioSignature(int samplesSize, const float* samplesBuffer);
16
17 ReedSolomon* mReedSolomon;
18 virtual int EncodeDataToAudioBuffer(const char* stringToEncode, int type,
19 int size, const char* melodyString,
20 int melodySize);
21 int GetEncodedAudioBuffer(float* audioBuffer);
22 int ResetEncodedAudioBuffer();
23
24 // float fastSin(float x);
25
26 int mnAudioSignatureSamples;
27 float* mAudioSignature;
28
29 float* mAudioBufferEncodedString;
30
31 BeepingConfig m_config;
32
33 int mNumTokens;
34 int mNumTones;
35
36 float mSampleRate;
37 int mReadIndexEncodedAudioBuffer;
38 int mNumMaxSamplesEncodedString;
39 int mNumSamplesEncodedString;
40 int mBufferSize;
41
42 int mWindowSize;
43};
44} // namespace BEEPING
45
46#endif //__ENCODER__