spandsp 0.0.6
v29rx.h File Reference

Go to the source code of this file.

Typedefs

typedef void(* qam_report_handler_t) (void *user_data, const complexf_t *constel, const complexf_t *target, int symbol)
typedef struct v29_rx_state_s v29_rx_state_t

Functions

v29_rx_state_tv29_rx_init (v29_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
 Initialise a V.29 modem receive context.
int v29_rx_restart (v29_rx_state_t *s, int bit_rate, int old_train)
 Reinitialise an existing V.29 modem receive context.
int v29_rx_release (v29_rx_state_t *s)
 Release a V.29 modem receive context.
int v29_rx_free (v29_rx_state_t *s)
 Free a V.29 modem receive context.
logging_state_tv29_rx_get_logging_state (v29_rx_state_t *s)
 Get the logging context associated with a V.29 modem receive context.
void v29_rx_set_put_bit (v29_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
 Change the put_bit function associated with a V.29 modem receive context.
void v29_rx_set_modem_status_handler (v29_rx_state_t *s, modem_status_func_t handler, void *user_data)
 Change the modem status report function associated with a V.29 modem receive context.
 SPAN_DECLARE_NONSTD (int) v29_rx(v29_rx_state_t *s
 Process a block of received V.29 modem audio samples.
int v29_rx_equalizer_state (v29_rx_state_t *s, complexf_t **coeffs)
 Get a snapshot of the current equalizer coefficients.
float v29_rx_carrier_frequency (v29_rx_state_t *s)
float v29_rx_symbol_timing_correction (v29_rx_state_t *s)
float v29_rx_signal_power (v29_rx_state_t *s)
void v29_rx_signal_cutoff (v29_rx_state_t *s, float cutoff)
void v29_rx_set_qam_report_handler (v29_rx_state_t *s, qam_report_handler_t handler, void *user_data)

Variables

const int16_t amp []
const int16_t int len

Typedef Documentation

◆ v29_rx_state_t

V.29 modem receive side descriptor. This defines the working state for a single instance of a V.29 modem receiver.

Function Documentation

◆ SPAN_DECLARE_NONSTD()

SPAN_DECLARE_NONSTD ( int )

Process a block of received V.29 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 V.29 modem audio samples.

Process a block of received V.29 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 V.29 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.

◆ v29_rx_carrier_frequency()

float v29_rx_carrier_frequency ( v29_rx_state_t * s)

Get the current received carrier frequency.

Parameters
sThe modem context.
Returns
The frequency, in Hertz.

References v29_rx_state_s::carrier_phase_rate, and dds_frequencyf().

◆ v29_rx_equalizer_state()

int v29_rx_equalizer_state ( v29_rx_state_t * s,
complexf_t ** coeffs )

Get a snapshot of the current equalizer coefficients.

Get a snapshot of the current equalizer coefficients.

Parameters
sThe modem context.
coeffsThe vector of complex coefficients.
Returns
The number of coefficients in the vector.

References v29_rx_state_s::eq_coeff.

◆ v29_rx_free()

int v29_rx_free ( v29_rx_state_t * s)

Free a V.29 modem receive context.

Free a V.29 modem receive context.

Parameters
sThe modem context.
Returns
0 for OK

◆ v29_rx_get_logging_state()

logging_state_t * v29_rx_get_logging_state ( v29_rx_state_t * s)

Get the logging context associated with a V.29 modem receive context.

Get the logging context associated with a V.29 modem receive context.

Parameters
sThe modem context.
Returns
A pointer to the logging context

References v29_rx_state_s::logging.

◆ v29_rx_init()

v29_rx_state_t * v29_rx_init ( v29_rx_state_t * s,
int bit_rate,
put_bit_func_t put_bit,
void * user_data )

Initialise a V.29 modem receive context.

Initialise a V.29 modem receive context.

Parameters
sThe modem context.
bit_rateThe bit rate of the modem. Valid values are 4800, 7200 and 9600.
put_bitThe callback routine used to put the received data.
user_dataAn opaque pointer passed to the put_bit routine.
Returns
A pointer to the modem context, or NULL if there was a problem.

References v29_rx_state_s::logging, v29_rx_state_s::put_bit, v29_rx_state_s::put_bit_user_data, v29_rx_restart(), and v29_rx_signal_cutoff().

◆ v29_rx_release()

int v29_rx_release ( v29_rx_state_t * s)

Release a V.29 modem receive context.

Release a V.29 modem receive context.

Parameters
sThe modem context.
Returns
0 for OK

◆ v29_rx_restart()

◆ v29_rx_set_modem_status_handler()

void v29_rx_set_modem_status_handler ( v29_rx_state_t * s,
modem_status_func_t handler,
void * user_data )

Change the modem status report function associated with a V.29 modem receive context.

Change the modem status report function associated with a V.29 modem receive context.

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

References v29_rx_state_s::status_handler, and v29_rx_state_s::status_user_data.

◆ v29_rx_set_put_bit()

void v29_rx_set_put_bit ( v29_rx_state_t * s,
put_bit_func_t put_bit,
void * user_data )

Change the put_bit function associated with a V.29 modem receive context.

Change the put_bit function associated with a V.29 modem receive context.

Parameters
sThe modem context.
put_bitThe callback routine used to handle received bits.
user_dataAn opaque pointer.

References v29_rx_state_s::put_bit, and v29_rx_state_s::put_bit_user_data.

◆ v29_rx_set_qam_report_handler()

void v29_rx_set_qam_report_handler ( v29_rx_state_t * s,
qam_report_handler_t handler,
void * user_data )

Set a handler routine to process QAM status reports

Parameters
sThe modem context.
handlerThe handler routine.
user_dataAn opaque pointer passed to the handler routine.

References v29_rx_state_s::qam_report, and v29_rx_state_s::qam_user_data.

◆ v29_rx_signal_cutoff()

void v29_rx_signal_cutoff ( v29_rx_state_t * s,
float cutoff )

Set the power level at which the carrier detection will cut in

Parameters
sThe modem context.
cutoffThe signal cutoff power, in dBm0.

References v29_rx_state_s::carrier_off_power, v29_rx_state_s::carrier_on_power, and power_meter_level_dbm0().

Referenced by v29_rx_init().

◆ v29_rx_signal_power()

float v29_rx_signal_power ( v29_rx_state_t * s)

Get the current received signal power.

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

References v29_rx_state_s::power, and power_meter_current_dbm0().

◆ v29_rx_symbol_timing_correction()

float v29_rx_symbol_timing_correction ( v29_rx_state_t * s)

Get the current symbol timing correction since startup.

Parameters
sThe modem context.
Returns
The correction.

References v29_rx_state_s::total_baud_timing_correction.