Mercurial > hg > audiostuff
diff spandsp-0.0.6pre17/src/spandsp/fax_modems.h @ 4:26cd8f1ef0b1
import spandsp-0.0.6pre17
author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
---|---|
date | Fri, 25 Jun 2010 15:50:58 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spandsp-0.0.6pre17/src/spandsp/fax_modems.h Fri Jun 25 15:50:58 2010 +0200 @@ -0,0 +1,91 @@ +/* + * SpanDSP - a series of DSP components for telephony + * + * fax_modems.h - definitions for the analogue modem set for fax processing + * + * Written by Steve Underwood <steveu@coppice.org> + * + * Copyright (C) 2008 Steve Underwood + * + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 2.1, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * $Id: fax_modems.h,v 1.11 2009/04/26 12:55:23 steveu Exp $ + */ + +/*! \file */ + +#if !defined(_SPANDSP_FAX_MODEMS_H_) +#define _SPANDSP_FAX_MODEMS_H_ + +enum +{ + FAX_MODEM_NONE = -1, + FAX_MODEM_FLUSH = 0, + FAX_MODEM_SILENCE_TX, + FAX_MODEM_SILENCE_RX, + FAX_MODEM_CED_TONE, + FAX_MODEM_CNG_TONE, + FAX_MODEM_NOCNG_TONE, + FAX_MODEM_V21_TX, + FAX_MODEM_V17_TX, + FAX_MODEM_V27TER_TX, + FAX_MODEM_V29_TX, + FAX_MODEM_V21_RX, + FAX_MODEM_V17_RX, + FAX_MODEM_V27TER_RX, + FAX_MODEM_V29_RX +}; + +/*! + The set of modems needed for FAX, plus the auxilliary stuff, like tone generation. +*/ +typedef struct fax_modems_state_s fax_modems_state_t; + +#if defined(__cplusplus) +extern "C" +{ +#endif + +/* N.B. the following are currently a work in progress */ +SPAN_DECLARE(int) fax_modems_v17_v21_rx(void *user_data, const int16_t amp[], int len); +SPAN_DECLARE(int) fax_modems_v27ter_v21_rx(void *user_data, const int16_t amp[], int len); +SPAN_DECLARE(int) fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len); +SPAN_DECLARE(int) fax_modems_v17_v21_rx_fillin(void *user_data, int len); +SPAN_DECLARE(int) fax_modems_v27ter_v21_rx_fillin(void *user_data, int len); +SPAN_DECLARE(int) fax_modems_v29_v21_rx_fillin(void *user_data, int len); +SPAN_DECLARE(void) fax_modems_start_rx_modem(fax_modems_state_t *s, int which); + +SPAN_DECLARE(void) fax_modems_set_tep_mode(fax_modems_state_t *s, int use_tep); + +SPAN_DECLARE(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); + +SPAN_DECLARE(int) fax_modems_release(fax_modems_state_t *s); + +SPAN_DECLARE(int) fax_modems_free(fax_modems_state_t *s); + +#if defined(__cplusplus) +} +#endif + +#endif +/*- End of file ------------------------------------------------------------*/