t30_state_s Struct Reference

`#include <t30.h>`

## Public Attributes

union { |
t4_rx_state_t rx |
t4_tx_state_t tx |
} | t4
| T.4 context for reading or writing image data.
int | operation_in_progress
| The type of FAX operation currently in progress.
int | calling_party
| True if behaving as the calling party.
int | iaf
| Internet aware FAX mode bit mask.
int | supported_modems
| A bit mask of the currently supported modem types.
int | supported_compressions
| A bit mask of the currently supported image compression modes.
int | supported_resolutions
| A bit mask of the currently supported image resolutions.
int | supported_image_sizes
| A bit mask of the currently supported image sizes.
int | supported_t30_features
| A bit mask of the currently supported T.30 special features.
int | ecm_allowed
| True is ECM mode handling is enabled.
int | retransmit_capable
| True if we are capable of retransmitting pages.
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.
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.
int | header_overlays_image
| True for FAX page headers to overlay (i.e. replace) the beginning of the page image. False for FAX page headers to add to the overall length of the page.
int | use_own_tz
| Use private timezone if true.
tz_t | tz
| Optional per instance time zone for the FAX page header timestamp.
int | remote_interrupts_allowed
| True if remote T.30 procedural interrupts are allowed.
t30_exchanged_info_t | rx_info
| The information fields received.
t30_exchanged_info_t | tx_info
| The information fields to be transmitted.
const char * | country
| The country of origin of the remote machine, if known, else NULL.
const char * | vendor
| The vendor of the remote machine, if known, else NULL.
const char * | model
| The model of the remote machine, if known, else NULL.
t30_phase_b_handler_t * | phase_b_handler
| A pointer to a callback routine to be called when phase B events occur.
void * | phase_b_user_data
| An opaque pointer supplied in event B callbacks.
t30_phase_d_handler_t * | phase_d_handler
| A pointer to a callback routine to be called when phase D events occur.
void * | phase_d_user_data
| An opaque pointer supplied in event D callbacks.
t30_phase_e_handler_t * | phase_e_handler
| A pointer to a callback routine to be called when phase E events occur.
void * | phase_e_user_data
| An opaque pointer supplied in event E callbacks.
t30_real_time_frame_handler_t * | real_time_frame_handler
| A pointer to a callback routine to be called when frames are exchanged.
void * | real_time_frame_user_data
| An opaque pointer supplied in real time frame callbacks.
t30_document_handler_t * | document_handler
| A pointer to a callback routine to be called when document events (e.g. end of transmitted document) occur.
void * | document_user_data
| An opaque pointer supplied in document callbacks.
t30_set_handler_t * | set_rx_type_handler
| The handler for changes to the receive mode.
void * | set_rx_type_user_data
| An opaque pointer passed to the handler for changes to the receive mode.
t30_set_handler_t * | set_tx_type_handler
| The handler for changes to the transmit mode.
void * | set_tx_type_user_data
| An opaque pointer passed to the handler for changes to the transmit mode.
t30_send_hdlc_handler_t * | send_hdlc_handler
| The transmitted HDLC frame handler.
void * | send_hdlc_user_data
| An opaque pointer passed to the transmitted HDLC frame handler.
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 simulate another type of FAX machine, we may need a non-zero value here.
int | phase
| The current T.30 phase.
int | next_phase
| The T.30 phase to change to when the current phase ends.
int | state
| The current state of the T.30 state machine.
int | step
| The step in sending a sequence of HDLC frames.
uint8_t | dcs_frame [T30_MAX_DIS_DTC_DCS_LEN]
| The preparation buffer for the DCS message to be transmitted.
int | dcs_len
| The length of the DCS message to be transmitted.
uint8_t | local_dis_dtc_frame [T30_MAX_DIS_DTC_DCS_LEN]
| The preparation buffer for DIS or DTC message to be transmitted.
int | local_dis_dtc_len
| The length of the DIS or DTC message to be transmitted.
uint8_t | far_dis_dtc_frame [T30_MAX_DIS_DTC_DCS_LEN]
| The last DIS or DTC message received form the far end.
int | far_dis_dtc_len
| The length of the last DIS or DTC message received form the far end.
int | dis_received
| True if a valid DIS has been received from the far end.
int | short_train
| True if the short training sequence should be used.
int | image_carrier_attempted
| True if an image carrier appears to have been received, even if it did not successfully train.
int | tcf_test_bits
| A count of the number of bits in the trainability test. This counts down to zero when sending TCF, and counts up when receiving it.
int | tcf_current_zeros
| The current count of consecutive received zero bits, during the trainability test.
int | tcf_most_zeros
| The maximum consecutive received zero bits seen to date, during the trainability test.
int | current_fallback
| The current fallback step for the fast message transfer modem.
int | current_permitted_modems
| The subset of supported modems allowed at the current time, allowing for negotiation.
int | rx_signal_present
| True if a carrier is present. Otherwise false.
int | rx_trained
| True if a modem has trained correctly.
int | rx_frame_received
| True if a valid HDLC frame has been received in the current reception period.
int | current_rx_type
| Current reception mode.
int | current_tx_type
| Current transmission mode.
int | timer_t0_t1
| T0 is the answer timeout when calling another FAX machine. Placing calls is handled outside the FAX processing, but this timeout keeps running until V.21 modulation is sent or received. T1 is the remote terminal identification timeout (in audio samples).
int | timer_t2_t4
| T2, T2A and T2B are the HDLC command timeouts. T4, T4A and T4B are the HDLC response timeouts (in audio samples).
int | timer_t2_t4_is
| A value specifying which of the possible timers is currently running in timer_t2_t4.
int | timer_t3
| Procedural interrupt timeout (in audio samples).
int | timer_t5
| This is only used in error correcting mode.
int | timer_t6
| This is only used in full duplex (e.g. ISDN) modes.
int | timer_t7
| This is only used in full duplex (e.g. ISDN) modes.
int | timer_t8
| This is only used in full duplex (e.g. ISDN) modes.
int | far_end_detected
| True once the far end FAX entity has been detected.
int | end_of_procedure_detected
| True once the end of procedure condition has been detected.
int | local_interrupt_pending
| True if a local T.30 interrupt is pending.
int | line_encoding
| The image coding being used on the line.
int | output_encoding
| The image coding being used for output files.
uint8_t | min_scan_time_code
| The current DCS message minimum scan time code.
int | x_resolution
| The X direction resolution of the current image, in pixels per metre.
int | y_resolution
| The Y direction resolution of the current image, in pixels per metre.
t4_image_width_t | image_width
| The width of the current image, in pixels.
int | retries
| Current number of retries of the action in progress.
int | error_correcting_mode
| True if error correcting mode is used.
int | error_correcting_mode_retries
| The number of HDLC frame retries, if error correcting mode is used.
int | ppr_count
| The current count of consecutive T30_PPR messages.
int | receiver_not_ready_count
| The current count of consecutive T30_RNR messages.
int | octets_per_ecm_frame
| The number of octets to be used per ECM frame.
uint8_t | ecm_data [256][260]
| The ECM partial page buffer.
int16_t | ecm_len [256]
| The lengths of the frames in the ECM partial page buffer.
uint8_t | ecm_frame_map [3+32]
| A bit map of the OK ECM frames, constructed as a PPR frame.
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.
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.
int | ecm_block
| The current block number, in ECM mode.
int | ecm_frames
| The number of frames in the current block number, in ECM mode.
int | ecm_frames_this_tx_burst
| The number of frames sent in the current burst of image transmission, in ECM mode.
int | ecm_current_tx_frame
| The current ECM frame, during ECM transmission.
int | 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 come.
int | last_rx_page_result
| The last result for a received non-ECM page - T30_MPS, T30_RTP, or T30_RTN.
int | next_tx_step
| The transmission step queued to follow the one in progress.
uint8_t | next_rx_step
| The FCF for the next receive step.
char | rx_file [256]
| Image file name for image reception.
int | rx_stop_page
| The last page we are prepared accept for a received image file. -1 means no restriction.
char | tx_file [256]
| Image file name to be sent.
int | tx_start_page
| The first page to be sent from the image file. -1 means no restriction.
int | tx_stop_page
| The last page to be sent from the image file. -1 means no restriction.
int | current_status
| The current completion status.
uint8_t | last_pps_fcf2
| the FCF2 field of the last PPS message we received.
int | rx_ecm_block_ok
| True if all frames of the current received ECM block are now OK.
int | ecm_progress
| A count of successfully received ECM frames, to assess progress as a basis for deciding whether to continue error correction when PPRs keep repeating.
int | rtp_events
| The number of RTP events.
int | rtn_events
| The number of RTN events.
logging_state_t | logging
| Error and flow logging control.

## Detailed Description

T.30 FAX channel descriptor. This defines the state of a single working instance of a T.30 FAX channel.

The documentation for this struct was generated from the following file:

- private/t30.h