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 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.

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.

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 Tue Aug 4 03:36:23 2009 for spandsp by  doxygen 1.5.9