28 #if !defined(_SPANDSP_PRIVATE_T30_H_)
29 #define _SPANDSP_PRIVATE_T30_H_
Definition: private/logging.h:34
Definition: private/t30.h:36
uint8_t min_scan_time_code
The current DCS message minimum scan time code.
Definition: private/t30.h:256
char tx_file[256]
Image file name to be sent.
Definition: private/t30.h:311
int error_correcting_mode_retries
The number of HDLC frame retries, if error correcting mode is used.
Definition: private/t30.h:270
int timer_t8
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:231
char header_info[T30_MAX_PAGE_HEADER_INFO+1]
The text which will be used in FAX page header. No text results in no header line.
Definition: private/t30.h:80
int mutual_bilevel_resolutions
The common group of supported bi-level image resolutions.
Definition: private/t30.h:244
int rx_page_number
The current page number for receiving, in ECM or non-ECM mode. This is reset at the start of a call.
Definition: private/t30.h:285
t30_exchanged_info_t tx_info
The information fields to be transmitted.
Definition: private/t30.h:96
int16_t ecm_len[256]
The lengths of the frames in the ECM partial page buffer.
Definition: private/t30.h:280
int line_width_code
The width code for the image on the line.
Definition: private/t30.h:254
void * document_put_user_data
An opaque pointer passed to the document delivery handler.
Definition: private/t30.h:152
t4_image_width_t image_width
The width of the current image, in pixels.
Definition: private/t30.h:264
t30_set_handler_t set_tx_type_handler
The handler for changes to the transmit mode.
Definition: private/t30.h:136
bool image_carrier_attempted
True if an image carrier appears to have been received, even if it did not successfully train.
Definition: private/t30.h:186
int ecm_frames
The number of frames in the current block number, in ECM mode.
Definition: private/t30.h:291
int tcf_test_bits
A count of the number of bits in the trainability test. This counts down to zero when sending TCF,...
Definition: private/t30.h:190
union t30_state_s::@60 t4
T.4 context for reading or writing image data.
uint8_t last_pps_fcf2
the FCF2 field of the last PPS message we received.
Definition: private/t30.h:320
int current_fallback
The current fallback step for the fast message transfer modem.
Definition: private/t30.h:197
int phase
The current T.30 phase.
Definition: private/t30.h:160
int timer_t6
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:227
void * phase_d_user_data
An opaque pointer supplied in event D callbacks.
Definition: private/t30.h:113
int ecm_progress
A count of successfully received ECM frames, to assess progress as a basis for deciding whether to co...
Definition: private/t30.h:325
int tx_stop_page
The last page to be sent from the image file. -1 means no restriction.
Definition: private/t30.h:315
int octets_per_ecm_frame
The number of octets to be used per ECM frame.
Definition: private/t30.h:276
int receiver_not_ready_count
The current count of consecutive T30_RNR messages.
Definition: private/t30.h:274
uint8_t ecm_frame_map[3+32]
A bit map of the OK ECM frames, constructed as a PPR frame.
Definition: private/t30.h:282
bool far_end_detected
True once the far end FAX entity has been detected.
Definition: private/t30.h:234
int timer_t2_t4
T2, T2A and T2B are the HDLC command timeouts. T4, T4A and T4B are the HDLC response timeouts (in aud...
Definition: private/t30.h:219
int retries
Current number of retries of the action in progress.
Definition: private/t30.h:266
bool header_overlays_image
True for FAX page headers to overlay (i.e. replace) the beginning of the page image....
Definition: private/t30.h:84
int rtn_events
The number of RTN events.
Definition: private/t30.h:330
uint8_t dcs_frame[T30_MAX_DIS_DTC_DCS_LEN]
The preparation buffer for the DCS message to be transmitted.
Definition: private/t30.h:169
int ecm_frames_this_tx_burst
The number of frames sent in the current burst of image transmission, in ECM mode.
Definition: private/t30.h:293
t30_phase_d_handler_t phase_d_handler
A pointer to a callback routine to be called when phase D events occur.
Definition: private/t30.h:111
int x_resolution
The X direction resolution of the current image, in pixels per metre.
Definition: private/t30.h:258
int current_status
The current completion status.
Definition: private/t30.h:317
tz_t tz
Optional per instance time zone for the FAX page header timestamp.
Definition: private/t30.h:88
int supported_modems
A bit mask of the currently supported modem types.
Definition: private/t30.h:55
bool ecm_allowed
True is ECM mode handling is enabled.
Definition: private/t30.h:71
const char * country
The country of origin of the remote machine, if known, else NULL.
Definition: private/t30.h:98
int iaf
Internet aware FAX mode bit mask.
Definition: private/t30.h:53
int last_rx_page_result
The last result for a received non-ECM page - T30_MPS, T30_RTP, or T30_RTN.
Definition: private/t30.h:301
bool end_of_procedure_detected
True once the end of procedure condition has been detected.
Definition: private/t30.h:237
int timer_t7
This is only used in full duplex (e.g. ISDN) modes.
Definition: private/t30.h:229
int next_phase
The T.30 phase to change to when the current phase ends.
Definition: private/t30.h:162
int timer_t0_t1
T0 is the answer timeout when calling another FAX machine. Placing calls is handled outside the FAX p...
Definition: private/t30.h:216
int timer_t5
This is only used in error correcting mode.
Definition: private/t30.h:225
void * real_time_frame_user_data
An opaque pointer supplied in real time frame callbacks.
Definition: private/t30.h:123
t30_phase_b_handler_t phase_b_handler
A pointer to a callback routine to be called when phase B events occur.
Definition: private/t30.h:106
int supported_t30_features
A bit mask of the currently supported T.30 special features.
Definition: private/t30.h:69
int timer_t3
Procedural interrupt timeout (in audio samples).
Definition: private/t30.h:223
bool use_own_tz
Use private timezone if true.
Definition: private/t30.h:86
t30_exchanged_info_t rx_info
The information fields received.
Definition: private/t30.h:94
int tx_page_number
The current page number for sending, in ECM or non-ECM mode. This is reset at the start of a call.
Definition: private/t30.h:287
logging_state_t logging
Error and flow logging control.
Definition: private/t30.h:333
uint8_t far_dis_dtc_frame[T30_MAX_DIS_DTC_DCS_LEN]
The last DIS or DTC message received form the far end.
Definition: private/t30.h:177
void * document_user_data
An opaque pointer supplied in document callbacks.
Definition: private/t30.h:129
bool local_interrupt_pending
True if a local T.30 interrupt is pending.
Definition: private/t30.h:240
int supported_colour_resolutions
A bit mask of the currently supported gray-scale and colour image resolutions.
Definition: private/t30.h:65
int ppr_count
The current count of consecutive T30_PPR messages.
Definition: private/t30.h:272
int current_page_resolution
The resolution code for the current page.
Definition: private/t30.h:262
bool rx_ecm_block_ok
True if all frames of the current received ECM block are now OK.
Definition: private/t30.h:322
t30_phase_e_handler_t phase_e_handler
A pointer to a callback routine to be called when phase E events occur.
Definition: private/t30.h:116
void * phase_b_user_data
An opaque pointer supplied in event B callbacks.
Definition: private/t30.h:108
char rx_file[256]
Image file name for image reception.
Definition: private/t30.h:307
int current_rx_type
Current reception mode.
Definition: private/t30.h:208
void * document_get_user_data
An opaque pointer passed to the document send handler.
Definition: private/t30.h:148
t30_document_put_handler_t document_put_handler
The document delivery handler.
Definition: private/t30.h:150
void * set_tx_type_user_data
An opaque pointer passed to the handler for changes to the transmit mode.
Definition: private/t30.h:138
int rtp_events
The number of RTP events.
Definition: private/t30.h:328
bool short_train
True if the short training sequence should be used.
Definition: private/t30.h:182
bool calling_party
True if behaving as the calling party.
Definition: private/t30.h:47
int timer_t2_t4_is
A value specifying which of the possible timers is currently running in timer_t2_t4.
Definition: private/t30.h:221
t30_send_hdlc_handler_t send_hdlc_handler
The transmitted HDLC frame handler.
Definition: private/t30.h:141
int current_tx_type
Current transmission mode.
Definition: private/t30.h:210
uint8_t ecm_data[256][260]
The ECM partial page buffer.
Definition: private/t30.h:278
char rx_dcs_string[T30_MAX_DIS_DTC_DCS_LEN *3+1]
The received DCS, formatted as an ASCII string, for inclusion in the TIFF file.
Definition: private/t30.h:77
int rx_stop_page
The last page we are prepared accept for a received image file. -1 means no restriction.
Definition: private/t30.h:309
bool rx_frame_received
True if a valid HDLC frame has been received in the current reception period.
Definition: private/t30.h:205
int next_tx_step
The transmission step queued to follow the one in progress.
Definition: private/t30.h:303
bool rx_trained
True if a modem has trained correctly.
Definition: private/t30.h:203
uint8_t local_min_scan_time_code
The DIS code for the minimum scan row time we require. This is usually 0ms, but if we are trying to s...
Definition: private/t30.h:157
int line_image_type
The image type being used on the line.
Definition: private/t30.h:252
int line_compression
The image coding being used on the line.
Definition: private/t30.h:250
int supported_compressions
A bit mask of the currently supported image compression modes for use between FAX entities.
Definition: private/t30.h:58
int ecm_block
The current block number, in ECM mode.
Definition: private/t30.h:289
int operation_in_progress
The type of FAX operation currently in progress.
Definition: private/t30.h:44
bool error_correcting_mode
True if error correcting mode is used.
Definition: private/t30.h:268
t30_document_get_handler_t document_get_handler
The document send handler.
Definition: private/t30.h:146
int local_dis_dtc_len
The length of the DIS or DTC message to be transmitted.
Definition: private/t30.h:175
bool keep_bad_pages
True if bad quality pages should be kept.
Definition: private/t30.h:50
bool remote_interrupts_allowed
True if remote T.30 procedural interrupts are allowed.
Definition: private/t30.h:91
int supported_image_sizes
A bit mask of the currently supported image sizes.
Definition: private/t30.h:67
bool retransmit_capable
True if we are capable of retransmitting pages.
Definition: private/t30.h:73
int step
The step in sending a sequence of HDLC frames.
Definition: private/t30.h:166
void * send_hdlc_user_data
An opaque pointer passed to the transmitted HDLC frame handler.
Definition: private/t30.h:143
int supported_output_compressions
A bit mask of the currently supported image compression modes for the output of received page images.
Definition: private/t30.h:61
bool ecm_at_page_end
True if we are at the end of an ECM page to se sent - i.e. there are no more partial pages still to c...
Definition: private/t30.h:298
uint8_t next_rx_step
The FCF for the next receive step.
Definition: private/t30.h:305
int supported_bilevel_resolutions
A bit mask of the currently supported bi-level image resolutions.
Definition: private/t30.h:63
void * set_rx_type_user_data
An opaque pointer passed to the handler for changes to the receive mode.
Definition: private/t30.h:134
t30_real_time_frame_handler_t real_time_frame_handler
A pointer to a callback routine to be called when frames are exchanged.
Definition: private/t30.h:121
int ecm_current_tx_frame
The current ECM frame, during ECM transmission.
Definition: private/t30.h:295
t30_set_handler_t set_rx_type_handler
The handler for changes to the receive mode.
Definition: private/t30.h:132
const char * model
The model of the remote machine, if known, else NULL.
Definition: private/t30.h:102
int y_resolution
The Y direction resolution of the current image, in pixels per metre.
Definition: private/t30.h:260
int tcf_most_zeros
The maximum consecutive received zero bits seen to date, during the trainability test.
Definition: private/t30.h:194
bool rx_signal_present
True if a carrier is present. Otherwise false.
Definition: private/t30.h:201
int mutual_image_sizes
The common group of supported image sizes.
Definition: private/t30.h:248
uint8_t local_dis_dtc_frame[T30_MAX_DIS_DTC_DCS_LEN]
The preparation buffer for DIS or DTC message to be transmitted.
Definition: private/t30.h:173
int state
The current state of the T.30 state machine.
Definition: private/t30.h:164
void * phase_e_user_data
An opaque pointer supplied in event E callbacks.
Definition: private/t30.h:118
int dcs_len
The length of the DCS message to be transmitted.
Definition: private/t30.h:171
t30_document_handler_t document_handler
A pointer to a callback routine to be called when document events (e.g. end of transmitted document) ...
Definition: private/t30.h:127
int mutual_compressions
The common ground in compression schemes between the local and far ends.
Definition: private/t30.h:242
int mutual_colour_resolutions
The common group of supported colour image resolutions.
Definition: private/t30.h:246
bool dis_received
True if a valid DIS has been received from the far end.
Definition: private/t30.h:179
const char * vendor
The vendor of the remote machine, if known, else NULL.
Definition: private/t30.h:100
int current_permitted_modems
The subset of supported modems allowed at the current time, allowing for negotiation.
Definition: private/t30.h:199
int tcf_current_zeros
The current count of consecutive received zero bits, during the trainability test.
Definition: private/t30.h:192
int tx_start_page
The first page to be sent from the image file. -1 means no restriction.
Definition: private/t30.h:313
Definition: private/t4_rx.h:106
Definition: private/t4_tx.h:116
Definition: private/timezone.h:82
void(* t30_phase_e_handler_t)(void *user_data, int completion_code)
T.30 phase E callback handler.
Definition: t30.h:177
#define T30_MAX_PAGE_HEADER_INFO
Definition: t30.h:146
int(* t30_phase_d_handler_t)(void *user_data, int result)
T.30 phase D callback handler.
Definition: t30.h:169
#define T30_MAX_DIS_DTC_DCS_LEN
Definition: t30.h:142
void(* t30_real_time_frame_handler_t)(void *user_data, bool direction, const uint8_t msg[], int len)
T.30 real time frame handler.
Definition: t30.h:187
void(* t30_send_hdlc_handler_t)(void *user_data, const uint8_t msg[], int len)
T.30 send HDLC handler.
Definition: t30.h:218
int(* t30_phase_b_handler_t)(void *user_data, int result)
T.30 phase B callback handler.
Definition: t30.h:160
void(* t30_set_handler_t)(void *user_data, int type, int bit_rate, int short_train, int use_hdlc)
T.30 set a receive or transmit type handler.
Definition: t30.h:209
int(* t30_document_get_handler_t)(void *user_data, uint8_t msg[], int len)
T.30 send document handler.
Definition: t30.h:228
int(* t30_document_handler_t)(void *user_data, int status)
T.30 document handler.
Definition: t30.h:198
int(* t30_document_put_handler_t)(void *user_data, const uint8_t msg[], int len)
T.30 deliver handler.
Definition: t30.h:238
t4_image_width_t
Definition: t4_rx.h:227