spandsp  0.0.6
fax.c File Reference
#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "floating_fudge.h"
#include <assert.h>
#include <fcntl.h>
#include <time.h>
#include <tiffio.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/queue.h"
#include "spandsp/dc_restore.h"
#include "spandsp/vector_int.h"
#include "spandsp/power_meter.h"
#include "spandsp/complex.h"
#include "spandsp/tone_detect.h"
#include "spandsp/tone_generate.h"
#include "spandsp/async.h"
#include "spandsp/hdlc.h"
#include "spandsp/silence_gen.h"
#include "spandsp/super_tone_rx.h"
#include "spandsp/fsk.h"
#include "spandsp/modem_connect_tones.h"
#include "spandsp/v8.h"
#include "spandsp/v29tx.h"
#include "spandsp/v29rx.h"
#include "spandsp/v27ter_tx.h"
#include "spandsp/v27ter_rx.h"
#include "spandsp/v17tx.h"
#include "spandsp/v17rx.h"
#include "spandsp/t4_rx.h"
#include "spandsp/t4_tx.h"
#include "spandsp/t4_t6_decode.h"
#include "spandsp/t4_t6_encode.h"
#include "spandsp/t30_fcf.h"
#include "spandsp/t35.h"
#include "spandsp/t30.h"
#include "spandsp/t30_api.h"
#include "spandsp/t30_logging.h"
#include "spandsp/fax_modems.h"
#include "spandsp/fax.h"
#include "spandsp/private/logging.h"
#include "spandsp/private/silence_gen.h"
#include "spandsp/private/fsk.h"
#include "spandsp/private/modem_connect_tones.h"
#include "spandsp/private/v8.h"
#include "spandsp/private/v17tx.h"
#include "spandsp/private/v17rx.h"
#include "spandsp/private/v27ter_tx.h"
#include "spandsp/private/v27ter_rx.h"
#include "spandsp/private/v29tx.h"
#include "spandsp/private/v29rx.h"
#include "spandsp/private/hdlc.h"
#include "spandsp/private/fax_modems.h"
#include "spandsp/private/t4_t6_decode.h"
#include "spandsp/private/t4_t6_encode.h"
#include "spandsp/private/t4_rx.h"
#include "spandsp/private/t4_tx.h"
#include "spandsp/private/t30.h"
#include "spandsp/private/fax.h"

Defines

#define HDLC_FRAMING_OK_THRESHOLD   8

Functions

int fax_rx (fax_state_t *s, int16_t *amp, int len)
int fax_rx_fillin (fax_state_t *s, int len)
int fax_tx (fax_state_t *s, int16_t *amp, int max_len)
void fax_set_transmit_on_idle (fax_state_t *s, int transmit_on_idle)
 Select whether silent audio will be sent when FAX transmit is idle.
void fax_set_tep_mode (fax_state_t *s, int use_tep)
 Select whether TEP will be sent for the image modems.
t30_state_tfax_get_t30_state (fax_state_t *s)
 Get a pointer to the T.30 engine associated with a FAX context.
logging_state_tfax_get_logging_state (fax_state_t *s)
 Get a pointer to the logging context associated with a FAX context.
int fax_restart (fax_state_t *s, int calling_party)
 Restart a FAX context.
fax_state_tfax_init (fax_state_t *s, int calling_party)
 Initialise a FAX context.
int fax_release (fax_state_t *s)
 Release a FAX context.
int fax_free (fax_state_t *s)
 Free a FAX context.

Detailed Description


Function Documentation

int fax_free ( fax_state_t s)

Free a FAX context.

Free a FAX context.

Parameters:
sThe FAX context.
Returns:
0 for OK, else -1.

References t30_release().

Get a pointer to the logging context associated with a FAX context.

Get a pointer to the logging context associated with a FAX context.

Parameters:
sThe FAX context.
Returns:
A pointer to the logging context, or NULL.

Get a pointer to the T.30 engine associated with a FAX context.

Get a pointer to the T.30 engine associated with a FAX context.

Parameters:
sThe FAX context.
Returns:
A pointer to the T.30 context, or NULL.
fax_state_t* fax_init ( fax_state_t s,
int  calling_party 
)

Initialise a FAX context.

Initialise a FAX context.

Parameters:
sThe FAX context.
calling_partyTRUE if the context is for a calling party. FALSE if the context is for an answering party.
Returns:
A pointer to the FAX context, or NULL if there was a problem.

References fax_restart(), MODEM_CONNECT_TONES_ANSAM_PR, t30_init(), t30_set_supported_modems(), T30_SUPPORT_V17, T30_SUPPORT_V27TER, T30_SUPPORT_V29, T30_SUPPORT_V34HDX, and v8_init().

int fax_release ( fax_state_t s)

Release a FAX context.

Release a FAX context.

Parameters:
sThe FAX context.
Returns:
0 for OK, else -1.

References t30_release().

int fax_restart ( fax_state_t s,
int  calling_party 
)

Restart a FAX context.

Restart a FAX context.

Parameters:
sThe FAX context.
calling_partyTRUE if the context is for a calling party. FALSE if the context is for an answering party.
Returns:
0 for OK, else -1.

References MODEM_CONNECT_TONES_ANSAM_PR, t30_restart(), T30_SUPPORT_V17, T30_SUPPORT_V27TER, T30_SUPPORT_V29, and T30_SUPPORT_V34HDX.

Referenced by fax_init().

void fax_set_tep_mode ( fax_state_t s,
int  use_tep 
)

Select whether TEP will be sent for the image modems.

Select whether talker echo protection tone will be sent for the image modems.

Parameters:
sThe FAX context.
use_tepTRUE if TEP should be sent.
void fax_set_transmit_on_idle ( fax_state_t s,
int  transmit_on_idle 
)

Select whether silent audio will be sent when FAX transmit is idle.

Select whether silent audio will be sent when FAX transmit is idle.

Parameters:
sThe FAX context.
transmit_on_idleTRUE if silent audio should be output when the FAX transmitter is idle. FALSE to transmit zero length audio when the FAX transmitter is idle. The default behaviour is FALSE.