spandsp 0.0.6
fsk.h File Reference

Go to the source code of this file.

Classes

struct  fsk_spec_t
 

Macros

#define FSK_MAX_WINDOW_LEN   128
 

Typedefs

typedef struct fsk_tx_state_s fsk_tx_state_t
 
typedef struct fsk_rx_state_s fsk_rx_state_t
 

Enumerations

enum  {
  FSK_V21CH1 = 0 , FSK_V21CH2 , FSK_V23CH1 , FSK_V23CH2 ,
  FSK_BELL103CH1 , FSK_BELL103CH2 , FSK_BELL202 , FSK_WEITBRECHT ,
  FSK_WEITBRECHT50 , FSK_V21CH1_110
}
 
enum  {
  FSK_FRAME_MODE_ASYNC = 0 , FSK_FRAME_MODE_SYNC = 1 , FSK_FRAME_MODE_5N1_FRAMES = 7 , FSK_FRAME_MODE_7N1_FRAMES = 9 ,
  FSK_FRAME_MODE_7E1_FRAMES = 10 , FSK_FRAME_MODE_7E2_FRAMES = 11
}
 

Functions

fsk_tx_state_tfsk_tx_init (fsk_tx_state_t *s, const fsk_spec_t *spec, get_bit_func_t get_bit, void *user_data)
 Initialise an FSK modem transmit context. More...
 
int fsk_tx_restart (fsk_tx_state_t *s, const fsk_spec_t *spec)
 
int fsk_tx_release (fsk_tx_state_t *s)
 
int fsk_tx_free (fsk_tx_state_t *s)
 
void fsk_tx_power (fsk_tx_state_t *s, float power)
 Adjust an FSK modem transmit context's power output. More...
 
void fsk_tx_set_get_bit (fsk_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
 
void fsk_tx_set_modem_status_handler (fsk_tx_state_t *s, modem_status_func_t handler, void *user_data)
 Change the modem status report function associated with an FSK modem transmit context. More...
 
 SPAN_DECLARE_NONSTD (int) fsk_tx(fsk_tx_state_t *s
 Generate a block of FSK modem audio samples. More...
 
float fsk_rx_signal_power (fsk_rx_state_t *s)
 
void fsk_rx_signal_cutoff (fsk_rx_state_t *s, float cutoff)
 Adjust an FSK modem receive context's carrier detect power threshold. More...
 
fsk_rx_state_tfsk_rx_init (fsk_rx_state_t *s, const fsk_spec_t *spec, int framing_mode, put_bit_func_t put_bit, void *user_data)
 Initialise an FSK modem receive context. More...
 
int fsk_rx_restart (fsk_rx_state_t *s, const fsk_spec_t *spec, int framing_mode)
 
int fsk_rx_release (fsk_rx_state_t *s)
 
int fsk_rx_free (fsk_rx_state_t *s)
 
void fsk_rx_set_put_bit (fsk_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
 
void fsk_rx_set_modem_status_handler (fsk_rx_state_t *s, modem_status_func_t handler, void *user_data)
 Change the modem status report function associated with an FSK modem receive context. More...
 

Variables

SPAN_DECLARE_DATA const fsk_spec_t preset_fsk_specs []
 
int16_t amp []
 
int16_t int len
 

Typedef Documentation

◆ fsk_rx_state_t

FSK modem receive descriptor. This defines the state of a single working instance of an FSK modem receiver.

◆ fsk_tx_state_t

FSK modem transmit descriptor. This defines the state of a single working instance of an FSK modem transmitter.

Function Documentation

◆ fsk_rx_init()

fsk_rx_state_t * fsk_rx_init ( fsk_rx_state_t s,
const fsk_spec_t spec,
int  framing_mode,
put_bit_func_t  put_bit,
void *  user_data 
)

Initialise an FSK modem receive context.

Initialise an FSK modem receive context.

Parameters
sThe modem context.
specThe specification of the modem tones and rate.
framing_mode0 for fully asynchronous mode. 1 for synchronous mode. >1 for this many bits per asynchronous character frame.
put_bitThe callback routine used to put the received data.
user_dataAn opaque pointer.
Returns
A pointer to the modem context, or NULL if there was a problem.

◆ fsk_rx_set_modem_status_handler()

void fsk_rx_set_modem_status_handler ( fsk_rx_state_t s,
modem_status_func_t  handler,
void *  user_data 
)

Change the modem status report function associated with an FSK modem receive context.

Change the modem status report function associated with an FSK modem receive context.

Parameters
sThe modem context.
handlerThe callback routine used to report modem status changes.
user_dataAn opaque pointer.

References fsk_rx_state_s::status_handler, and fsk_rx_state_s::status_user_data.

◆ fsk_rx_signal_cutoff()

void fsk_rx_signal_cutoff ( fsk_rx_state_t s,
float  cutoff 
)

Adjust an FSK modem receive context's carrier detect power threshold.

Adjust an FSK modem receive context's carrier detect power threshold.

Parameters
sThe modem context.
cutoffThe power level, in dBm0

References power_meter_level_dbm0().

◆ fsk_rx_signal_power()

float fsk_rx_signal_power ( fsk_rx_state_t s)

Get the current received signal power.

Parameters
sThe modem context.
Returns
The signal power, in dBm0.

References power_meter_current_dbm0().

◆ fsk_tx_init()

fsk_tx_state_t * fsk_tx_init ( fsk_tx_state_t s,
const fsk_spec_t spec,
get_bit_func_t  get_bit,
void *  user_data 
)

Initialise an FSK modem transmit context.

Initialise an FSK modem transmit context.

Parameters
sThe modem context.
specThe specification of the modem tones and rate.
get_bitThe callback routine used to get the data to be transmitted.
user_dataAn opaque pointer.
Returns
A pointer to the modem context, or NULL if there was a problem.

◆ fsk_tx_power()

void fsk_tx_power ( fsk_tx_state_t s,
float  power 
)

Adjust an FSK modem transmit context's power output.

Adjust an FSK modem transmit context's power output.

Parameters
sThe modem context.
powerThe power level, in dBm0

◆ fsk_tx_set_modem_status_handler()

void fsk_tx_set_modem_status_handler ( fsk_tx_state_t s,
modem_status_func_t  handler,
void *  user_data 
)

Change the modem status report function associated with an FSK modem transmit context.

Change the modem status report function associated with an FSK modem transmit context.

Parameters
sThe modem context.
handlerThe callback routine used to report modem status changes.
user_dataAn opaque pointer.

References fsk_tx_state_s::status_handler, and fsk_tx_state_s::status_user_data.

◆ SPAN_DECLARE_NONSTD()

SPAN_DECLARE_NONSTD ( int  )

Generate a block of FSK modem audio samples.

Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Get a bit of received non-ECM image data.

Get the next bit of a transmitted serial bit stream.

Fake processing of a missing block of received FSK modem audio samples.

Process a block of received FSK modem audio samples.

Generate a block of FSK modem audio samples.

Parameters
sThe modem context.
ampThe audio sample buffer.
lenThe number of samples to be generated.
Returns
The number of samples actually generated.

Process a block of received FSK modem audio samples.

Parameters
sThe modem context.
ampThe audio sample buffer.
lenThe number of samples in the buffer.
Returns
The number of samples unprocessed.

Fake processing of a missing block of received FSK modem audio samples (e.g due to packet loss).

Parameters
sThe modem context.
lenThe number of samples to fake.
Returns
The number of samples unprocessed.