# License along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
-# $Id: configure.ac,v 1.65 2009/01/31 08:48:10 steveu Exp $
+# $Id: configure.ac,v 1.66 2009/02/10 17:20:31 steveu Exp $
# @start 1
SPANDSP_MINOR_VERSION=0
SPANDSP_MICRO_VERSION=6
-SPANDSP_LT_CURRENT=1
+SPANDSP_LT_CURRENT=2
SPANDSP_LT_REVISION=0
SPANDSP_LT_AGE=0
## License along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
-## $Id: Makefile.am,v 1.122 2009/02/03 16:33:13 steveu Exp $
+## $Id: Makefile.am,v 1.123 2009/02/10 17:16:57 steveu Exp $
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
libspandsp.sln \
libspandsp.vcproj \
msvc/config.h \
+ msvc/getopt.c \
msvc/gettimeofday.c \
msvc/inttypes.h \
msvc/tgmath.h \
msvc/unistd.h \
msvc/spandsp.h \
msvc/sys/time.h \
+ msvc/make_at_dictionary.vcproj \
+ msvc/make_headers.bat \
+ msvc/make_modem_filter.vcproj \
msvc/msvcproj.head \
msvc/msvcproj.foot \
msvc/vc8proj.head \
msvc/vc8proj.foot \
spandsp/private/README
-
INCLUDES = -I$(top_builddir)
lib_LTLIBRARIES = libspandsp.la
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: adsi.c,v 1.69 2009/02/03 16:28:39 steveu Exp $
+ * $Id: adsi.c,v 1.70 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) adsi_rx_release(adsi_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s)
{
free(s);
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) adsi_tx_release(adsi_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: async.c,v 1.17 2009/02/04 13:18:53 steveu Exp $
+ * $Id: async.c,v 1.18 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) async_rx_release(async_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) async_rx_free(async_rx_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE_NONSTD(void) async_rx_put_bit(void *user_data, int bit)
{
async_rx_state_t *s;
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) async_tx_release(async_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) async_tx_free(async_tx_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE_NONSTD(int) async_tx_get_bit(void *user_data)
{
async_tx_state_t *s;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: at_interpreter.c,v 1.35 2009/02/03 16:28:39 steveu Exp $
+ * $Id: at_interpreter.c,v 1.36 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) at_free(at_state_t *s)
+SPAN_DECLARE(int) at_release(at_state_t *s)
{
at_reset_call_info(s);
if (s->local_id)
free(s->local_id);
- free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) at_free(at_state_t *s)
+{
+ int ret;
+
+ ret = at_release(s);
+ free(s);
+ return ret;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: awgn.c,v 1.21 2009/02/03 16:28:39 steveu Exp $
+ * $Id: awgn.c,v 1.22 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(awgn_state_t *) awgn_init_dbm0(awgn_state_t *s, int idum, float level)
-{
- return awgn_init_dbov(s, idum, level - DBM0_MAX_POWER);
-}
-/*- End of function --------------------------------------------------------*/
-
SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float level)
{
int j;
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(awgn_state_t *) awgn_init_dbm0(awgn_state_t *s, int idum, float level)
+{
+ return awgn_init_dbov(s, idum, level - DBM0_MAX_POWER);
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) awgn_release(awgn_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) awgn_free(awgn_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int16_t) awgn(awgn_state_t *s)
{
double fac;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: bell_r2_mf.c,v 1.37 2009/02/03 16:28:39 steveu Exp $
+ * $Id: bell_r2_mf.c,v 1.38 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) bell_mf_tx_release(bell_mf_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) bell_mf_tx_free(bell_mf_tx_state_t *s)
{
free(s);
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) r2_mf_tx_release(r2_mf_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) r2_mf_tx_free(r2_mf_tx_state_t *s)
{
free(s);
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) bell_mf_rx_release(bell_mf_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) bell_mf_rx_free(bell_mf_rx_state_t *s)
{
free(s);
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) r2_mf_rx_release(r2_mf_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) r2_mf_rx_free(r2_mf_rx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: bert.c,v 1.31 2009/02/03 16:28:39 steveu Exp $
+ * $Id: bert.c,v 1.32 2009/02/10 13:06:46 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
if (s == NULL)
{
if ((s = (bert_state_t *) malloc(sizeof(*s))) == NULL)
- return NULL;
+ return NULL;
}
memset(s, 0, sizeof(*s));
return s;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) bert_release(bert_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) bert_free(bert_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: bitstream.c,v 1.17 2009/02/03 16:28:39 steveu Exp $
+ * $Id: bitstream.c,v 1.18 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(bitstream_state_t *) bitstream_init(bitstream_state_t *s)
{
if (s == NULL)
- return NULL;
+ {
+ if ((s = (bitstream_state_t *) malloc(sizeof(*s))) == NULL)
+ return NULL;
+ }
s->bitstream = 0;
s->residue = 0;
return s;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) bitstream_release(bitstream_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) bitstream_free(bitstream_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: dtmf.c,v 1.50 2009/02/03 16:28:39 steveu Exp $
+ * $Id: dtmf.c,v 1.51 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file dtmf.h */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) dtmf_rx_release(dtmf_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) dtmf_rx_free(dtmf_rx_state_t *s)
{
free(s);
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) dtmf_tx_release(dtmf_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) dtmf_tx_free(dtmf_tx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: echo.c,v 1.31 2009/02/03 16:28:39 steveu Exp $
+ * $Id: echo.c,v 1.32 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode)
+SPAN_DECLARE(echo_can_state_t *) echo_can_init(int len, int adaption_mode)
{
echo_can_state_t *ec;
int i;
ec->tap_rotate_counter = 1600;
ec->cng_level = 1000;
echo_can_adaption_mode(ec, adaption_mode);
- return ec;
+ return ec;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) echo_can_free(echo_can_state_t *ec)
+SPAN_DECLARE(int) echo_can_release(echo_can_state_t *ec)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) echo_can_free(echo_can_state_t *ec)
{
int i;
for (i = 0; i < 4; i++)
free(ec->fir_taps16[i]);
free(ec);
+ return 0;
}
/*- End of function --------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fax.c,v 1.85 2009/02/03 16:28:39 steveu Exp $
+ * $Id: fax.c,v 1.86 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
if ((s = (fax_state_t *) malloc(sizeof(*s))) == NULL)
return NULL;
}
-
memset(s, 0, sizeof(*s));
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
span_log_set_protocol(&s->logging, "FAX");
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: filter_tools.c,v 1.9 2009/01/28 03:41:26 steveu Exp $
+ * $Id: filter_tools.c,v 1.10 2009/02/10 17:16:57 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
#include "spandsp/complex.h"
#include "filter_tools.h"
+#if !defined(FALSE)
#define FALSE 0
+#endif
+#if !defined(TRUE)
#define TRUE (!FALSE)
+#endif
#define MAXPZ 8192
#define SEQ_LEN 8192
if (f <= f1)
vec[i] = complex_set(1.0, 0.0);
else if (f <= f2)
- vec[i] = complex_set(0.5*(1.0 + cos((3.1415926535*tau/beta) * (f - f1))), 0.0);
+ vec[i] = complex_set(0.5*(1.0 + cos((3.1415926535*tau/beta)*(f - f1))), 0.0);
else
vec[i] = complex_set(0.0, 0.0);
}
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fsk.c,v 1.51 2009/02/03 16:28:39 steveu Exp $
+ * $Id: fsk.c,v 1.52 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) fsk_tx_release(fsk_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) fsk_tx_free(fsk_tx_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) fsk_tx(fsk_tx_state_t *s, int16_t amp[], int len)
{
int sample;
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) fsk_rx_release(fsk_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) fsk_rx_free(fsk_rx_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
static void report_status_change(fsk_rx_state_t *s, int status)
{
if (s->status_handler)
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: g711.c,v 1.15 2009/02/03 16:28:39 steveu Exp $
+ * $Id: g711.c,v 1.16 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g711_release(g711_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) g711_free(g711_state_t *s)
{
free(s);
return 0;
* Computer Science, Speech Group
* Chengxiang Lu and Alex Hauptmann
*
- * $Id: g722.c,v 1.7 2009/02/03 16:28:39 steveu Exp $
+ * $Id: g722.c,v 1.8 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g722_decode_release(g722_decode_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) g722_decode_free(g722_decode_state_t *s)
{
free(s);
return 0;
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g722_encode_release(g722_encode_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) g722_encode_free(g722_encode_state_t *s)
{
free(s);
return 0;
* 2550 Garcia Avenue
* Mountain View, California 94043
*
- * $Id: g726.c,v 1.27 2009/02/03 16:28:39 steveu Exp $
+ * $Id: g726.c,v 1.28 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g726_release(g726_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) g726_free(g726_state_t *s)
{
free(s);
return 0;
* This code is based on the widely used GSM 06.10 code available from
* http://kbs.cs.tu-berlin.de/~jutta/toast.html
*
- * $Id: gsm0610_encode.c,v 1.29 2009/02/03 16:28:39 steveu Exp $
+ * $Id: gsm0610_encode.c,v 1.30 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) gsm0610_set_packing(gsm0610_state_t *s, int packing)
+{
+ s->packing = packing;
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing)
{
if (s == NULL)
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) gsm0610_set_packing(gsm0610_state_t *s, int packing)
+SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s)
{
- s->packing = packing;
- return 0;
+ return 0;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s)
+SPAN_DECLARE(int) gsm0610_free(gsm0610_state_t *s)
{
if (s)
free(s);
* This code is based on the widely used GSM 06.10 code available from
* http://kbs.cs.tu-berlin.de/~jutta/toast.html
*
- * $Id: gsm0610_lpc.c,v 1.28 2009/02/03 16:28:39 steveu Exp $
+ * $Id: gsm0610_lpc.c,v 1.29 2009/02/05 15:57:27 steveu Exp $
*/
/*! \file */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: hdlc.c,v 1.69 2009/02/03 16:28:39 steveu Exp $
+ * $Id: hdlc.c,v 1.70 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) hdlc_rx_release(hdlc_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) hdlc_rx_free(hdlc_rx_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) hdlc_rx_get_stats(hdlc_rx_state_t *s,
hdlc_rx_stats_t *t)
{
return s;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) hdlc_tx_release(hdlc_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) hdlc_tx_free(hdlc_tx_state_t *s)
+{
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: ima_adpcm.c,v 1.34 2009/02/03 16:28:39 steveu Exp $
+ * $Id: ima_adpcm.c,v 1.35 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) ima_adpcm_release(ima_adpcm_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) ima_adpcm_free(ima_adpcm_state_t *s)
{
free(s);
return 0;
\r
Microsoft Visual Studio Solution File, Format Version 10.00\r
# Visual Studio 2008\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "msvc\make_at_dictionary.vcproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "msvc\make_modem_filter.vcproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}"\r
+EndProject\r
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libspandsp.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"\r
ProjectSection(ProjectDependencies) = postProject\r
{401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}\r
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: logging.c,v 1.30 2009/02/03 16:28:39 steveu Exp $
+ * $Id: logging.c,v 1.31 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag)
-{
- s->span_error = __span_error;
- s->span_message = __span_message;
- s->level = level;
- s->tag = tag;
- s->protocol = NULL;
- s->samples_per_second = SAMPLE_RATE;
- s->elapsed_samples = 0;
-
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
SPAN_DECLARE(int) span_log_set_level(logging_state_t *s, int level)
{
s->level = level;
__span_error = func;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag)
+{
+ if (s == NULL)
+ {
+ if ((s = (logging_state_t *) malloc(sizeof(*s))) == NULL)
+ return NULL;
+ }
+ s->span_error = __span_error;
+ s->span_message = __span_message;
+ s->level = level;
+ s->tag = tag;
+ s->protocol = NULL;
+ s->samples_per_second = SAMPLE_RATE;
+ s->elapsed_samples = 0;
+
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) span_log_release(logging_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) span_log_free(logging_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* implementation of the LPC-10 2400 bps Voice Coder. They do not
* exert copyright claims on their code, and it may be freely used.
*
- * $Id: lpc10_decode.c,v 1.26 2009/02/03 16:28:39 steveu Exp $
+ * $Id: lpc10_decode.c,v 1.27 2009/02/10 13:06:46 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) lpc10_decode_release(lpc10_decode_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) lpc10_decode_free(lpc10_decode_state_t *s)
{
free(s);
return 0;
* implementation of the LPC-10 2400 bps Voice Coder. They do not
* exert copyright claims on their code, and it may be freely used.
*
- * $Id: lpc10_encode.c,v 1.27 2009/02/03 16:28:39 steveu Exp $
+ * $Id: lpc10_encode.c,v 1.28 2009/02/10 13:06:46 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) lpc10_encode_release(lpc10_encode_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) lpc10_encode_free(lpc10_encode_state_t *s)
{
free(s);
return 0;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: make_at_dictionary.c,v 1.1 2008/07/01 03:27:51 steveu Exp $
+ * $Id: make_at_dictionary.c,v 1.2 2009/02/10 17:16:57 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
static void trie_add(trie_t *s, const char *u, size_t len)
{
- int i;
+ size_t i;
int index;
trie_node_t *t;
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: make_modem_filter.c,v 1.13 2009/01/28 03:41:27 steveu Exp $
+ * $Id: make_modem_filter.c,v 1.14 2009/02/10 17:16:57 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
#include "spandsp/complex.h"
#include "filter_tools.h"
+#if !defined(FALSE)
#define FALSE 0
+#endif
+#if !defined(TRUE)
#define TRUE (!FALSE)
+#endif
//#define SAMPLE_RATE 8000.0
#define MAX_COEFFS_PER_FILTER 128
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: modem_connect_tones.c,v 1.33 2009/02/03 16:28:39 steveu Exp $
+ * $Id: modem_connect_tones.c,v 1.34 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) modem_connect_tones_tx_release(modem_connect_tones_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) modem_connect_tones_tx_free(modem_connect_tones_tx_state_t *s)
{
free(s);
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) modem_connect_tones_rx_release(modem_connect_tones_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) modem_connect_tones_rx_free(modem_connect_tones_rx_state_t *s)
{
free(s);
*
* This file is released in the public domain.
*
- * $Id: config.h,v 1.2 2009/02/03 16:39:41 steveu Exp $
+ * $Id: config.h,v 1.3 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_MSVC_CONFIG_H_)
#define HAVE_TGMATH_H
#define HAVE_LONG_DOUBLE
+#define HAVE_LIBTIFF
#define SPANDSP_USE_EXPORT_CAPABILITY 1
--- /dev/null
+/*****************************************************************************
+ *
+ * MODULE NAME : GETOPT.C
+ *
+ * COPYRIGHTS:
+ * This module contains code made available by IBM
+ * Corporation on an AS IS basis. Any one receiving the
+ * module is considered to be licensed under IBM copyrights
+ * to use the IBM-provided source code in any way he or she
+ * deems fit, including copying it, compiling it, modifying
+ * it, and redistributing it, with or without
+ * modifications. No license under any IBM patents or
+ * patent applications is to be implied from this copyright
+ * license.
+ *
+ * A user of the module should understand that IBM cannot
+ * provide technical support for the module and will not be
+ * responsible for any consequences of use of the program.
+ *
+ * Any notices, including this one, are not to be removed
+ * from the module without the prior written consent of
+ * IBM.
+ *
+ * AUTHOR: Original author:
+ * G. R. Blair (BOBBLAIR at AUSVM1)
+ * Internet: bobblair@bobblair.austin.ibm.com
+ *
+ * Extensively revised by:
+ * John Q. Walker II, Ph.D. (JOHHQ at RALVM6)
+ * Internet: johnq@ralvm6.vnet.ibm.com
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ * getopt()
+ *
+ * The getopt() function is a command line parser. It returns the next
+ * option character in argv that matches an option character in opstring.
+ *
+ * The argv argument points to an array of argc+1 elements containing argc
+ * pointers to character strings followed by a null pointer.
+ *
+ * The opstring argument points to a string of option characters; if an
+ * option character is followed by a colon, the option is expected to have
+ * an argument that may or may not be separated from it by white space.
+ * The external variable optarg is set to point to the start of the option
+ * argument on return from getopt().
+ *
+ * The getopt() function places in optind the argv index of the next argument
+ * to be processed. The system initializes the external variable optind to
+ * 1 before the first call to getopt().
+ *
+ * When all options have been processed (that is, up to the first nonoption
+ * argument), getopt() returns EOF. The special option "--" may be used to
+ * delimit the end of the options; EOF will be returned, and "--" will be
+ * skipped.
+ *
+ * The getopt() function returns a question mark (?) when it encounters an
+ * option character not included in opstring. This error message can be
+ * disabled by setting opterr to zero. Otherwise, it returns the option
+ * character that was detected.
+ *
+ * If the special option "--" is detected, or all options have been
+ * processed, EOF is returned.
+ *
+ * Options are marked by either a minus sign (-) or a slash (/).
+ *
+ * No errors are defined.
+ *****************************************************************************/
+
+#include <stdio.h> /* for EOF */
+#include <string.h> /* for strchr() */
+
+
+/* static (global) variables that are specified as exported by getopt() */
+char *optarg = NULL; /* pointer to the start of the option argument */
+int optind = 1; /* number of the next argv[] to be evaluated */
+int opterr = 1; /* non-zero if a question mark should be returned
+ when a non-valid option character is detected */
+
+/* handle possible future character set concerns by putting this in a macro */
+#define _next_char(string) (char)(*(string+1))
+
+int getopt(int argc, char *argv[], char *opstring)
+{
+ static char *pIndexPosition = NULL; /* place inside current argv string */
+ char *pArgString = NULL; /* where to start from next */
+ char *pOptString; /* the string in our program */
+
+
+ if (pIndexPosition != NULL) {
+ /* we last left off inside an argv string */
+ if (*(++pIndexPosition)) {
+ /* there is more to come in the most recent argv */
+ pArgString = pIndexPosition;
+ }
+ }
+
+ if (pArgString == NULL) {
+ /* we didn't leave off in the middle of an argv string */
+ if (optind >= argc) {
+ /* more command-line arguments than the argument count */
+ pIndexPosition = NULL; /* not in the middle of anything */
+ return EOF; /* used up all command-line arguments */
+ }
+
+ /*---------------------------------------------------------------------
+ * If the next argv[] is not an option, there can be no more options.
+ *-------------------------------------------------------------------*/
+ pArgString = argv[optind++]; /* set this to the next argument ptr */
+
+ if (('/' != *pArgString) && /* doesn't start with a slash or a dash? */
+ ('-' != *pArgString)) {
+ --optind; /* point to current arg once we're done */
+ optarg = NULL; /* no argument follows the option */
+ pIndexPosition = NULL; /* not in the middle of anything */
+ return EOF; /* used up all the command-line flags */
+ }
+
+ /* check for special end-of-flags markers */
+ if ((strcmp(pArgString, "-") == 0) ||
+ (strcmp(pArgString, "--") == 0)) {
+ optarg = NULL; /* no argument follows the option */
+ pIndexPosition = NULL; /* not in the middle of anything */
+ return EOF; /* encountered the special flag */
+ }
+
+ pArgString++; /* look past the / or - */
+ }
+
+ if (':' == *pArgString) { /* is it a colon? */
+ /*---------------------------------------------------------------------
+ * Rare case: if opterr is non-zero, return a question mark;
+ * otherwise, just return the colon we're on.
+ *-------------------------------------------------------------------*/
+ return (opterr ? (int)'?' : (int)':');
+ }
+ else if ((pOptString = strchr(opstring, *pArgString)) == 0) {
+ /*---------------------------------------------------------------------
+ * The letter on the command-line wasn't any good.
+ *-------------------------------------------------------------------*/
+ optarg = NULL; /* no argument follows the option */
+ pIndexPosition = NULL; /* not in the middle of anything */
+ return (opterr ? (int)'?' : (int)*pArgString);
+ }
+ else {
+ /*---------------------------------------------------------------------
+ * The letter on the command-line matches one we expect to see
+ *-------------------------------------------------------------------*/
+ if (':' == _next_char(pOptString)) { /* is the next letter a colon? */
+ /* It is a colon. Look for an argument string. */
+ if ('\0' != _next_char(pArgString)) { /* argument in this argv? */
+ optarg = &pArgString[1]; /* Yes, it is */
+ }
+ else {
+ /*-------------------------------------------------------------
+ * The argument string must be in the next argv.
+ * But, what if there is none (bad input from the user)?
+ * In that case, return the letter, and optarg as NULL.
+ *-----------------------------------------------------------*/
+ if (optind < argc)
+ optarg = argv[optind++];
+ else {
+ optarg = NULL;
+ return (opterr ? (int)'?' : (int)*pArgString);
+ }
+ }
+ pIndexPosition = NULL; /* not in the middle of anything */
+ }
+ else {
+ /* it's not a colon, so just return the letter */
+ optarg = NULL; /* no argument follows the option */
+ pIndexPosition = pArgString; /* point to the letter we're on */
+ }
+ return (int)*pArgString; /* return the letter that matched */
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+ ProjectType="Visual C++"\r
+ Version="9.00"\r
+ Name="make_at_dictionary"\r
+ ProjectGUID="{DEE932AB-5911-4700-9EEB-8C7090A0A330}"\r
+ RootNamespace="make_at_dictionary"\r
+ Keyword="Win32Proj"\r
+ TargetFrameworkVersion="196613"\r
+ >\r
+ <Platforms>\r
+ <Platform\r
+ Name="Win32"\r
+ />\r
+ </Platforms>\r
+ <ToolFiles>\r
+ </ToolFiles>\r
+ <Configurations>\r
+ <Configuration\r
+ Name="Debug|Win32"\r
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ IntermediateDirectory="$(ConfigurationName)"\r
+ ConfigurationType="1"\r
+ CharacterSet="1"\r
+ >\r
+ <Tool\r
+ Name="VCPreBuildEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCCustomBuildTool"\r
+ />\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCMIDLTool"\r
+ />\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ Optimization="0"\r
+ AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"\r
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"\r
+ MinimalRebuild="true"\r
+ BasicRuntimeChecks="3"\r
+ RuntimeLibrary="3"\r
+ UsePrecompiledHeader="0"\r
+ WarningLevel="3"\r
+ DebugInformationFormat="4"\r
+ />\r
+ <Tool\r
+ Name="VCManagedResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCPreLinkEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ LinkIncremental="2"\r
+ GenerateDebugInformation="true"\r
+ SubSystem="1"\r
+ TargetMachine="1"\r
+ />\r
+ <Tool\r
+ Name="VCALinkTool"\r
+ />\r
+ <Tool\r
+ Name="VCManifestTool"\r
+ />\r
+ <Tool\r
+ Name="VCXDCMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCBscMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCFxCopTool"\r
+ />\r
+ <Tool\r
+ Name="VCAppVerifierTool"\r
+ />\r
+ <Tool\r
+ Name="VCPostBuildEventTool"\r
+ />\r
+ </Configuration>\r
+ <Configuration\r
+ Name="Release|Win32"\r
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ IntermediateDirectory="$(ConfigurationName)"\r
+ ConfigurationType="1"\r
+ CharacterSet="1"\r
+ WholeProgramOptimization="1"\r
+ >\r
+ <Tool\r
+ Name="VCPreBuildEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCCustomBuildTool"\r
+ />\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCMIDLTool"\r
+ />\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ Optimization="2"\r
+ EnableIntrinsicFunctions="true"\r
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"\r
+ RuntimeLibrary="2"\r
+ EnableFunctionLevelLinking="true"\r
+ UsePrecompiledHeader="2"\r
+ WarningLevel="3"\r
+ DebugInformationFormat="3"\r
+ />\r
+ <Tool\r
+ Name="VCManagedResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCPreLinkEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ LinkIncremental="1"\r
+ GenerateDebugInformation="true"\r
+ SubSystem="1"\r
+ OptimizeReferences="2"\r
+ EnableCOMDATFolding="2"\r
+ TargetMachine="1"\r
+ />\r
+ <Tool\r
+ Name="VCALinkTool"\r
+ />\r
+ <Tool\r
+ Name="VCManifestTool"\r
+ />\r
+ <Tool\r
+ Name="VCXDCMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCBscMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCFxCopTool"\r
+ />\r
+ <Tool\r
+ Name="VCAppVerifierTool"\r
+ />\r
+ <Tool\r
+ Name="VCPostBuildEventTool"\r
+ />\r
+ </Configuration>\r
+ </Configurations>\r
+ <References>\r
+ </References>\r
+ <Files>\r
+ <Filter\r
+ Name="Source Files"\r
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+ >\r
+ <File\r
+ RelativePath="..\make_at_dictionary.c"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Header Files"\r
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+ >\r
+ <File\r
+ RelativePath=".\stdafx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\targetver.h"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Resource Files"\r
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+ >\r
+ </Filter>\r
+ </Files>\r
+ <Globals>\r
+ </Globals>\r
+</VisualStudioProject>\r
--- /dev/null
+..\Debug\make_at_dictionary >..\at_interpreter_dictionary.h
+
+..\Debug\make_modem_filter -m V.17 -i -r >..\v17rx_fixed_rrc.h
+..\Debug\make_modem_filter -m V.17 -r >..\v17rx_floating_rrc.h
+
+..\Debug\make_modem_filter -m V.17 -i -t >..\v17tx_fixed_rrc.h
+..\Debug\make_modem_filter -m V.17 -t >..\v17tx_floating_rrc.h
+
+..\Debug\make_modem_filter -m V.22bis1200 -i -r >..\v22bis_rx_1200_fixed_rrc.h
+..\Debug\make_modem_filter -m V.22bis2400 -i -r >..\v22bis_rx_2400_fixed_rrc.h
+..\Debug\make_modem_filter -m V.22bis1200 -r >..\v22bis_rx_1200_floating_rrc.h
+..\Debug\make_modem_filter -m V.22bis2400 -r >..\v22bis_rx_2400_floating_rrc.h
+
+..\Debug\make_modem_filter -m V.27ter2400 -i -r >..\v27ter_rx_2400_fixed_rrc.h
+..\Debug\make_modem_filter -m V.27ter4800 -i -r >..\v27ter_rx_4800_fixed_rrc.h
+..\Debug\make_modem_filter -m V.27ter2400 -r >..\v27ter_rx_2400_floating_rrc.h
+..\Debug\make_modem_filter -m V.27ter4800 -r >..\v27ter_rx_4800_floating_rrc.h
+..\Debug\make_modem_filter -m V.27ter2400 -i -t >..\v27ter_tx_2400_fixed_rrc.h
+..\Debug\make_modem_filter -m V.27ter4800 -i -t >..\v27ter_tx_4800_fixed_rrc.h
+..\Debug\make_modem_filter -m V.27ter2400 -t >..\v27ter_tx_2400_floating_rrc.h
+..\Debug\make_modem_filter -m V.27ter4800 -t >..\v27ter_tx_4800_floating_rrc.h
+
+..\Debug\make_modem_filter -m V.29 -i -r >..\v29rx_fixed_rrc.h
+..\Debug\make_modem_filter -m V.29 -r >..\v29rx_floating_rrc.h
+..\Debug\make_modem_filter -m V.29 -i -t >..\v29tx_fixed_rrc.h
+..\Debug\make_modem_filter -m V.29 -t >..\v29tx_floating_rrc.h
+
--- /dev/null
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+ ProjectType="Visual C++"\r
+ Version="9.00"\r
+ Name="make_modem_filter"\r
+ ProjectGUID="{329A6FA0-0FCC-4435-A950-E670AEFA9838}"\r
+ RootNamespace="make_modem_filter"\r
+ Keyword="Win32Proj"\r
+ TargetFrameworkVersion="196613"\r
+ >\r
+ <Platforms>\r
+ <Platform\r
+ Name="Win32"\r
+ />\r
+ </Platforms>\r
+ <ToolFiles>\r
+ </ToolFiles>\r
+ <Configurations>\r
+ <Configuration\r
+ Name="Debug|Win32"\r
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ IntermediateDirectory="$(ConfigurationName)"\r
+ ConfigurationType="1"\r
+ CharacterSet="1"\r
+ >\r
+ <Tool\r
+ Name="VCPreBuildEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCCustomBuildTool"\r
+ />\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCMIDLTool"\r
+ />\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ Optimization="0"\r
+ AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"\r
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"\r
+ MinimalRebuild="true"\r
+ BasicRuntimeChecks="3"\r
+ RuntimeLibrary="3"\r
+ UsePrecompiledHeader="0"\r
+ WarningLevel="3"\r
+ DebugInformationFormat="4"\r
+ />\r
+ <Tool\r
+ Name="VCManagedResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCPreLinkEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ LinkIncremental="2"\r
+ GenerateDebugInformation="true"\r
+ SubSystem="1"\r
+ TargetMachine="1"\r
+ />\r
+ <Tool\r
+ Name="VCALinkTool"\r
+ />\r
+ <Tool\r
+ Name="VCManifestTool"\r
+ />\r
+ <Tool\r
+ Name="VCXDCMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCBscMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCFxCopTool"\r
+ />\r
+ <Tool\r
+ Name="VCAppVerifierTool"\r
+ />\r
+ <Tool\r
+ Name="VCPostBuildEventTool"\r
+ />\r
+ </Configuration>\r
+ <Configuration\r
+ Name="Release|Win32"\r
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ IntermediateDirectory="$(ConfigurationName)"\r
+ ConfigurationType="1"\r
+ CharacterSet="1"\r
+ WholeProgramOptimization="1"\r
+ >\r
+ <Tool\r
+ Name="VCPreBuildEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCCustomBuildTool"\r
+ />\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"\r
+ />\r
+ <Tool\r
+ Name="VCMIDLTool"\r
+ />\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ Optimization="2"\r
+ EnableIntrinsicFunctions="true"\r
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"\r
+ RuntimeLibrary="2"\r
+ EnableFunctionLevelLinking="true"\r
+ UsePrecompiledHeader="0"\r
+ WarningLevel="3"\r
+ DebugInformationFormat="3"\r
+ />\r
+ <Tool\r
+ Name="VCManagedResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCResourceCompilerTool"\r
+ />\r
+ <Tool\r
+ Name="VCPreLinkEventTool"\r
+ />\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ LinkIncremental="1"\r
+ GenerateDebugInformation="true"\r
+ SubSystem="1"\r
+ OptimizeReferences="2"\r
+ EnableCOMDATFolding="2"\r
+ TargetMachine="1"\r
+ />\r
+ <Tool\r
+ Name="VCALinkTool"\r
+ />\r
+ <Tool\r
+ Name="VCManifestTool"\r
+ />\r
+ <Tool\r
+ Name="VCXDCMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCBscMakeTool"\r
+ />\r
+ <Tool\r
+ Name="VCFxCopTool"\r
+ />\r
+ <Tool\r
+ Name="VCAppVerifierTool"\r
+ />\r
+ <Tool\r
+ Name="VCPostBuildEventTool"\r
+ />\r
+ </Configuration>\r
+ </Configurations>\r
+ <References>\r
+ </References>\r
+ <Files>\r
+ <Filter\r
+ Name="Source Files"\r
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+ >\r
+ <File\r
+ RelativePath="getopt.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\make_modem_filter.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\filter_tools.c"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Header Files"\r
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+ >\r
+ <File\r
+ RelativePath="..\filter_tools.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\stdafx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\targetver.h"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Resource Files"\r
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+ >\r
+ </Filter>\r
+ </Files>\r
+ <Globals>\r
+ </Globals>\r
+</VisualStudioProject>\r
*
*/
-#if !defined(_INTTYPES_H_)
-#define _INTTYPES_H_
+#if !defined(_UNISTD_H_)
+#define _UNISTD_H_
#ifdef __cplusplus
extern "C" {
#define open _open
#define write _write
-extern int gethostname (char *name, size_t len);
+extern int getopt(int argc, char *argv[], char *opstring);
+
+extern char *optarg;
#ifdef __cplusplus
}
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: noise.c,v 1.30 2009/02/03 16:28:39 steveu Exp $
+ * $Id: noise.c,v 1.31 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(noise_state_t *) noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
-{
- return noise_init_dbov(s, seed, (level - DBM0_MAX_POWER), class_of_noise, quality);
-}
-/*- End of function --------------------------------------------------------*/
-
SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
{
float rms;
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(noise_state_t *) noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
+{
+ return noise_init_dbov(s, seed, (level - DBM0_MAX_POWER), class_of_noise, quality);
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) noise_release(noise_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) noise_free(noise_state_t *s)
{
free(s);
* The actual OKI ADPCM encode and decode method is derived from freely
* available code, whose exact origins seem uncertain.
*
- * $Id: oki_adpcm.c,v 1.31 2009/02/03 16:28:39 steveu Exp $
+ * $Id: oki_adpcm.c,v 1.32 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) oki_adpcm_release(oki_adpcm_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) oki_adpcm_free(oki_adpcm_state_t *s)
{
free(s);
return 0;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: playout.c,v 1.16 2009/02/03 16:28:39 steveu Exp $
+ * $Id: playout.c,v 1.17 2009/02/10 13:06:46 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(playout_state_t *) playout_new(int min_length, int max_length)
+SPAN_DECLARE(playout_state_t *) playout_init(int min_length, int max_length)
{
playout_state_t *s;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) playout_free(playout_state_t *s)
+SPAN_DECLARE(int) playout_release(playout_state_t *s)
{
playout_frame_t *frame;
playout_frame_t *next;
next = frame->later;
free(frame);
}
- /* Finally, free ourselves! */
- free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) playout_free(playout_state_t *s)
+{
+ if (s)
+ {
+ playout_release(s);
+ /* Finally, free ourselves! */
+ free(s);
+ }
+ return 0;
}
/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: plc.c,v 1.26 2009/02/03 16:28:39 steveu Exp $
+ * $Id: plc.c,v 1.27 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) plc_release(plc_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) plc_free(plc_state_t *s)
{
if (s)
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: power_meter.c,v 1.27 2009/02/03 16:28:39 steveu Exp $
+ * $Id: power_meter.c,v 1.28 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) power_meter_release(power_meter_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) power_meter_free(power_meter_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(power_meter_t *) power_meter_damping(power_meter_t *s, int shift)
{
s->shift = shift;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: queue.c,v 1.28 2009/02/03 16:28:40 steveu Exp $
+ * $Id: queue.c,v 1.29 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) queue_release(queue_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) queue_free(queue_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: schedule.c,v 1.21 2009/02/03 16:28:40 steveu Exp $
+ * $Id: schedule.c,v 1.22 2009/02/10 13:06:46 steveu Exp $
*/
#if defined(HAVE_CONFIG_H)
return 0;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) span_schedule_free(span_sched_state_t *s)
+{
+ span_schedule_release(s);
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: sig_tone.c,v 1.30 2009/02/03 16:28:40 steveu Exp $
+ * $Id: sig_tone.c,v 1.31 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) sig_tone_tx_release(sig_tone_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) sig_tone_tx_free(sig_tone_tx_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) sig_tone_rx(sig_tone_rx_state_t *s, int16_t amp[], int len)
{
#if defined(SPANDSP_USE_FIXED_POINT)
return s;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) sig_tone_rx_release(sig_tone_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) sig_tone_rx_free(sig_tone_rx_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: silence_gen.c,v 1.19 2009/02/04 13:18:53 steveu Exp $
+ * $Id: silence_gen.c,v 1.20 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) silence_gen_release(silence_gen_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) silence_gen_free(silence_gen_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
/* The following dummy routines, to absorb data, don't really have a proper home,
so they have been put here. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: adsi.h,v 1.35 2009/02/03 16:28:40 steveu Exp $
+ * $Id: adsi.h,v 1.36 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
*/
SPAN_DECLARE(adsi_rx_state_t *) adsi_rx_init(adsi_rx_state_t *s, int standard, put_msg_func_t put_msg, void *user_data);
+SPAN_DECLARE(int) adsi_rx_release(adsi_rx_state_t *s);
+
SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s);
/*! \brief Receive a chunk of ADSI audio.
*/
SPAN_DECLARE(adsi_tx_state_t *) adsi_tx_init(adsi_tx_state_t *s, int standard);
+SPAN_DECLARE(int) adsi_tx_release(adsi_tx_state_t *s);
+
SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s);
/*! \brief Adjust the preamble associated with an ADSI transmit context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: async.h,v 1.22 2009/02/04 13:18:53 steveu Exp $
+ * $Id: async.h,v 1.23 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
get_byte_func_t get_byte,
void *user_data);
+SPAN_DECLARE(int) async_tx_release(async_tx_state_t *s);
+
+SPAN_DECLARE(int) async_tx_free(async_tx_state_t *s);
+
/*! Get the next bit of a transmitted serial bit stream.
\brief Get the next bit of a transmitted serial bit stream.
\param user_data An opaque point which must point to a transmitter context.
put_byte_func_t put_byte,
void *user_data);
+SPAN_DECLARE(int) async_rx_release(async_rx_state_t *s);
+
+SPAN_DECLARE(int) async_rx_free(async_rx_state_t *s);
+
/*! Accept a bit from a received serial bit stream
\brief Accept a bit from a received serial bit stream
\param user_data An opaque point which must point to a receiver context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: at_interpreter.h,v 1.22 2009/02/03 16:28:40 steveu Exp $
+ * $Id: at_interpreter.h,v 1.23 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
at_modem_control_handler_t *modem_control_handler,
void *modem_control_user_data);
+/*! Release an AT interpreter context.
+ \brief Release an AT interpreter context.
+ \param s The AT context.
+ \return 0 for OK */
+SPAN_DECLARE(int) at_release(at_state_t *s);
+
/*! Free an AT interpreter context.
\brief Free an AT interpreter context.
\param s The AT context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: awgn.h,v 1.17 2009/02/03 16:28:40 steveu Exp $
+ * $Id: awgn.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float level);
+SPAN_DECLARE(int) awgn_release(awgn_state_t *s);
+
+SPAN_DECLARE(int) awgn_free(awgn_state_t *s);
+
SPAN_DECLARE(int16_t) awgn(awgn_state_t *s);
#if defined(__cplusplus)
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: bell_r2_mf.h,v 1.23 2009/02/03 16:28:41 steveu Exp $
+ * $Id: bell_r2_mf.h,v 1.24 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the Bell MF generator context.*/
SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s);
+/*! \brief Release a Bell MF generator context.
+ \param s The Bell MF generator context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) bell_mf_tx_release(bell_mf_tx_state_t *s);
+
/*! \brief Free a Bell MF generator context.
\param s The Bell MF generator context.
\return 0 for OK, else -1. */
\return A pointer to the MFC/R2 generator context.*/
SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd);
+/*! \brief Release an R2 MF tone generator context.
+ \param s The R2 MF tone generator context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) r2_mf_tx_release(r2_mf_tx_state_t *s);
+
/*! \brief Free an R2 MF tone generator context.
\param s The R2 MF tone generator context.
\return 0 for OK, else -1. */
digits_rx_callback_t callback,
void *user_data);
+/*! \brief Release a Bell MF receiver context.
+ \param s The Bell MF receiver context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) bell_mf_rx_release(bell_mf_rx_state_t *s);
+
/*! \brief Free a Bell MF receiver context.
\param s The Bell MF receiver context.
\return 0 for OK, else -1. */
tone_report_func_t callback,
void *user_data);
+/*! \brief Release an R2 MF receiver context.
+ \param s The R2 MF receiver context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) r2_mf_rx_release(r2_mf_rx_state_t *s);
+
/*! \brief Free an R2 MF receiver context.
\param s The R2 MF receiver context.
\return 0 for OK, else -1. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: bert.h,v 1.22 2009/02/03 16:28:41 steveu Exp $
+ * $Id: bert.h,v 1.23 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_BERT_H_)
\return The BERT context. */
SPAN_DECLARE(bert_state_t *) bert_init(bert_state_t *s, int limit, int pattern, int resync_len, int resync_percent);
+SPAN_DECLARE(int) bert_release(bert_state_t *s);
+
+SPAN_DECLARE(int) bert_free(bert_state_t *s);
+
/*! Get the next bit of the BERT sequence from the generator.
\param s The BERT context.
\return The bit. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: bitstream.h,v 1.13 2009/02/03 16:28:41 steveu Exp $
+ * $Id: bitstream.h,v 1.14 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the bitstream context. */
SPAN_DECLARE(bitstream_state_t *) bitstream_init(bitstream_state_t *s);
+SPAN_DECLARE(int) bitstream_release(bitstream_state_t *s);
+
+SPAN_DECLARE(int) bitstream_free(bitstream_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: complex.h,v 1.18 2008/09/03 13:41:42 steveu Exp $
+ * $Id: complex.h,v 1.19 2009/02/10 17:16:57 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
-static __inline__ complex_t complex_set(float re, float im)
+static __inline__ complex_t complex_set(double re, double im)
{
complex_t z;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: dtmf.h,v 1.31 2009/02/03 16:28:41 steveu Exp $
+ * $Id: dtmf.h,v 1.32 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_DTMF_H_)
\return A pointer to the DTMF generator context. */
SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s);
+/*! \brief Release a DTMF tone generator context.
+ \param s The DTMF tone generator context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) dtmf_tx_release(dtmf_tx_state_t *s);
+
/*! \brief Free a DTMF tone generator context.
\param s The DTMF tone generator context.
\return 0 for OK, else -1. */
digits_rx_callback_t callback,
void *user_data);
+/*! \brief Release a DTMF receiver context.
+ \param s The DTMF receiver context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) dtmf_rx_release(dtmf_rx_state_t *s);
+
/*! \brief Free a DTMF receiver context.
\param s The DTMF receiver context.
\return 0 for OK, else -1. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: echo.h,v 1.18 2009/02/03 16:28:41 steveu Exp $
+ * $Id: echo.h,v 1.19 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\param len The length of the canceller, in samples.
\return The new canceller context, or NULL if the canceller could not be created.
*/
-SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode);
+SPAN_DECLARE(echo_can_state_t *) echo_can_init(int len, int adaption_mode);
+
+/*! Release a voice echo canceller context.
+ \param ec The echo canceller context.
+ \return 0 for OK, else -1.
+*/
+SPAN_DECLARE(int) echo_can_release(echo_can_state_t *ec);
/*! Free a voice echo canceller context.
\param ec The echo canceller context.
+ \return 0 for OK, else -1.
*/
-SPAN_DECLARE(void) echo_can_free(echo_can_state_t *ec);
+SPAN_DECLARE(int) echo_can_free(echo_can_state_t *ec);
/*! Flush (reinitialise) a voice echo canceller context.
\param ec The echo canceller context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fast_convert.h,v 1.2 2009/02/05 12:21:36 steveu Exp $
+ * $Id: fast_convert.h,v 1.3 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_FAST_CONVERT_H_)
*/
#if defined(__CYGWIN__)
+#if !defined(__cplusplus)
/*
* CYGWIN has lrint and lrintf functions, but they are slow and buggy:
* http://sourceware.org/ml/cygwin/2005-06/msg00153.html
);
return retval;
}
+#endif
/* The fastest way to convert is the equivalent of lrint() */
static __inline__ long int lfastrint(double x)
* 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.8 2009/02/03 16:28:41 steveu Exp $
+ * $Id: fax_modems.h,v 1.9 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
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(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s, 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
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fsk.h,v 1.35 2009/02/03 16:28:41 steveu Exp $
+ * $Id: fsk.h,v 1.36 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
get_bit_func_t get_bit,
void *user_data);
+SPAN_DECLARE(int) fsk_tx_release(fsk_tx_state_t *s);
+
+SPAN_DECLARE(int) fsk_tx_free(fsk_tx_state_t *s);
+
/*! Adjust an FSK modem transmit context's power output.
\brief Adjust an FSK modem transmit context's power output.
\param s The modem context.
put_bit_func_t put_bit,
void *user_data);
+SPAN_DECLARE(int) fsk_rx_release(fsk_rx_state_t *s);
+
+SPAN_DECLARE(int) fsk_rx_free(fsk_rx_state_t *s);
+
/*! Process a block of received FSK modem audio samples.
\brief Process a block of received FSK modem audio samples.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: g711.h,v 1.17 2009/02/03 16:28:41 steveu Exp $
+ * $Id: g711.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the G.711 context, or NULL for error. */
SPAN_DECLARE(g711_state_t *) g711_init(g711_state_t *s, int mode);
-/*! Free a G.711 encode or decode context.
+/*! Release a G.711 encode or decode context.
\param s The G.711 context.
\return 0 for OK. */
SPAN_DECLARE(int) g711_release(g711_state_t *s);
+/*! Free a G.711 encode or decode context.
+ \param s The G.711 context.
+ \return 0 for OK. */
+SPAN_DECLARE(int) g711_free(g711_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* Computer Science, Speech Group
* Chengxiang Lu and Alex Hauptmann
*
- * $Id: g722.h,v 1.24 2009/02/03 16:28:41 steveu Exp $
+ * $Id: g722.h,v 1.25 2009/02/10 13:06:47 steveu Exp $
*/
SPAN_DECLARE(int) g722_encode_release(g722_encode_state_t *s);
+SPAN_DECLARE(int) g722_encode_free(g722_encode_state_t *s);
+
/*! Encode a buffer of linear PCM data to G.722
\param s The G.722 context.
\param g722_data The G.722 data produced.
SPAN_DECLARE(int) g722_decode_release(g722_decode_state_t *s);
+SPAN_DECLARE(int) g722_decode_free(g722_decode_state_t *s);
+
/*! Decode a buffer of G.722 data to linear PCM.
\param s The G.722 context.
\param amp The audio sample buffer.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: g726.h,v 1.24 2009/02/03 16:28:41 steveu Exp $
+ * $Id: g726.h,v 1.25 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the G.726 context, or NULL for error. */
SPAN_DECLARE(g726_state_t *) g726_init(g726_state_t *s, int bit_rate, int ext_coding, int packing);
-/*! Free a G.726 encode or decode context.
+/*! Release a G.726 encode or decode context.
\param s The G.726 context.
\return 0 for OK. */
SPAN_DECLARE(int) g726_release(g726_state_t *s);
+/*! Free a G.726 encode or decode context.
+ \param s The G.726 context.
+ \return 0 for OK. */
+SPAN_DECLARE(int) g726_free(g726_state_t *s);
+
/*! Decode a buffer of G.726 ADPCM data to linear PCM, a-law or u-law.
\param s The G.726 context.
\param amp The audio sample buffer.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: gsm0610.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
+ * $Id: gsm0610.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_GSM0610_H_)
\return 0 for success, else -1. */
SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s);
+/*! Free a GSM 06.10 encode or decode context.
+ \param s The GSM 06.10 context
+ \return 0 for success, else -1. */
+SPAN_DECLARE(int) gsm0610_free(gsm0610_state_t *s);
+
/*! Set the packing format for a GSM 06.10 encode or decode context.
\param s The GSM 06.10 context
\param packing One of the GSM0610_PACKING_xxx options.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: hdlc.h,v 1.42 2009/02/03 16:28:41 steveu Exp $
+ * $Id: hdlc.h,v 1.43 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
hdlc_frame_handler_t handler,
void *user_data);
+SPAN_DECLARE(int) hdlc_rx_release(hdlc_rx_state_t *s);
+
+SPAN_DECLARE(int) hdlc_rx_free(hdlc_rx_state_t *s);
+
/*! \brief Set the maximum frame length for an HDLC receiver context.
\param s A pointer to an HDLC receiver context.
\param max_len The maximum permitted length of a frame.
hdlc_underflow_handler_t handler,
void *user_data);
+SPAN_DECLARE(int) hdlc_tx_release(hdlc_tx_state_t *s);
+
+SPAN_DECLARE(int) hdlc_tx_free(hdlc_tx_state_t *s);
+
/*! \brief Set the maximum frame length for an HDLC transmitter context.
\param s A pointer to an HDLC transmitter context.
\param max_len The maximum length.
* Based on a bit from here, a bit from there, eye of toad,
* ear of bat, etc - plus, of course, my own 2 cents.
*
- * $Id: ima_adpcm.h,v 1.23 2009/02/03 16:28:41 steveu Exp $
+ * $Id: ima_adpcm.h,v 1.24 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
int variant,
int chunk_size);
-/*! Free an IMA ADPCM encode or decode context.
+/*! Release an IMA ADPCM encode or decode context.
\param s The IMA ADPCM context.
\return 0 for OK. */
SPAN_DECLARE(int) ima_adpcm_release(ima_adpcm_state_t *s);
+/*! Free an IMA ADPCM encode or decode context.
+ \param s The IMA ADPCM context.
+ \return 0 for OK. */
+SPAN_DECLARE(int) ima_adpcm_free(ima_adpcm_state_t *s);
+
/*! Encode a buffer of linear PCM data to IMA ADPCM.
\param s The IMA ADPCM context.
\param ima_data The IMA ADPCM data produced.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: logging.h,v 1.18 2009/01/31 08:48:11 steveu Exp $
+ * $Id: logging.h,v 1.19 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
*/
SPAN_DECLARE(int) span_log_buf(logging_state_t *s, int level, const char *tag, const uint8_t *buf, int len);
-SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag);
-
SPAN_DECLARE(int) span_log_set_level(logging_state_t *s, int level);
SPAN_DECLARE(int) span_log_set_tag(logging_state_t *s, const char *tag);
SPAN_DECLARE(void) span_set_error_handler(error_handler_func_t func);
+SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag);
+
+SPAN_DECLARE(int) span_log_release(logging_state_t *s);
+
+SPAN_DECLARE(int) span_log_free(logging_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: lpc10.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
+ * $Id: lpc10.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_LPC10_H_)
SPAN_DECLARE(int) lpc10_encode_release(lpc10_encode_state_t *s);
+SPAN_DECLARE(int) lpc10_encode_free(lpc10_encode_state_t *s);
+
/*! Encode a buffer of linear PCM data to LPC10e.
\param s The LPC10e context.
\param ima_data The LPC10e data produced.
SPAN_DECLARE(int) lpc10_decode_release(lpc10_decode_state_t *s);
+SPAN_DECLARE(int) lpc10_decode_free(lpc10_decode_state_t *s);
+
/*! Decode a buffer of LPC10e data to linear PCM.
\param s The LPC10e context.
\param amp The audio sample buffer.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: modem_connect_tones.h,v 1.21 2009/02/03 16:28:41 steveu Exp $
+ * $Id: modem_connect_tones.h,v 1.22 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem_connect_tones_tx_state_t *s,
int tone_type);
+/*! \brief Release an instance of the modem connect tones generator.
+ \param s The context.
+ \return 0 for OK, else -1.
+*/
+SPAN_DECLARE(int) modem_connect_tones_tx_release(modem_connect_tones_tx_state_t *s);
+
/*! \brief Free an instance of the modem connect tones generator.
\param s The context.
\return 0 for OK, else -1.
tone_report_func_t tone_callback,
void *user_data);
+/*! \brief Release an instance of the modem connect tones detector.
+ \param s The context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) modem_connect_tones_rx_release(modem_connect_tones_rx_state_t *s);
+
/*! \brief Free an instance of the modem connect tones detector.
\param s The context.
\return 0 for OK, else -1. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: noise.h,v 1.16 2009/02/03 16:28:41 steveu Exp $
+ * $Id: noise.h,v 1.17 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality);
+SPAN_DECLARE(int) noise_release(noise_state_t *s);
+
SPAN_DECLARE(int) noise_free(noise_state_t *s);
/*! Generate a sample of audio noise.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: oki_adpcm.h,v 1.23 2009/02/03 16:28:41 steveu Exp $
+ * $Id: oki_adpcm.h,v 1.24 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s,
int bit_rate);
-/*! Free an Oki ADPCM encode or decode context.
+/*! Release an Oki ADPCM encode or decode context.
\param s The Oki ADPCM context.
\return 0 for OK. */
SPAN_DECLARE(int) oki_adpcm_release(oki_adpcm_state_t *s);
+/*! Free an Oki ADPCM encode or decode context.
+ \param s The Oki ADPCM context.
+ \return 0 for OK. */
+SPAN_DECLARE(int) oki_adpcm_free(oki_adpcm_state_t *s);
+
/*! Decode a buffer of Oki ADPCM data to linear PCM.
\param s The Oki ADPCM context.
\param amp The audio sample buffer.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: playout.h,v 1.13 2009/02/03 16:28:41 steveu Exp $
+ * $Id: playout.h,v 1.14 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_PLAYOUT_H_)
\return The next timestamp. */
SPAN_DECLARE(timestamp_t) playout_next_due(playout_state_t *s);
-/*! Create a new instance of play-out buffering.
- \param min_length Minimum length of the buffer, in samples.
- \param max_length Maximum length of the buffer, in samples. If this equals min_length, static
- length buffering is used.
- \return The new context */
-SPAN_DECLARE(playout_state_t *) playout_new(int min_length, int max_length);
-
-/*! Destroy an instance of play-out buffering.
- \param s The play-out context to be destroyed */
-SPAN_DECLARE(void) playout_free(playout_state_t *s);
-
/*! Reset an instance of play-out buffering.
NOTE: The buffer should be empty before you call this function, otherwise
you will leak queued frames, and some internal structures
length buffering is used. */
SPAN_DECLARE(void) playout_restart(playout_state_t *s, int min_length, int max_length);
+/*! Create a new instance of play-out buffering.
+ \param min_length Minimum length of the buffer, in samples.
+ \param max_length Maximum length of the buffer, in samples. If this equals min_length, static
+ length buffering is used.
+ \return The new context */
+SPAN_DECLARE(playout_state_t *) playout_init(int min_length, int max_length);
+
+/*! Release an instance of play-out buffering.
+ \param s The play-out context to be releaased
+ \return 0 if OK, else -1 */
+SPAN_DECLARE(int) playout_release(playout_state_t *s);
+
+/*! Free an instance of play-out buffering.
+ \param s The play-out context to be destroyed
+ \return 0 if OK, else -1 */
+SPAN_DECLARE(int) playout_free(playout_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: plc.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
+ * $Id: plc.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the the packet loss concealer context. */
SPAN_DECLARE(plc_state_t *) plc_init(plc_state_t *s);
+/*! Release a packet loss concealer context.
+ \param s The packet loss concealer context.
+ \return 0 for OK. */
+SPAN_DECLARE(int) plc_release(plc_state_t *s);
+
/*! Free a packet loss concealer context.
\param s The packet loss concealer context.
\return 0 for OK. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: power_meter.h,v 1.17 2009/02/03 16:28:41 steveu Exp $
+ * $Id: power_meter.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_POWER_METER_H_)
\return The power meter context. */
SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift);
+SPAN_DECLARE(int) power_meter_release(power_meter_t *s);
+
+SPAN_DECLARE(int) power_meter_free(power_meter_t *s);
+
/*! Change the damping factor of a power meter context.
\brief Change the damping factor of a power meter context.
\param s The power meter context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: queue.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
+ * $Id: queue.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the context if OK, else NULL. */
SPAN_DECLARE(queue_state_t *) queue_init(queue_state_t *s, int len, int flags);
-/*! Delete a queue.
+/*! Release a queue.
+ \brief Release a queue.
+ \param s The queue context.
+ \return 0 if OK, else -1. */
+SPAN_DECLARE(int) queue_release(queue_state_t *s);
+
+/*! Free a queue.
\brief Delete a queue.
\param s The queue context.
- \return 0 if deleted OK, else -1. */
+ \return 0 if OK, else -1. */
SPAN_DECLARE(int) queue_free(queue_state_t *s);
#if defined(__cplusplus)
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: schedule.h,v 1.19 2009/02/03 16:28:41 steveu Exp $
+ * $Id: schedule.h,v 1.20 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(span_sched_state_t *) span_schedule_init(span_sched_state_t *s);
SPAN_DECLARE(int) span_schedule_release(span_sched_state_t *s);
+SPAN_DECLARE(int) span_schedule_free(span_sched_state_t *s);
#if defined(__cplusplus)
}
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: sig_tone.h,v 1.17 2009/02/03 16:28:41 steveu Exp $
+ * $Id: sig_tone.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the signalling tone context, or NULL if there was a problem. */
SPAN_DECLARE(sig_tone_rx_state_t *) sig_tone_rx_init(sig_tone_rx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
+SPAN_DECLARE(int) sig_tone_rx_release(sig_tone_rx_state_t *s);
+
+SPAN_DECLARE(int) sig_tone_rx_free(sig_tone_rx_state_t *s);
+
/*! Generate a block of signaling tone audio samples.
\brief Generate a block of signaling tone audio samples.
\param s The signaling tone context.
\return A pointer to the signalling tone context, or NULL if there was a problem. */
SPAN_DECLARE(sig_tone_tx_state_t *) sig_tone_tx_init(sig_tone_tx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
+SPAN_DECLARE(int) sig_tone_tx_release(sig_tone_tx_state_t *s);
+
+SPAN_DECLARE(int) sig_tone_tx_free(sig_tone_tx_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: silence_gen.h,v 1.15 2009/02/04 13:18:53 steveu Exp $
+ * $Id: silence_gen.h,v 1.16 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_SILENCE_GEN_H_)
*/
SPAN_DECLARE(silence_gen_state_t *) silence_gen_init(silence_gen_state_t *s, int silent_samples);
+SPAN_DECLARE(int) silence_gen_release(silence_gen_state_t *s);
+
+SPAN_DECLARE(int) silence_gen_free(silence_gen_state_t *s);
+
/* The following dummy routines, to absorb data, don't really have a proper home,
so they have been put here. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: super_tone_rx.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
+ * $Id: super_tone_rx.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_SUPER_TONE_RX_H_)
\param s The supervisory tone context.
\return 0 for OK, -1 for fail.
*/
+SPAN_DECLARE(int) super_tone_rx_release(super_tone_rx_state_t *s);
+
+/*! Free a supervisory tone detector.
+ \param s The supervisory tone context.
+ \return 0 for OK, -1 for fail.
+*/
SPAN_DECLARE(int) super_tone_rx_free(super_tone_rx_state_t *s);
/*! Define a callback routine to be called each time a tone pattern element is complete. This is
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: super_tone_tx.h,v 1.16 2009/02/03 16:28:41 steveu Exp $
+ * $Id: super_tone_tx.h,v 1.17 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_SUPER_TONE_TX_H_)
int length,
int cycles);
-SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s);
+SPAN_DECLARE(int) super_tone_tx_free_tone(super_tone_tx_step_t *s);
/*! Initialise a supervisory tone generator.
\brief Initialise a supervisory tone generator.
\return The supervisory tone generator context. */
SPAN_DECLARE(super_tone_tx_state_t *) super_tone_tx_init(super_tone_tx_state_t *s, super_tone_tx_step_t *tree);
+SPAN_DECLARE(int) super_tone_tx_release(super_tone_tx_state_t *s);
+
+SPAN_DECLARE(int) super_tone_tx_free(super_tone_tx_state_t *s);
+
/*! Generate a block of audio samples for a supervisory tone pattern.
\brief Generate a block of audio samples for a supervisory tone pattern.
\param s The supervisory tone context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t31.h,v 1.57 2009/02/03 16:28:41 steveu Exp $
+ * $Id: t31.h,v 1.58 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for OK */
SPAN_DECLARE(int) t31_release(t31_state_t *s);
+/*! Free a T.31 context.
+ \brief Release a T.31 context.
+ \param s The T.31 context.
+ \return 0 for OK */
+SPAN_DECLARE(int) t31_free(t31_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_core.h,v 1.36 2009/02/03 16:28:41 steveu Exp $
+ * $Id: t38_core.h,v 1.37 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
t38_tx_packet_handler_t *tx_packet_handler,
void *tx_packet_user_data);
+SPAN_DECLARE(int) t38_core_release(t38_core_state_t *s);
+
+SPAN_DECLARE(int) t38_core_free(t38_core_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_gateway.h,v 1.61 2009/02/03 16:28:41 steveu Exp $
+ * $Id: t38_gateway.h,v 1.62 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
t38_tx_packet_handler_t *tx_packet_handler,
void *tx_packet_user_data);
+/*! Release a gateway mode T.38 context.
+ \brief Release a T.38 context.
+ \param s The T.38 context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) t38_gateway_release(t38_gateway_state_t *s);
+
/*! Free a gateway mode T.38 context.
\brief Free a T.38 context.
\param s The T.38 context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_non_ecm_buffer.h,v 1.6 2009/02/04 13:18:53 steveu Exp $
+ * $Id: t38_non_ecm_buffer.h,v 1.7 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return A pointer to the buffer context, or NULL if there was a problem. */
SPAN_DECLARE(t38_non_ecm_buffer_state_t *) t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits);
+SPAN_DECLARE(int) t38_non_ecm_buffer_release(t38_non_ecm_buffer_state_t *s);
+
+SPAN_DECLARE(int) t38_non_ecm_buffer_free(t38_non_ecm_buffer_state_t *s);
+
/*! \brief Set the mode of a T.38 rate adapting non-ECM buffer context.
\param s The buffer context.
\param mode TRUE for image data mode, or FALSE for TCF mode.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t4.h,v 1.56 2009/02/05 12:21:36 steveu Exp $
+ * $Id: t4.h,v 1.57 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for success, otherwise -1. */
SPAN_DECLARE(int) t4_rx_end_page(t4_state_t *s);
+/*! \brief End reception of a document. Tidy up and close the file.
+ This should be used to end T.4 reception started with
+ t4_rx_init.
+ \param s The T.4 receive context.
+ \return 0 for success, otherwise -1. */
+SPAN_DECLARE(int) t4_rx_release(t4_state_t *s);
+
/*! \brief End reception of a document. Tidy up, close the file and
free the context. This should be used to end T.4 reception
started with t4_rx_init.
\return 0 for success, otherwise -1. */
SPAN_DECLARE(int) t4_rx_free(t4_state_t *s);
-/*! \brief End reception of a document. Tidy up and close the file.
- This should be used to end T.4 reception started with
- t4_rx_init.
- \param s The T.4 context.
- \return 0 for success, otherwise -1. */
-SPAN_DECLARE(int) t4_rx_end(t4_state_t *s);
-
SPAN_DECLARE(int) t4_rx_set_row_write_handler(t4_state_t *s, t4_row_write_handler_t handler, void *user_data);
/*! \brief Set the encoding for the received data.
set (i.e. the returned value is 2 or 3). */
SPAN_DECLARE(int) t4_tx_check_bit(t4_state_t *s);
+/*! \brief End the transmission of a document. Tidy up and close the file.
+ This should be used to end T.4 transmission started with t4_tx_init.
+ \param s The T.4 context.
+ \return 0 for success, otherwise -1. */
+SPAN_DECLARE(int) t4_tx_release(t4_state_t *s);
+
/*! \brief End the transmission of a document. Tidy up, close the file and
free the context. This should be used to end T.4 transmission
started with t4_tx_init.
\return 0 for success, otherwise -1. */
SPAN_DECLARE(int) t4_tx_free(t4_state_t *s);
-/*! \brief End the transmission of a document. Tidy up and close the file.
- This should be used to end T.4 transmission started with t4_tx_init.
- \param s The T.4 context.
- \return 0 for success, otherwise -1. */
-SPAN_DECLARE(int) t4_tx_end(t4_state_t *s);
-
/*! \brief Set the encoding for the encoded data.
\param s The T.4 context.
\param encoding The encoding. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: time_scale.h,v 1.19 2009/02/03 16:28:41 steveu Exp $
+ * $Id: time_scale.h,v 1.20 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_TIME_SCALE_H_)
\return A pointer to the context, or NULL if there was a problem. */
SPAN_DECLARE(time_scale_state_t *) time_scale_init(time_scale_state_t *s, int sample_rate, float playout_rate);
+/*! \brief Release a time scale context.
+ \param s The time scale context.
+ \return 0 for OK, else -1. */
+SPAN_DECLARE(int) time_scale_release(time_scale_state_t *s);
+
/*! \brief Free a time scale context.
\param s The time scale context.
\return 0 for OK, else -1. */
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: tone_detect.h,v 1.44 2009/02/03 16:28:41 steveu Exp $
+ * $Id: tone_detect.h,v 1.45 2009/02/10 13:06:47 steveu Exp $
*/
#if !defined(_SPANDSP_TONE_DETECT_H_)
SPAN_DECLARE(goertzel_state_t *) goertzel_init(goertzel_state_t *s,
goertzel_descriptor_t *t);
+SPAN_DECLARE(int) goertzel_release(goertzel_state_t *s);
+
+SPAN_DECLARE(int) goertzel_free(goertzel_state_t *s);
+
/*! \brief Reset the state of a Goertzel transform.
\param s The Goertzel context. */
SPAN_DECLARE(void) goertzel_reset(goertzel_state_t *s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: tone_generate.h,v 1.37 2009/02/03 16:28:41 steveu Exp $
+ * $Id: tone_generate.h,v 1.38 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
int d4,
int repeat);
+SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples);
+
SPAN_DECLARE(tone_gen_state_t *) tone_gen_init(tone_gen_state_t *s, tone_gen_descriptor_t *t);
-SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples);
+SPAN_DECLARE(int) tone_gen_release(tone_gen_state_t *s);
+
+SPAN_DECLARE(int) tone_gen_free(tone_gen_state_t *s);
#if defined(__cplusplus)
}
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v17rx.h,v 1.60 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v17rx.h,v 1.61 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for OK, -1 for bad parameter */
SPAN_DECLARE(int) v17_rx_restart(v17_rx_state_t *s, int bit_rate, int short_train);
+/*! Release a V.17 modem receive context.
+ \brief Release a V.17 modem receive context.
+ \param s The modem context.
+ \return 0 for OK */
+SPAN_DECLARE(int) v17_rx_release(v17_rx_state_t *s);
+
/*! Free a V.17 modem receive context.
\brief Free a V.17 modem receive context.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v17tx.h,v 1.39 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v17tx.h,v 1.40 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for OK, -1 for parameter error. */
SPAN_DECLARE(int) v17_tx_restart(v17_tx_state_t *s, int bit_rate, int tep, int short_train);
+/*! Release a V.17 modem transmit context.
+ \brief Release a V.17 modem transmit context.
+ \param s The modem context.
+ \return 0 for OK */
+SPAN_DECLARE(int) v17_tx_release(v17_tx_state_t *s);
+
/*! Free a V.17 modem transmit context.
\brief Free a V.17 modem transmit context.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v22bis.h,v 1.34 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v22bis.h,v 1.35 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
put_bit_func_t put_bit,
void *user_data);
+/*! Release a V.22bis modem receive context.
+ \brief Release a V.22bis modem receive context.
+ \param s The modem context.
+ \return 0 for OK */
+SPAN_DECLARE(int) v22bis_release(v22bis_state_t *s);
+
/*! Free a V.22bis modem receive context.
\brief Free a V.22bis modem receive context.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v27ter_rx.h,v 1.56 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v27ter_rx.h,v 1.57 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for OK, -1 for bad parameter */
SPAN_DECLARE(int) v27ter_rx_restart(v27ter_rx_state_t *s, int bit_rate, int old_train);
+/*! Release a V.27ter modem receive context.
+ \brief Release a V.27ter modem receive context.
+ \param s The modem context.
+ \return 0 for OK */
+SPAN_DECLARE(int) v27ter_rx_release(v27ter_rx_state_t *s);
+
/*! Free a V.27ter modem receive context.
\brief Free a V.27ter modem receive context.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v27ter_tx.h,v 1.39 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v27ter_tx.h,v 1.40 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for OK, -1 for bad parameter */
SPAN_DECLARE(int) v27ter_tx_restart(v27ter_tx_state_t *s, int bit_rate, int tep);
+/*! Release a V.27ter modem transmit context.
+ \brief Release a V.27ter modem transmit context.
+ \param s The modem context.
+ \return 0 for OK */
+SPAN_DECLARE(int) v27ter_tx_release(v27ter_tx_state_t *s);
+
/*! Free a V.27ter modem transmit context.
\brief Free a V.27ter modem transmit context.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v29rx.h,v 1.67 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v29rx.h,v 1.68 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for OK, -1 for bad parameter */
SPAN_DECLARE(int) v29_rx_restart(v29_rx_state_t *s, int bit_rate, int old_train);
+/*! Release a V.29 modem receive context.
+ \brief Release a V.29 modem receive context.
+ \param s The modem context.
+ \return 0 for OK */
+SPAN_DECLARE(int) v29_rx_release(v29_rx_state_t *s);
+
/*! Free a V.29 modem receive context.
\brief Free a V.29 modem receive context.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v29tx.h,v 1.37 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v29tx.h,v 1.38 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
\return 0 for OK, -1 for bad parameter */
SPAN_DECLARE(int) v29_tx_restart(v29_tx_state_t *s, int bit_rate, int tep);
+/*! Release a V.29 modem transmit context.
+ \brief Release a V.29 modem transmit context.
+ \param s The modem context.
+ \return 0 for OK */
+SPAN_DECLARE(int) v29_tx_release(v29_tx_state_t *s);
+
/*! Free a V.29 modem transmit context.
\brief Free a V.29 modem transmit context.
\param s The modem context.
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v42.h,v 1.29 2009/02/04 13:18:53 steveu Exp $
+ * $Id: v42.h,v 1.30 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page v42_page V.42 modem error correction
\return 0 if OK */
SPAN_DECLARE(int) v42_release(v42_state_t *s);
+/*! Free a V.42 context.
+ \param s The V.42 context.
+ \return 0 if OK */
+SPAN_DECLARE(int) v42_free(v42_state_t *s);
+
#if defined(__cplusplus)
}
#endif
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v42bis.h,v 1.25 2009/02/03 16:28:41 steveu Exp $
+ * $Id: v42bis.h,v 1.26 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page v42bis_page V.42bis modem data compression
\return 0 */
SPAN_DECLARE(int) v42bis_decompress_flush(v42bis_state_t *s);
+/*! Set the compression mode.
+ \param s The V.42bis context.
+ \param mode One of the V.42bis compression modes -
+ V42BIS_COMPRESSION_MODE_DYNAMIC,
+ V42BIS_COMPRESSION_MODE_ALWAYS,
+ V42BIS_COMPRESSION_MODE_NEVER */
+SPAN_DECLARE(void) v42bis_compression_control(v42bis_state_t *s, int mode);
+
/*! Initialise a V.42bis context.
\param s The V.42bis context.
\param negotiated_p0 The negotiated P0 parameter, from the V.42bis spec.
void *data_user_data,
int max_data_len);
-/*! Set the compression mode.
- \param s The V.42bis context.
- \param mode One of the V.42bis compression modes -
- V42BIS_COMPRESSION_MODE_DYNAMIC,
- V42BIS_COMPRESSION_MODE_ALWAYS,
- V42BIS_COMPRESSION_MODE_NEVER */
-SPAN_DECLARE(void) v42bis_compression_control(v42bis_state_t *s, int mode);
-
/*! Release a V.42bis context.
\param s The V.42bis context.
\return 0 if OK */
SPAN_DECLARE(int) v42bis_release(v42bis_state_t *s);
+/*! Free a V.42bis context.
+ \param s The V.42bis context.
+ \return 0 if OK */
+SPAN_DECLARE(int) v42bis_free(v42bis_state_t *s);
+
#if defined(__cplusplus)
}
#endif
/* The date and time of the version are in UTC form. */
-#define SPANDSP_RELEASE_DATE 20090205
-#define SPANDSP_RELEASE_TIME 122416
+#define SPANDSP_RELEASE_DATE 20090210
+#define SPANDSP_RELEASE_TIME 172413
#endif
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: super_tone_rx.c,v 1.32 2009/02/03 16:28:40 steveu Exp $
+ * $Id: super_tone_rx.c,v 1.33 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) super_tone_rx_release(super_tone_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) super_tone_rx_free(super_tone_rx_state_t *s)
{
if (s)
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: super_tone_tx.c,v 1.28 2009/02/03 16:28:40 steveu Exp $
+ * $Id: super_tone_tx.c,v 1.29 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s)
+SPAN_DECLARE(int) super_tone_tx_free_tone(super_tone_tx_step_t *s)
{
super_tone_tx_step_t *t;
s = s->next;
free(t);
}
+ return 0;
}
/*- End of function --------------------------------------------------------*/
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) super_tone_tx_release(super_tone_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) super_tone_tx_free(super_tone_tx_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) super_tone_tx(super_tone_tx_state_t *s, int16_t amp[], int max_samples)
{
int samples;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t30.c,v 1.284 2009/02/04 13:18:53 steveu Exp $
+ * $Id: t30.c,v 1.285 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
#define set_ctrl_bits(s,val,bit) (s)[3 + ((bit - 1)/8)] |= ((val) << ((bit - 1)%8))
#define clr_ctrl_bit(s,bit) (s)[3 + ((bit - 1)/8)] &= ~(1 << ((bit - 1)%8))
+static int terminate_operation_in_progress(t30_state_t *s)
+{
+ /* Make sure any FAX in progress is tidied up. If the tidying up has
+ already happened, repeating it here is harmless. */
+ switch (s->operation_in_progress)
+ {
+ case OPERATION_IN_PROGRESS_T4_TX:
+ t4_tx_release(&(s->t4));
+ break;
+ case OPERATION_IN_PROGRESS_T4_RX:
+ t4_rx_release(&(s->t4));
+ break;
+ }
+ s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
static int tx_start_page(t30_state_t *s)
{
if (t4_tx_start_page(&(s->t4)))
{
- t4_tx_end(&(s->t4));
- s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
+ terminate_operation_in_progress(s);
return -1;
}
s->ecm_block = 0;
switch (s->operation_in_progress)
{
case OPERATION_IN_PROGRESS_T4_TX:
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
break;
case OPERATION_IN_PROGRESS_T4_RX:
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
break;
}
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
must be evaluated before the minimum scan row bits can be evaluated. */
if ((min_row_bits = set_min_scan_time_code(s)) < 0)
{
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
return -1;
}
case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF);
break;
case T30_COPY_QUALITY_POOR:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP);
case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF);
break;
case T30_COPY_QUALITY_POOR:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP);
case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF);
break;
case T30_COPY_QUALITY_POOR:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP);
case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF);
break;
case T30_COPY_QUALITY_POOR:
rx_end_page(s);
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP);
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
/* TODO: should go back to T, and resend */
return_to_phase_b(s, TRUE);
break;
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->current_status = T30_ERR_TX_INVALRSP;
send_dcn(s);
break;
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{
tx_end_page(s);
if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
switch (s->operation_in_progress)
{
case OPERATION_IN_PROGRESS_T4_TX:
- t4_tx_end(&(s->t4));
+ t4_tx_release(&(s->t4));
break;
case OPERATION_IN_PROGRESS_T4_RX:
- t4_rx_end(&(s->t4));
+ t4_rx_release(&(s->t4));
break;
}
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t31.c,v 1.139 2009/02/03 16:28:40 steveu Exp $
+ * $Id: t31.c,v 1.140 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(int) t31_release(t31_state_t *s)
{
at_reset_call_info(&s->at_state);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) t31_free(t31_state_t *s)
+{
+ t31_release(s);
free(s);
return 0;
}
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_core.c,v 1.51 2009/02/03 16:28:40 steveu Exp $
+ * $Id: t38_core.c,v 1.52 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
return s;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) t38_core_release(t38_core_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) t38_core_free(t38_core_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_gateway.c,v 1.153 2009/02/03 16:28:40 steveu Exp $
+ * $Id: t38_gateway.c,v 1.154 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) t38_gateway_release(t38_gateway_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) t38_gateway_free(t38_gateway_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_non_ecm_buffer.c,v 1.7 2009/02/04 13:18:53 steveu Exp $
+ * $Id: t38_non_ecm_buffer.c,v 1.8 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(t38_non_ecm_buffer_state_t *) t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
{
+ if (s == NULL)
+ {
+ if ((s = (t38_non_ecm_buffer_state_t *) malloc(sizeof(*s))) == NULL)
+ return NULL;
+ }
memset(s, 0, sizeof(*s));
s->octet = 0xFF;
s->flow_control_fill_octet = 0xFF;
return s;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) t38_non_ecm_buffer_release(t38_non_ecm_buffer_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) t38_non_ecm_buffer_free(t38_non_ecm_buffer_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_terminal.c,v 1.122 2009/02/03 16:28:40 steveu Exp $
+ * $Id: t38_terminal.c,v 1.123 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(int) t38_terminal_free(t38_terminal_state_t *s)
{
- t30_release(&s->t30);
+ t38_terminal_release(s);
free(s);
return 0;
}
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t4.c,v 1.123 2009/02/05 12:21:36 steveu Exp $
+ * $Id: t4.c,v 1.124 2009/02/10 13:06:46 steveu Exp $
*/
/*
#include "t4_states.h"
+#if defined(HAVE_LIBTIFF)
static int set_tiff_directory_info(t4_state_t *s)
{
time_t now;
}
/*- End of function --------------------------------------------------------*/
+static int get_tiff_total_pages(t4_state_t *s)
+{
+ int max;
+
+ /* Each page *should* contain the total number of pages, but can this be
+ trusted? Some files say 0. Actually searching for the last page is
+ more reliable. */
+ max = 0;
+ while (TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) max))
+ max++;
+ /* Back to the previous page */
+ if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
+ return -1;
+ return max;
+}
+/*- End of function --------------------------------------------------------*/
+
static int open_tiff_input_file(t4_state_t *s, const char *file)
{
if ((s->tiff.tiff_file = TIFFOpen(file, "r")) == NULL)
}
/*- End of function --------------------------------------------------------*/
+#else
+
+static int set_tiff_directory_info(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int get_tiff_directory_info(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int open_tiff_input_file(t4_state_t *s, const char *file)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int read_tiff_image(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int close_tiff_input_file(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int open_tiff_output_file(t4_state_t *s, const char *file)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static void write_tiff_image(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int close_tiff_output_file(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+#endif
+
static void update_row_bit_info(t4_state_t *s)
{
if (s->row_bits > s->max_row_bits)
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) t4_rx_end(t4_state_t *s)
+SPAN_DECLARE(int) t4_rx_release(t4_state_t *s)
{
if (!s->rx)
return -1;
SPAN_DECLARE(int) t4_rx_free(t4_state_t *s)
{
- if (t4_rx_end(s))
- return -1;
+ int ret;
+
+ ret = t4_rx_release(s);
free(s);
- return 0;
+ return ret;
}
/*- End of function --------------------------------------------------------*/
this_image_width = 0;
if (s->row_read_handler == NULL)
{
+#if defined(HAVE_LIBTIFF)
if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
return -1;
TIFFGetField(s->tiff.tiff_file, TIFFTAG_IMAGEWIDTH, &this_image_width);
+#endif
}
s->image_size = 0;
s->tx_bitstream = 0;
{
if (s->row_read_handler == NULL)
{
+#if defined(HAVE_LIBTIFF)
if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred + 1))
return -1;
+#endif
}
}
return 0;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) t4_tx_end(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_release(t4_state_t *s)
{
if (s->rx)
return -1;
SPAN_DECLARE(int) t4_tx_free(t4_state_t *s)
{
- if (t4_tx_end(s))
- return -1;
+ int ret;
+
+ ret = t4_tx_release(s);
free(s);
- return 0;
+ return ret;
}
/*- End of function --------------------------------------------------------*/
{
int max;
- /* Each page *should* contain the total number of pages, but can this be
- trusted? Some files say 0. Actually searching for the last page is
- more reliable. */
max = 0;
if (s->row_write_handler == NULL)
- {
- while (TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) max))
- max++;
- /* Back to the previous page */
- if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
- return -1;
- }
- s->pages_in_file = max;
+ max = get_tiff_total_pages(s);
+ if (max >= 0)
+ s->pages_in_file = max;
return max;
}
/*- End of function --------------------------------------------------------*/
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: time_scale.c,v 1.29 2009/02/03 16:28:40 steveu Exp $
+ * $Id: time_scale.c,v 1.30 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) time_scale_release(time_scale_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) time_scale_free(time_scale_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: tone_detect.c,v 1.50 2009/02/03 16:28:40 steveu Exp $
+ * $Id: tone_detect.c,v 1.51 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file tone_detect.h */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) goertzel_release(goertzel_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) goertzel_free(goertzel_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(void) goertzel_reset(goertzel_state_t *s)
{
#if defined(SPANDSP_USE_FIXED_POINT)
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: tone_generate.c,v 1.49 2009/02/03 16:28:40 steveu Exp $
+ * $Id: tone_generate.c,v 1.50 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) tone_gen_release(tone_gen_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) tone_gen_free(tone_gen_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples)
{
int samples;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v17rx.c,v 1.132 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v17rx.c,v 1.133 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v17_rx_release(v17_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v17_rx_free(v17_rx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v17tx.c,v 1.70 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v17tx.c,v 1.71 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v17_tx_release(v17_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v17_tx_free(v17_tx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v22bis_tx.c,v 1.50 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v22bis_tx.c,v 1.51 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v22bis_release(v22bis_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v22bis_free(v22bis_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v27ter_rx.c,v 1.116 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v27ter_rx.c,v 1.117 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v27ter_rx_release(v27ter_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v27ter_rx_free(v27ter_rx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v27ter_tx.c,v 1.72 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v27ter_tx.c,v 1.73 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v27ter_tx_release(v27ter_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v27ter_tx_free(v27ter_tx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v29rx.c,v 1.153 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v29rx.c,v 1.154 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v29_rx_release(v29_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v29_rx_free(v29_rx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v29tx.c,v 1.85 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v29tx.c,v 1.86 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v29_tx_release(v29_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v29_tx_free(v29_tx_state_t *s)
{
free(s);
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v42.c,v 1.49 2009/02/04 13:18:53 steveu Exp $
+ * $Id: v42.c,v 1.50 2009/02/10 13:06:47 steveu Exp $
*/
/* THIS IS A WORK IN PROGRESS. IT IS NOT FINISHED. */
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) v42_release(v42_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) v42_free(v42_state_t *s)
{
free(s);
return 0;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v42bis.c,v 1.36 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v42bis.c,v 1.37 2009/02/10 13:06:47 steveu Exp $
*/
/* THIS IS A WORK IN PROGRESS. IT IS NOT FINISHED.
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) v42bis_release(v42bis_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) v42bis_free(v42bis_state_t *s)
{
free(s);
return 0;
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: vector_float.c,v 1.20 2009/02/03 16:28:40 steveu Exp $
+ * $Id: vector_float.c,v 1.21 2009/02/05 15:57:27 steveu Exp $
*/
/*! \file */
SPAN_DECLARE(void) vec_negatef(float z[], const float x[], int n)
{
int i;
- static const uint32_t mask = 0x80000000;
- static const float *fmask = (float *)&mask;
+ static const uint32_t mask = 0x80000000;
+ static const float *fmask = (float *) &mask;
__m128 n1;
__m128 n2;
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: echo_tests.c,v 1.37 2008/11/30 10:17:31 steveu Exp $
+ * $Id: echo_tests.c,v 1.38 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page echo_can_tests_page Line echo cancellation for voice tests
//int coeff_index;
print_test_title("Performing basic sanity test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
local_cur = 0;
far_cur = 0;
/* Test 2 - Convergence and steady state residual and returned echo level test */
/* Test 2A - Convergence and reconvergence test with NLP enabled */
print_test_title("Performing test 2A - Convergence and reconvergence test with NLP enabled\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION | ECHO_CAN_USE_NLP);
/* Test 2 - Convergence and steady state residual and returned echo level test */
/* Test 2B - Convergence and reconverge with NLP disabled */
print_test_title("Performing test 2B - Convergence and reconverge with NLP disabled\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 2 - Convergence and steady state residual and returned echo level test */
/* Test 2C(a) - Convergence with background noise present */
print_test_title("Performing test 2C(a) - Convergence with background noise present\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
awgn_init_dbm0(&far_noise_source, 7162534, -50.0f);
echo_can_flush(ctx);
/* Test 3 - Performance under double talk conditions */
/* Test 3A - Double talk test with low cancelled-end levels */
print_test_title("Performing test 3A - Double talk test with low cancelled-end levels\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 3 - Performance under double talk conditions */
/* Test 3B(a) - Double talk stability test with high cancelled-end levels */
print_test_title("Performing test 3B(b) - Double talk stability test with high cancelled-end levels\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 3 - Performance under double talk conditions */
/* Test 3B(b) - Double talk stability test with low cancelled-end levels */
print_test_title("Performing test 3B(b) - Double talk stability test with low cancelled-end levels\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 3 - Performance under double talk conditions */
/* Test 3C - Double talk test with simulated conversation */
print_test_title("Performing test 3C - Double talk test with simulated conversation\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 4 - Leak rate test */
print_test_title("Performing test 4 - Leak rate test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 5 - Infinite return loss convergence test */
print_test_title("Performing test 5 - Infinite return loss convergence test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 6 - Non-divergence on narrow-band signals */
print_test_title("Performing test 6 - Non-divergence on narrow-band signals\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
/* Test 7 - Stability */
print_test_title("Performing test 7 - Stability\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
/* Put tones through an unconverged canceller, and check nothing unpleasant
happens. */
/* Test 8 - Non-convergence on No 5, 6, and 7 in-band signalling */
print_test_title("Performing test 8 - Non-convergence on No 5, 6, and 7 in-band signalling\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 8 not yet implemented\n");
/* Test 9 - Comfort noise test */
print_test_title("Performing test 9 - Comfort noise test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
awgn_init_dbm0(&far_noise_source, 7162534, -50.0f);
echo_can_flush(ctx);
/* Test 10 - FAX test during call establishment phase */
/* Test 10A - Canceller operation on the calling station side */
print_test_title("Performing test 10A - Canceller operation on the calling station side\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 10A not yet implemented\n");
/* Test 10 - FAX test during call establishment phase */
/* Test 10B - Canceller operation on the called station side */
print_test_title("Performing test 10B - Canceller operation on the called station side\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 10B not yet implemented\n");
transmission and page breaks (for further study) */
print_test_title("Performing test 10C - Canceller operation on the calling station side during page\n"
"transmission and page breaks (for further study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 10C not yet implemented\n");
/* Test 11 - Tandem echo canceller test (for further study) */
print_test_title("Performing test 11 - Tandem echo canceller test (for further study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 11 not yet implemented\n");
/* Test 12 - Residual acoustic echo test (for further study) */
print_test_title("Performing test 12 - Residual acoustic echo test (for further study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 12 not yet implemented\n");
/* Test 13 - Performance with ITU-T low-bit rate coders in echo path
(Optional, under study) */
print_test_title("Performing test 13 - Performance with ITU-T low-bit rate coders in echo path (Optional, under study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 13 not yet implemented\n");
/* Test 14 - Performance with V-series low-speed data modems */
print_test_title("Performing test 14 - Performance with V-series low-speed data modems\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 14 not yet implemented\n");
/* Test 15 - PCM offset test (Optional) */
print_test_title("Performing test 15 - PCM offset test (Optional)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 15 not yet implemented\n");
ecfile = afOpenFile_telephony_write(argv[1], 1);
}
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_adaption_mode(ctx, mode);
samples = 0;
do
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fax_decode.c,v 1.53 2009/01/27 05:13:12 steveu Exp $
+ * $Id: fax_decode.c,v 1.54 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page fax_decode_page FAX decoder
v29_rx(v29, amp, len);
//v27ter_rx(v27ter, amp, len);
}
- t4_rx_end(&t4_state);
+ t4_rx_release(&t4_state);
if (afCloseFile(inhandle) != 0)
{
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: playout_tests.c,v 1.27 2008/11/15 14:27:29 steveu Exp $
+ * $Id: playout_tests.c,v 1.28 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page playout_tests_page Playout (jitter buffering) tests
for (i = 0; i < BLOCK_LEN; i++)
fill[i] = 32767;
- if ((s = playout_new(2*BLOCK_LEN, 15*BLOCK_LEN)) == NULL)
+ if ((s = playout_init(2*BLOCK_LEN, 15*BLOCK_LEN)) == NULL)
return;
plc_init(&plc);
time_scale_init(&ts, SAMPLE_RATE, 1.0);
type = PLAYOUT_TYPE_SPEECH;
len = BLOCK_LEN;
- if ((s = playout_new(2*BLOCK_LEN, 2*BLOCK_LEN)) == NULL)
+ if ((s = playout_init(2*BLOCK_LEN, 2*BLOCK_LEN)) == NULL)
return;
for (i = 0; i < 1000000; i++)
{
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t4_tests.c,v 1.65 2009/01/05 13:48:32 steveu Exp $
+ * $Id: t4_tests.c,v 1.66 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
dump_image_as_xxx(&receive_state);
t4_rx_end_page(&receive_state);
display_page_stats(&receive_state);
- t4_rx_end(&receive_state);
+ t4_rx_release(&receive_state);
}
else
{
t4_rx_end_page(&receive_state);
sends++;
}
- t4_tx_end(&send_state);
- t4_rx_end(&receive_state);
+ t4_tx_release(&send_state);
+ t4_rx_release(&receive_state);
/* And we should now have a matching received TIFF file. Note this will only match
at the image level. TIFF files allow a lot of ways to express the same thing,
so bit matching of the files is not the normal case. */
t4_rx_end_page(&receive_state);
break;
}
- t4_tx_end(&send_state);
- t4_rx_end(&receive_state);
+ t4_tx_release(&send_state);
+ t4_rx_release(&receive_state);
#endif
printf("Tests passed\n");
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: tsb85_tests.c,v 1.28 2009/01/28 03:41:27 steveu Exp $
+ * $Id: tsb85_tests.c,v 1.29 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
span_log(&s->logging, SPAN_LOG_FLOW, "We need to corrupt the image\n");
corrupt_image(s, image, len, (const char *) bad_rows);
}
- t4_tx_end(&t4_state);
+ t4_tx_release(&t4_state);
span_log(&s->logging, SPAN_LOG_FLOW, "Non-ECM image is %d bytes\n", len);
faxtester_set_non_ecm_image_buffer(s, image, len);
}
corrupt_image(s, image, len, (const char *) bad_rows);
}
/*endif*/
- t4_tx_end(&t4_state);
+ t4_tx_release(&t4_state);
span_log(&s->logging, SPAN_LOG_FLOW, "ECM image is %d bytes\n", len);
faxtester_set_ecm_image_buffer(s, image, len, ecm_block, ecm_frame_size, i);
}