TinyModem
Header-only software audio modem library
Loading...
Searching...
No Matches
GGWave.h File Reference
#include <ctype.h>
#include <math.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "AudioTools.h"
#include "ReedSolomon.h"
Include dependency graph for GGWave.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tinymodem::GGWaveProtocol
 Transmission protocol of ggwave (https://github.com/ggerganov/ggwave): the ids and parameters are identical to the original. The tones are multiples of sample_rate / samplesPerFrame (46.875 Hz at 48 kHz). More...
struct  tinymodem::GGWaveConfig
 Configuration of the ggwave compatible modem (GGWaveEncoder, GGWaveDecoder). Each message (up to 140 bytes) starts and ends with a marker and is protected by Reed-Solomon codes. Each byte is sent as 2 of 16 tones which are transmitted at the same time. More...

Namespaces

namespace  tinymodem
 TinyModem: software audio modems and packets with error correction.

Typedefs

using tinymodem::GGWaveRS = RSCodec

Enumerations

enum  tinymodem::GGWaveProtocolId {
  tinymodem::GGWAVE_AUDIBLE_NORMAL = 0 , tinymodem::GGWAVE_AUDIBLE_FAST = 1 , tinymodem::GGWAVE_AUDIBLE_FASTEST = 2 , tinymodem::GGWAVE_ULTRASOUND_NORMAL = 3 ,
  tinymodem::GGWAVE_ULTRASOUND_FAST = 4 , tinymodem::GGWAVE_ULTRASOUND_FASTEST = 5 , tinymodem::GGWAVE_DT_NORMAL = 6 , tinymodem::GGWAVE_DT_FAST = 7 ,
  tinymodem::GGWAVE_DT_FASTEST = 8
}
 Protocol ids of ggwave: the values are identical to ggwave's ggwave_ProtocolId. The mono-tone protocols (MT, 9 - 11) are not supported. More...