00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #if !defined(_SPANDSP_FAX_MODEMS_H_)
00029 #define _SPANDSP_FAX_MODEMS_H_
00030
00031 enum
00032 {
00033 FAX_MODEM_NONE = -1,
00034 FAX_MODEM_FLUSH = 0,
00035 FAX_MODEM_SILENCE_TX,
00036 FAX_MODEM_SILENCE_RX,
00037 FAX_MODEM_CED_TONE,
00038 FAX_MODEM_CNG_TONE,
00039 FAX_MODEM_NOCNG_TONE,
00040 FAX_MODEM_V21_TX,
00041 FAX_MODEM_V17_TX,
00042 FAX_MODEM_V27TER_TX,
00043 FAX_MODEM_V29_TX,
00044 FAX_MODEM_V21_RX,
00045 FAX_MODEM_V17_RX,
00046 FAX_MODEM_V27TER_RX,
00047 FAX_MODEM_V29_RX
00048 };
00049
00050
00051
00052
00053 typedef struct fax_modems_state_s fax_modems_state_t;
00054
00055 #if defined(__cplusplus)
00056 extern "C"
00057 {
00058 #endif
00059
00060
00061 SPAN_DECLARE_NONSTD(int) fax_modems_v17_v21_rx(void *user_data, const int16_t amp[], int len);
00062 SPAN_DECLARE_NONSTD(int) fax_modems_v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
00063 SPAN_DECLARE_NONSTD(int) fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len);
00064 SPAN_DECLARE_NONSTD(int) fax_modems_v17_v21_rx_fillin(void *user_data, int len);
00065 SPAN_DECLARE_NONSTD(int) fax_modems_v27ter_v21_rx_fillin(void *user_data, int len);
00066 SPAN_DECLARE_NONSTD(int) fax_modems_v29_v21_rx_fillin(void *user_data, int len);
00067 SPAN_DECLARE(void) fax_modems_start_rx_modem(fax_modems_state_t *s, int which);
00068
00069 SPAN_DECLARE(void) fax_modems_set_tep_mode(fax_modems_state_t *s, int use_tep);
00070
00071 SPAN_DECLARE(int) fax_modems_restart(fax_modems_state_t *s);
00072
00073 SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s,
00074 int use_tep,
00075 hdlc_frame_handler_t hdlc_accept,
00076 hdlc_underflow_handler_t hdlc_tx_underflow,
00077 put_bit_func_t non_ecm_put_bit,
00078 get_bit_func_t non_ecm_get_bit,
00079 tone_report_func_t tone_callback,
00080 void *user_data);
00081
00082 SPAN_DECLARE(int) fax_modems_release(fax_modems_state_t *s);
00083
00084 SPAN_DECLARE(int) fax_modems_free(fax_modems_state_t *s);
00085
00086 #if defined(__cplusplus)
00087 }
00088 #endif
00089
00090 #endif
00091