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);
49 t38_terminal_state_t *far_t38;
60 bool use_receiver_not_ready;
61 bool test_local_interrupt;
74 xmlNodePtr repeat_start;
75 xmlNodePtr repeat_parent;
77 faxtester_flush_handler_t flush_handler;
78 void *flush_user_data;
80 const uint8_t *image_buffer;
85 uint8_t image[1000000];
108 int wait_for_silence;
111 int64_t tone_on_time;
116 bool test_for_call_clear;
117 int call_clear_timer;
119 bool far_end_cleared_call;
124 uint8_t awaited[1000];
127 char next_tx_file[1024];
133#if defined(__cplusplus)
146int faxtester_rx(faxtester_state_t *s, int16_t *amp,
int len);
156int faxtester_tx(faxtester_state_t *s, int16_t *amp,
int max_len);
158void faxtester_set_tx_type(
void *user_data,
int type,
int bit_rate,
int short_train,
int use_hdlc);
160void faxtester_set_rx_type(
void *user_data,
int type,
int bit_rate,
int short_train,
int use_hdlc);
162void faxtest_set_rx_silence(faxtester_state_t *s);
164void faxtester_send_hdlc_flags(faxtester_state_t *s,
int flags);
166void faxtester_send_hdlc_msg(faxtester_state_t *s,
const uint8_t *msg,
int len,
int crc_ok);
168void faxtester_set_flush_handler(faxtester_state_t *s, faxtester_flush_handler_t handler,
void *user_data);
186void faxtester_set_timeout(faxtester_state_t *s,
int timeout);
188SPAN_DECLARE(
int) faxtester_next_step(faxtester_state_t *s);
203faxtester_state_t *
faxtester_init(faxtester_state_t *s,
const char *test_file,
const char *test);
217#if defined(__cplusplus)
struct fax_modems_state_s fax_modems_state_t
Definition fax_modems.h:59
logging_state_t * faxtester_get_logging_state(faxtester_state_t *s)
Get the logging context associated with a FAX tester context.
Definition fax_tester.c:2003
int faxtester_free(faxtester_state_t *s)
Free a FAX context.
Definition fax_tester.c:2061
faxtester_state_t * faxtester_init(faxtester_state_t *s, const char *test_file, const char *test)
Initialise a FAX tester context.
Definition fax_tester.c:2009
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:696
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:919
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:913
int faxtester_release(faxtester_state_t *s)
Release a FAX context.
Definition fax_tester.c:2049
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:721
struct logging_state_s logging_state_t
Definition logging.h:72
struct modem_connect_tones_rx_state_s modem_connect_tones_rx_state_t
Definition modem_connect_tones.h:105
Definition fax_tester.h:46
logging_state_t logging
Error and flow logging control.
Definition fax_tester.h:130
bool short_train
True if the short training sequence should be used.
Definition fax_tester.h:101
xmlDocPtr doc
Pointer to the XML document.
Definition fax_tester.h:67
char image_path[1024]
Path for the FAX image test files.
Definition fax_tester.h:64
t38_terminal_state_t * far_t38_fax
The far end T.38 terminal context.
Definition fax_tester.h:54
int current_rx_type
The currently select receiver type.
Definition fax_tester.h:104
bool transmit
Definition fax_tester.h:98
fax_state_t * far_fax
The far end FAX context.
Definition fax_tester.h:48
int current_tx_type
The currently select transmitter type.
Definition fax_tester.h:106
modem_connect_tones_rx_state_t connect_rx
CED or CNG detector.
Definition fax_tester.h:95
xmlNodePtr cur
Pointer to our current step in the test.
Definition fax_tester.h:69