fax_modems.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 "spandsp/telephony.h"`
`#include "spandsp/logging.h"`
`#include "spandsp/bit_operations.h"`
`#include "spandsp/dc_restore.h"`
`#include "spandsp/queue.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/crc.h"`
`#include "spandsp/hdlc.h"`
`#include "spandsp/silence_gen.h"`
`#include "spandsp/fsk.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/super_tone_rx.h"`
`#include "spandsp/modem_connect_tones.h"`
`#include "spandsp/fax_modems.h"`
`#include "spandsp/private/logging.h"`
`#include "spandsp/private/silence_gen.h"`
`#include "spandsp/private/fsk.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/modem_connect_tones.h"`
`#include "spandsp/private/hdlc.h"`
`#include "spandsp/private/fax_modems.h"`

## Macros

#define | HDLC_FRAMING_OK_THRESHOLD 5

## Functions

const char * | fax_modem_to_str (int modem)
| Convert a FAX modem type to a short text description.
void | fax_modems_hdlc_tx_frame (void *user_data, const uint8_t *msg, int len)
int | fax_modems_v17_v21_rx (void *user_data, const int16_t amp[], int len)
int | fax_modems_v17_v21_rx_fillin (void *user_data, int len)
int | fax_modems_v27ter_v21_rx (void *user_data, const int16_t amp[], int len)
int | fax_modems_v27ter_v21_rx_fillin (void *user_data, int len)
int | fax_modems_v29_v21_rx (void *user_data, const int16_t amp[], int len)
int | fax_modems_v29_v21_rx_fillin (void *user_data, int len)
void | fax_modems_start_rx_modem (fax_modems_state_t *s, int which)
void | fax_modems_set_tep_mode (fax_modems_state_t *s, int use_tep)
logging_state_t * | fax_modems_get_logging_state (fax_modems_state_t *s)
| Get a pointer to the logging context associated with a FAX modems context.
int | fax_modems_restart (fax_modems_state_t *s)
fax_modems_state_t * | fax_modems_init (fax_modems_state_t *s, int use_tep, hdlc_frame_handler_t hdlc_accept, hdlc_underflow_handler_t hdlc_tx_underflow, put_bit_func_t non_ecm_put_bit, get_bit_func_t non_ecm_get_bit, tone_report_func_t tone_callback, void *user_data)
int | fax_modems_release (fax_modems_state_t *s)
int | fax_modems_free (fax_modems_state_t *s)

## Function Documentation

## fax_modem_to_str()

const char * fax_modem_to_str | ( | int | modem | ) |

Convert a FAX modem type to a short text description.

Convert a FAX modem type to a short text description.

Parameters

  modem | The modem code.

Returns
  A pointer to the description.

## fax_modems_get_logging_state()

logging_state_t * fax_modems_get_logging_state | ( | fax_modems_state_t * | s | ) |

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

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

Parameters

  s | The FAX modems context.

Returns
  A pointer to the logging context, or NULL.

References fax_modems_state_s::logging.