t38_non_ecm_buffer.h File Reference

Go to the source code of this file.

Defines

#define _SPANDSP_T38_NON_ECM_BUFFER_H_
#define T38_NON_ECM_TX_BUF_LEN   16384

Typedefs

typedef struct
t38_non_ecm_buffer_state_s 
t38_non_ecm_buffer_state_t
 A flow controlled non-ECM image data buffer, for buffering T.38 to analogue modem data.

Functions

t38_non_ecm_buffer_state_tt38_non_ecm_buffer_init (t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
 Initialise a T.38 rate adapting non-ECM buffer context.
int t38_non_ecm_buffer_release (t38_non_ecm_buffer_state_t *s)
int t38_non_ecm_buffer_free (t38_non_ecm_buffer_state_t *s)
void t38_non_ecm_buffer_set_mode (t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
 Set the mode of a T.38 rate adapting non-ECM buffer context.
void t38_non_ecm_buffer_inject (t38_non_ecm_buffer_state_t *s, const uint8_t *buf, int len)
 Inject data to T.38 rate adapting non-ECM buffer context.
void t38_non_ecm_buffer_push (t38_non_ecm_buffer_state_t *s)
 Inform a T.38 rate adapting non-ECM buffer context that the incoming data has finished, and the contents of the buffer should be played out as quickly as possible.
void t38_non_ecm_buffer_report_input_status (t38_non_ecm_buffer_state_t *s, logging_state_t *logging)
 Report the input status of a T.38 rate adapting non-ECM buffer context to the specified logging context.
void t38_non_ecm_buffer_report_output_status (t38_non_ecm_buffer_state_t *s, logging_state_t *logging)
 Report the output status of a T.38 rate adapting non-ECM buffer context to the specified logging context.
 SPAN_DECLARE_NONSTD (int) t38_non_ecm_buffer_get_bit(void *user_data)
 Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Detailed Description


Define Documentation

#define T38_NON_ECM_TX_BUF_LEN   16384

The buffer length much be a power of two. The chosen length is big enough for over 9s of data at the V.17 14,400bps rate.

Referenced by SPAN_DECLARE_NONSTD(), and t38_non_ecm_buffer_inject().


Function Documentation

SPAN_DECLARE_NONSTD ( int   ) 

Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Parameters:
user_data The buffer context, cast to a void pointer.
Returns:
The next bit, or one of the values indicating a change of modem status.

Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Get a bit of received non-ECM image data.

Get the next bit of a transmitted serial bit stream.

Parameters:
user_data An opaque point which must point to a transmitter context.
Returns:
the next bit, or PUTBIT_END_OF_DATA to indicate the data stream has ended.

Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Get a bit of received non-ECM image data.

Get the next bit of a transmitted serial bit stream.

A dummy routine to use as a receive callback, when we aren't really trying to process what is received. It just absorbs and ignores the data.

Parameters:
user_data The context.
amp The signal.buffer
len The length of the signal buffer
Returns:
0.

Get the next bit of data from a T.38 rate adapting non-ECM buffer context.

Get a bit of received non-ECM image data.

Get the next bit of a transmitted serial bit stream.

Parameters:
user_data An opaque point which must point to a transmitter context.
Returns:
the next bit, or PUTBIT_END_OF_DATA to indicate the data stream has ended.

Get the next bit of a transmitted serial bit stream.

A dummy routine to use as a receive callback, when we aren't really trying to process what is received. It just absorbs and ignores the data.

Parameters:
user_data The context.
amp The signal.buffer
len The length of the signal buffer
Returns:
0.

References ASYNC_PARITY_ODD, t38_non_ecm_buffer_state_s::bit_no, async_tx_state_s::bitpos, async_tx_state_s::byte_in_progress, t38_non_ecm_buffer_state_s::data, async_tx_state_s::data_bits, t38_non_ecm_buffer_state_s::data_finished, t38_non_ecm_buffer_state_s::flow_control_fill_octet, t38_non_ecm_buffer_state_s::flow_control_fill_octets, async_tx_state_s::get_byte, t38_non_ecm_buffer_state_s::latest_eol_ptr, t30_state_s::logging, t38_non_ecm_buffer_state_s::octet, t38_non_ecm_buffer_state_s::out_octets, t38_non_ecm_buffer_state_s::out_ptr, async_tx_state_s::parity, async_tx_state_s::parity_bit, SIG_STATUS_END_OF_DATA, span_log(), t30_state_s::state, async_tx_state_s::stop_bits, T38_NON_ECM_TX_BUF_LEN, t30_state_s::t4, t4_tx_get_bit(), t30_state_s::tcf_test_bits, and async_tx_state_s::user_data.

t38_non_ecm_buffer_state_t* t38_non_ecm_buffer_init ( t38_non_ecm_buffer_state_t s,
int  mode,
int  min_row_bits 
)

Initialise a T.38 rate adapting non-ECM buffer context.

Parameters:
s The buffer context.
mode TRUE for image data mode, or FALSE for TCF mode.
bits The minimum number of bits per FAX image row.
Returns:
A pointer to the buffer context, or NULL if there was a problem.

Referenced by t38_gateway_init().

void t38_non_ecm_buffer_inject ( t38_non_ecm_buffer_state_t s,
const uint8_t *  buf,
int  len 
)

Inject data to T.38 rate adapting non-ECM buffer context.

Parameters:
s The buffer context.
buf The data buffer to be injected.
len The length of the data to be injected.

References T38_NON_ECM_TX_BUF_LEN.

void t38_non_ecm_buffer_push ( t38_non_ecm_buffer_state_t s  ) 

Inform a T.38 rate adapting non-ECM buffer context that the incoming data has finished, and the contents of the buffer should be played out as quickly as possible.

Parameters:
s The buffer context.
void t38_non_ecm_buffer_report_input_status ( t38_non_ecm_buffer_state_t s,
logging_state_t logging 
)

Report the input status of a T.38 rate adapting non-ECM buffer context to the specified logging context.

Parameters:
s The buffer context.
logging The logging context.

References span_log().

void t38_non_ecm_buffer_report_output_status ( t38_non_ecm_buffer_state_t s,
logging_state_t logging 
)

Report the output status of a T.38 rate adapting non-ECM buffer context to the specified logging context.

Parameters:
s The buffer context.
logging The logging context.

References span_log().

void t38_non_ecm_buffer_set_mode ( t38_non_ecm_buffer_state_t s,
int  mode,
int  min_row_bits 
)

Set the mode of a T.38 rate adapting non-ECM buffer context.

Parameters:
s The buffer context.
mode TRUE for image data mode, or FALSE for TCF mode.
bits The minimum number of bits per FAX image row.

Generated on 13 Oct 2009 for spandsp by  doxygen 1.6.1