beeping-core 2.0.0
C++20 library for encoding and decoding data over sound
Loading...
Searching...
No Matches
BeepingCoreLib_api.h
Go to the documentation of this file.
1
12
13#ifndef __BEEPINGCORELIB_API__
14#define __BEEPINGCORELIB_API__
15
16#ifndef __APPLE__
17#ifdef BEEPING_AS_DLL
18#define BEEPING_DLLEXPORT __declspec(dllexport)
19#else
20#define BEEPING_DLLEXPORT
21#endif
22
23#else
24#define BEEPING_DLLEXPORT __attribute__((visibility("default")))
25#endif
26
27#include "stdint.h"
28
29#ifdef __cplusplus
30extern "C" {
31#endif //__cplusplus
32
46
49
58BEEPING_DLLEXPORT void* BEEPING_Create();
59
67BEEPING_DLLEXPORT void BEEPING_Destroy(void* beepingObject);
68
70
73
78BEEPING_DLLEXPORT const char* BEEPING_GetVersion();
79
86BEEPING_DLLEXPORT int32_t BEEPING_GetVersionInfo(char* versioninfo);
87
89
92
106BEEPING_DLLEXPORT int32_t BEEPING_Configure(int mode, float samplingRate,
107 int32_t bufferSize,
108 void* beepingObject);
109
123BEEPING_DLLEXPORT int32_t BEEPING_SetAudioSignature(int32_t samplesSize,
124 const float* samplesBuffer,
125 void* beepingObject);
126
128
131
145BEEPING_DLLEXPORT int32_t BEEPING_EncodeDataToAudioBuffer(
146 const char* stringToEncode, int32_t size, int32_t type,
147 const char* melodyString, int32_t melodySize, void* beepingObject);
148
160BEEPING_DLLEXPORT int32_t BEEPING_GetEncodedAudioBuffer(float* audioBuffer,
161 void* beepingObject);
162
168BEEPING_DLLEXPORT int32_t BEEPING_ResetEncodedAudioBuffer(void* beepingObject);
169
171
174
185BEEPING_DLLEXPORT int32_t BEEPING_DecodeAudioBuffer(float* audioBuffer,
186 int size,
187 void* beepingObject);
188
199BEEPING_DLLEXPORT int32_t BEEPING_GetDecodedData(char* stringDecoded,
200 void* beepingObject);
201
203
206
210BEEPING_DLLEXPORT float BEEPING_GetConfidence(void* beepingObject);
211
215BEEPING_DLLEXPORT float BEEPING_GetConfidenceError(void* beepingObject);
216
220BEEPING_DLLEXPORT float BEEPING_GetConfidenceNoise(void* beepingObject);
221
225BEEPING_DLLEXPORT float BEEPING_GetReceivedBeepsVolume(void* beepingObject);
226
231BEEPING_DLLEXPORT int32_t BEEPING_GetDecodedMode(void* beepingObject);
232
234
237
241BEEPING_DLLEXPORT float BEEPING_GetDecodingBeginFreq(void* beepingObject);
242
246BEEPING_DLLEXPORT float BEEPING_GetDecodingEndFreq(void* beepingObject);
247
249
250#ifdef __cplusplus
251}
252#endif //__cplusplus
253
254#endif //__BEEPINGCORELIB_API__
BEEPING_DLLEXPORT float BEEPING_GetDecodingEndFreq(void *beepingObject)
Upper bound of the decoding frequency range (Hz).
BEEPING_DLLEXPORT int32_t BEEPING_ResetEncodedAudioBuffer(void *beepingObject)
Reset the read index, allowing the encoded buffer to be re-read.
BEEPING_MODE
Encoding / decoding mode selector.
Definition BeepingCoreLib_api.h:40
@ BEEPING_MODE_ALL
Decode Audible + Inaudible simultaneously.
Definition BeepingCoreLib_api.h:44
@ BEEPING_MODE_AUDIBLE
Audible tones in the 3.3-10 kHz range.
Definition BeepingCoreLib_api.h:41
@ BEEPING_MODE_INAUDIBLE
Inaudible tones (17.8-21 kHz at 44.1k+, adaptive at lower rates).
Definition BeepingCoreLib_api.h:42
BEEPING_DLLEXPORT int32_t BEEPING_GetVersionInfo(char *versioninfo)
Copy the library version string into a caller-provided buffer.
BEEPING_DLLEXPORT const char * BEEPING_GetVersion()
Return the library version string.
BEEPING_DLLEXPORT void * BEEPING_Create()
Create a new BeepingCore instance.
BEEPING_DLLEXPORT int32_t BEEPING_EncodeDataToAudioBuffer(const char *stringToEncode, int32_t size, int32_t type, const char *melodyString, int32_t melodySize, void *beepingObject)
Encode a string payload into an internal audio buffer.
BEEPING_DLLEXPORT int32_t BEEPING_GetDecodedMode(void *beepingObject)
Mode that was decoded when BEEPING_MODE_ALL is active.
BEEPING_DLLEXPORT float BEEPING_GetReceivedBeepsVolume(void *beepingObject)
Average received beep volume in dB for the last transmission.
BEEPING_DLLEXPORT float BEEPING_GetDecodingBeginFreq(void *beepingObject)
Lower bound of the decoding frequency range (Hz).
BEEPING_DLLEXPORT int32_t BEEPING_Configure(int mode, float samplingRate, int32_t bufferSize, void *beepingObject)
Configure the library for a given mode and sample rate.
BEEPING_DLLEXPORT int32_t BEEPING_GetEncodedAudioBuffer(float *audioBuffer, void *beepingObject)
Read a chunk of encoded audio into the caller's buffer.
BEEPING_DLLEXPORT float BEEPING_GetConfidence(void *beepingObject)
Combined reception-quality score (0.0 poor — 1.0 ideal).
BEEPING_DLLEXPORT float BEEPING_GetConfidenceNoise(void *beepingObject)
Confidence derived from signal-to-noise ratio (0.0 — 1.0).
BEEPING_DLLEXPORT int32_t BEEPING_DecodeAudioBuffer(float *audioBuffer, int size, void *beepingObject)
Feed an audio buffer to the decoder.
BEEPING_DLLEXPORT int32_t BEEPING_GetDecodedData(char *stringDecoded, void *beepingObject)
Retrieve the last decoded string.
BEEPING_DLLEXPORT int32_t BEEPING_SetAudioSignature(int32_t samplesSize, const float *samplesBuffer, void *beepingObject)
Install a custom audio signature to mix with encoded output.
BEEPING_DLLEXPORT float BEEPING_GetConfidenceError(void *beepingObject)
Confidence derived from Reed-Solomon corrections (0.0 — 1.0).
BEEPING_DLLEXPORT void BEEPING_Destroy(void *beepingObject)
Destroy a BeepingCore instance.