TinyModem
Header-only software audio modem library
Loading...
Searching...
No Matches
tinymodem::ModemEncoder Class Referenceabstract

Common API of the modulators (FSKEncoder, MFSKEncoder): the written data is converted to 16 bit PCM audio which is written to the output. More...

#include <ModemBase.h>

Inheritance diagram for tinymodem::ModemEncoder:
Collaboration diagram for tinymodem::ModemEncoder:

Public Member Functions

void setOutput (Print &out) override
void setGenerator (audio_tools::SoundGenerator< int16_t > &generator)
audio_tools::SoundGenerator< int16_t > & getGenerator ()
 Provides the active tone generator.
virtual bool endTransmission (size_t silence_samples=0)=0
virtual bool isTransmitting ()=0
 true between the first character and endTransmission()
virtual bool writeIdle (size_t nsamples)
 Sends an idle carrier: returns false if this is not supported.
void writeSilence (size_t nsamples)
 Writes the indicated number of samples of silence.
void writeTone (float freq, size_t nsamples)
 Writes a tone for the indicated number of samples.
void flush ()
 Ends the transmission.
virtual float symbolRate ()=0
 Symbols (bits for FSK) per second.
const char * mime () override

Protected Attributes

ToneOutput tones

Detailed Description

Common API of the modulators (FSKEncoder, MFSKEncoder): the written data is converted to 16 bit PCM audio which is written to the output.

Member Function Documentation

◆ endTransmission()

virtual bool tinymodem::ModemEncoder::endTransmission ( size_t silence_samples = 0)
pure virtual

◆ flush()

void tinymodem::ModemEncoder::flush ( )
inline

Ends the transmission.

◆ getGenerator()

audio_tools::SoundGenerator< int16_t > & tinymodem::ModemEncoder::getGenerator ( )
inline

Provides the active tone generator.

◆ isTransmitting()

◆ mime()

const char * tinymodem::ModemEncoder::mime ( )
inlineoverride

◆ setGenerator()

void tinymodem::ModemEncoder::setGenerator ( audio_tools::SoundGenerator< int16_t > & generator)
inline

Replaces the default tone generator: the generator must change the frequency immediately and keep the phase continuous in setFrequency() (e.g. the AudioTools FastIntSineGenerator). Call it before begin().

◆ setOutput()

void tinymodem::ModemEncoder::setOutput ( Print & out)
inlineoverride

◆ symbolRate()

◆ writeIdle()

virtual bool tinymodem::ModemEncoder::writeIdle ( size_t nsamples)
inlinevirtual

Sends an idle carrier: returns false if this is not supported.

Reimplemented in tinymodem::AX25Encoder, tinymodem::DTMFEncoder, tinymodem::FSKEncoder, tinymodem::MorseEncoder, tinymodem::OliviaEncoder, and tinymodem::PSKEncoder.

◆ writeSilence()

void tinymodem::ModemEncoder::writeSilence ( size_t nsamples)
inline

Writes the indicated number of samples of silence.

◆ writeTone()

void tinymodem::ModemEncoder::writeTone ( float freq,
size_t nsamples )
inline

Writes a tone for the indicated number of samples.

Member Data Documentation

◆ tones

ToneOutput tinymodem::ModemEncoder::tones
protected

The documentation for this class was generated from the following file: