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
00029
00030 #if !defined(_SPANDSP_FAX_MODEMS_H_)
00031 #define _SPANDSP_FAX_MODEMS_H_
00032
00033 enum
00034 {
00035 FAX_MODEM_NONE = -1,
00036 FAX_MODEM_FLUSH = 0,
00037 FAX_MODEM_SILENCE_TX,
00038 FAX_MODEM_SILENCE_RX,
00039 FAX_MODEM_CED_TONE,
00040 FAX_MODEM_CNG_TONE,
00041 FAX_MODEM_NOCNG_TONE,
00042 FAX_MODEM_V21_TX,
00043 FAX_MODEM_V17_TX,
00044 FAX_MODEM_V27TER_TX,
00045 FAX_MODEM_V29_TX,
00046 FAX_MODEM_V21_RX,
00047 FAX_MODEM_V17_RX,
00048 FAX_MODEM_V27TER_RX,
00049 FAX_MODEM_V29_RX
00050 };
00051
00052
00053
00054
00055 typedef struct fax_modems_state_s fax_modems_state_t;
00056
00057 #if defined(__cplusplus)
00058 extern "C"
00059 {
00060 #endif
00061
00062
00063 SPAN_DECLARE(int) fax_modems_v17_v21_rx(void *user_data, const int16_t amp[], int len);
00064 SPAN_DECLARE(int) fax_modems_v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
00065 SPAN_DECLARE(int) fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len);
00066
00067 SPAN_DECLARE(void) fax_modems_set_tep_mode(fax_modems_state_t *s, int use_tep);
00068
00069 SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s,
00070 int use_tep,
00071 hdlc_frame_handler_t hdlc_accept,
00072 hdlc_underflow_handler_t hdlc_tx_underflow,
00073 put_bit_func_t non_ecm_put_bit,
00074 get_bit_func_t non_ecm_get_bit,
00075 tone_report_func_t tone_callback,
00076 void *user_data);
00077
00078 SPAN_DECLARE(int) fax_modems_release(fax_modems_state_t *s);
00079
00080 SPAN_DECLARE(int) fax_modems_free(fax_modems_state_t *s);
00081
00082 #if defined(__cplusplus)
00083 }
00084 #endif
00085
00086 #endif
00087