34#if !defined(_SPANDSP_V34_H_)
35#define _SPANDSP_V34_H_
37#if defined(SPANDSP_USE_FIXED_POINT)
38#define V34_CONSTELLATION_SCALING_FACTOR 512.0
40#define V34_CONSTELLATION_SCALING_FACTOR 1.0
43enum v34_supported_bit_rates_e
45 V34_SUPPORT_2400 = 0x0001,
46 V34_SUPPORT_4800 = 0x0002,
47 V34_SUPPORT_7200 = 0x0004,
48 V34_SUPPORT_9600 = 0x0008,
49 V34_SUPPORT_12000 = 0x0010,
50 V34_SUPPORT_14400 = 0x0020,
51 V34_SUPPORT_16800 = 0x0040,
52 V34_SUPPORT_19200 = 0x0080,
53 V34_SUPPORT_21600 = 0x0100,
54 V34_SUPPORT_24000 = 0x0200,
55 V34_SUPPORT_26400 = 0x0400,
56 V34_SUPPORT_28800 = 0x0800,
57 V34_SUPPORT_31200 = 0x1000,
58 V34_SUPPORT_33600 = 0x2000
61enum v34_half_duplex_modes_e
64 V34_HALF_DUPLEX_SOURCE,
66 V34_HALF_DUPLEX_RECIPIENT,
68 V34_HALF_DUPLEX_CONTROL_CHANNEL,
70 V34_HALF_DUPLEX_PRIMARY_CHANNEL,
72 V34_HALF_DUPLEX_SILENCE
81#if defined(__cplusplus)
106#if defined(SPANDSP_USE_FIXED_POINT)
192 get_bit_func_t get_bit,
193 void *get_bit_user_data,
194 put_bit_func_t put_bit,
195 void *put_bit_user_data);
243#if defined(__cplusplus)
Definition private/logging.h:34
Definition private/v34.h:723
bool calling_party
True if this is the calling side modem.
Definition private/v34.h:725
bool duplex
True if this is a full duplex modem.
Definition private/v34.h:727
int bit_rate
The bit rate of the modem. Valid values are 1200 and 2400.
Definition private/v34.h:733
void v34_rx_set_signal_cutoff(v34_state_t *s, float cutoff)
Definition v34rx.c:2659
int v34_rx(v34_state_t *s, const int16_t amp[], int len)
Process a block of received V.34 modem audio samples.
Definition v34rx.c:2627
void v34_set_put_bit(v34_state_t *s, put_bit_func_t put_bit, void *user_data)
Change the put_bit function associated with a V.34 modem context.
Definition v34rx.c:2667
void v34_set_qam_report_handler(v34_state_t *s, qam_report_handler_t handler, void *user_data)
Definition v34rx.c:2788
void v34_set_get_aux_bit(v34_state_t *s, get_bit_func_t get_bit, void *user_data)
Change the get_aux_bit function associated with a V.34 modem context.
Definition v34tx.c:2872
void v34_tx_power(v34_state_t *s, float power)
Adjust a V.34 modem transmit context's output power.
Definition v34tx.c:2850
int v34_tx(v34_state_t *s, int16_t amp[], int len)
Generate a block of V.34 modem audio samples.
Definition v34tx.c:2818
int v34_free(v34_state_t *s)
Free a V.34 modem receive context.
Definition v34tx.c:3179
int v34_release(v34_state_t *s)
Release a V.34 modem receive context.
Definition v34tx.c:3173
int v34_half_duplex_change_mode(v34_state_t *s, int mode)
Change the operating mode of a V.34 half-duplex modem.
Definition v34tx.c:2944
v34_state_t * v34_init(v34_state_t *s, int baud_rate, int bit_rate, bool calling_party, bool duplex, get_bit_func_t get_bit, void *get_bit_user_data, put_bit_func_t put_bit, void *put_bit_user_data)
Initialise a V.34 modem context.
Definition v34tx.c:3104
int v34_restart(v34_state_t *s, int baud_rate, int bit_rate, bool duplex)
Reinitialise an existing V.34 modem context.
Definition v34tx.c:3070
float v34_rx_symbol_timing_correction(v34_state_t *s)
int v34_equalizer_state(v34_state_t *s, complexf_t **coeffs)
Get a snapshot of the current equalizer coefficients.
int v34_rx_fillin(v34_state_t *s, int len)
Fake processing of a missing block of received V.34 modem audio samples.
Definition v34rx.c:2607
void v34_set_get_bit(v34_state_t *s, get_bit_func_t get_bit, void *user_data)
Change the get_bit function associated with a V.34 modem context.
Definition v34tx.c:2862
float v34_rx_carrier_frequency(v34_state_t *s)
Definition v34rx.c:1610
void v34_set_put_aux_bit(v34_state_t *s, put_bit_func_t put_bit, void *user_data)
Change the put_aux_bit function associated with a V.34 modem context.
Definition v34rx.c:2674
logging_state_t * v34_get_logging_state(v34_state_t *s)
Get the logging context associated with a V.34 modem context.
Definition v34tx.c:2879
int v34_get_current_bit_rate(v34_state_t *s)
Report the current operating bit rate of a V.34 modem context.
Definition v34tx.c:2938
float v34_rx_signal_power(v34_state_t *s)