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)
193 void *get_bit_user_data,
195 void *put_bit_user_data);
243#if defined(__cplusplus)
int(* span_get_bit_func_t)(void *user_data)
Definition async.h:127
void(* span_put_bit_func_t)(void *user_data, int bit)
Definition async.h:123
struct logging_state_s logging_state_t
Definition logging.h:72
Definition private/v34.h:742
bool duplex
True if this is a full duplex modem.
Definition private/v34.h:746
void v34_rx_set_signal_cutoff(v34_state_t *s, float cutoff)
Definition v34rx.c:2668
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:2632
void v34_set_qam_report_handler(v34_state_t *s, qam_report_handler_t handler, void *user_data)
Definition v34rx.c:2798
void v34_tx_power(v34_state_t *s, float power)
Adjust a V.34 modem transmit context's output power.
Definition v34tx.c:2894
int v34_tx(v34_state_t *s, int16_t amp[], int len)
Generate a block of V.34 modem audio samples.
Definition v34tx.c:2857
int v34_free(v34_state_t *s)
Free a V.34 modem receive context.
Definition v34tx.c:3230
void v34_set_put_bit(v34_state_t *s, span_put_bit_func_t put_bit, void *user_data)
Change the put_bit function associated with a V.34 modem context.
Definition v34rx.c:2676
v34_state_t * v34_init(v34_state_t *s, int baud_rate, int bit_rate, bool calling_party, bool duplex, span_get_bit_func_t get_bit, void *get_bit_user_data, span_put_bit_func_t put_bit, void *put_bit_user_data)
Initialise a V.34 modem context.
Definition v34tx.c:3155
int v34_release(v34_state_t *s)
Release a V.34 modem receive context.
Definition v34tx.c:3224
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:2990
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:3121
void v34_set_put_aux_bit(v34_state_t *s, span_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:2683
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.
void v34_set_get_aux_bit(v34_state_t *s, span_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:2916
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:2612
float v34_rx_carrier_frequency(v34_state_t *s)
Definition v34rx.c:1612
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:2923
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:2984
void v34_set_get_bit(v34_state_t *s, span_get_bit_func_t get_bit, void *user_data)
Change the get_bit function associated with a V.34 modem context.
Definition v34tx.c:2906
float v34_rx_signal_power(v34_state_t *s)
struct v34_state_s v34_state_t
Definition v34.h:79