28#if !defined(_SPANDSP_FAX_TESTER_H_)
29#define _SPANDSP_FAX_TESTER_H_
40typedef void (*faxtester_flush_handler_t)(faxtester_state_t *s,
void *user_data,
int which);
57typedef void (*faxtester_front_end_step_complete_handler_t)(faxtester_state_t *s,
void *user_data);
67 faxtester_flush_handler_t flush_handler;
68 void *flush_user_data;
76 faxtester_front_end_step_complete_handler_t front_end_step_complete_handler;
77 void *front_end_step_complete_user_data;
79 faxtester_front_end_step_complete_handler_t front_end_step_timeout_handler;
80 void *front_end_step_timeout_user_data;
82 const uint8_t *image_buffer;
105 int wait_for_silence;
108 int64_t tone_on_time;
117#if defined(__cplusplus)
130int faxtester_rx(faxtester_state_t *s, int16_t *amp,
int len);
140int faxtester_tx(faxtester_state_t *s, int16_t *amp,
int max_len);
142void faxtester_set_tx_type(
void *user_data,
int type,
int bit_rate,
int short_train,
int use_hdlc);
144void faxtester_set_rx_type(
void *user_data,
int type,
int bit_rate,
int short_train,
int use_hdlc);
146void faxtest_set_rx_silence(faxtester_state_t *s);
148void faxtester_send_hdlc_flags(faxtester_state_t *s,
int flags);
150void faxtester_send_hdlc_msg(faxtester_state_t *s,
const uint8_t *msg,
int len,
int crc_ok);
152void faxtester_set_flush_handler(faxtester_state_t *s, faxtester_flush_handler_t handler,
void *user_data);
172void faxtester_set_front_end_step_complete_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t handler,
void *user_data);
174void faxtester_set_front_end_step_timeout_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t handler,
void *user_data);
176void faxtester_set_timeout(faxtester_state_t *s,
int timeout);
178void faxtester_set_non_ecm_image_buffer(faxtester_state_t *s,
const uint8_t *buf,
int len);
180void faxtester_set_ecm_image_buffer(faxtester_state_t *s,
const uint8_t *buf,
int len,
int block,
int frame_size,
int crc_hit);
189faxtester_state_t *
faxtester_init(faxtester_state_t *s,
int calling_party);
203#if defined(__cplusplus)
struct fax_modems_state_s fax_modems_state_t
Definition fax_modems.h:53
faxtester_state_t * faxtester_init(faxtester_state_t *s, int calling_party)
Initialise a FAX context.
Definition fax_tester.c:696
int faxtester_free(faxtester_state_t *s)
Free a FAX context.
Definition fax_tester.c:721
int faxtester_rx(faxtester_state_t *s, int16_t *amp, int len)
Apply T.30 receive processing to a block of audio samples.
Definition fax_tester.c:386
void(* faxtester_real_time_frame_handler_t)(faxtester_state_t *s, void *user_data, int direction, const uint8_t *msg, int len)
FAX tester real time frame handler.
Definition fax_tester.h:51
void faxtester_set_tep_mode(faxtester_state_t *s, int use_tep)
Select whether TEP will be sent for the image modems.
Definition fax_tester.c:633
void faxtester_set_transmit_on_idle(faxtester_state_t *s, int transmit_on_idle)
Select whether silent audio will be sent when FAX transmit is idle.
Definition fax_tester.c:627
int faxtester_release(faxtester_state_t *s)
Release a FAX context.
Definition fax_tester.c:715
int faxtester_tx(faxtester_state_t *s, int16_t *amp, int max_len)
Apply T.30 transmit processing to generate a block of audio samples.
Definition fax_tester.c:406
struct logging_state_s logging_state_t
Definition logging.h:75
Definition fax_tester.h:63
logging_state_t logging
Error and flow logging control.
Definition fax_tester.h:114
faxtester_real_time_frame_handler_t real_time_frame_handler
A pointer to a callback routine to be called when frames are exchanged.
Definition fax_tester.h:72
int transmit
Definition fax_tester.h:95
int current_rx_type
The currently select receiver type.
Definition fax_tester.h:101
int short_train
TRUE is the short training sequence should be used.
Definition fax_tester.h:98
void * real_time_frame_user_data
An opaque pointer supplied in real time frame callbacks.
Definition fax_tester.h:74
int current_tx_type
The currently select transmitter type.
Definition fax_tester.h:103
xmlNodePtr cur
Pointer to our current step in the test.
Definition fax_tester.h:65