update to snapshot spandsp-20090211

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12186 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2009-02-20 18:22:32 +00:00
parent c21e6a048e
commit 6cd7446a20
121 changed files with 1799 additions and 291 deletions

View File

@ -16,7 +16,7 @@
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # 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 # @start 1
@ -33,7 +33,7 @@ SPANDSP_MAJOR_VERSION=0
SPANDSP_MINOR_VERSION=0 SPANDSP_MINOR_VERSION=0
SPANDSP_MICRO_VERSION=6 SPANDSP_MICRO_VERSION=6
SPANDSP_LT_CURRENT=1 SPANDSP_LT_CURRENT=2
SPANDSP_LT_REVISION=0 SPANDSP_LT_REVISION=0
SPANDSP_LT_AGE=0 SPANDSP_LT_AGE=0

View File

@ -16,7 +16,7 @@
## License along with this program; if not, write to the Free Software ## License along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ## 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_CFLAGS = $(COMP_VENDOR_CFLAGS)
AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS) AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
@ -29,18 +29,21 @@ EXTRA_DIST = floating_fudge.h \
libspandsp.sln \ libspandsp.sln \
libspandsp.vcproj \ libspandsp.vcproj \
msvc/config.h \ msvc/config.h \
msvc/getopt.c \
msvc/gettimeofday.c \ msvc/gettimeofday.c \
msvc/inttypes.h \ msvc/inttypes.h \
msvc/tgmath.h \ msvc/tgmath.h \
msvc/unistd.h \ msvc/unistd.h \
msvc/spandsp.h \ msvc/spandsp.h \
msvc/sys/time.h \ msvc/sys/time.h \
msvc/make_at_dictionary.vcproj \
msvc/make_headers.bat \
msvc/make_modem_filter.vcproj \
msvc/msvcproj.head \ msvc/msvcproj.head \
msvc/msvcproj.foot \ msvc/msvcproj.foot \
msvc/vc8proj.head \ msvc/vc8proj.head \
msvc/vc8proj.foot \ msvc/vc8proj.foot \
spandsp/private/README spandsp/private/README
INCLUDES = -I$(top_builddir) INCLUDES = -I$(top_builddir)
lib_LTLIBRARIES = libspandsp.la lib_LTLIBRARIES = libspandsp.la

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -449,6 +449,12 @@ SPAN_DECLARE(adsi_rx_state_t *) adsi_rx_init(adsi_rx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s)
{ {
free(s); free(s);
@ -658,6 +664,12 @@ SPAN_DECLARE(adsi_tx_state_t *) adsi_tx_init(adsi_tx_state_t *s, int standard)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s)
{ {
free(s); free(s);

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -103,6 +103,19 @@ SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE_NONSTD(void) async_rx_put_bit(void *user_data, int bit)
{ {
async_rx_state_t *s; async_rx_state_t *s;
@ -216,6 +229,19 @@ SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE_NONSTD(int) async_tx_get_bit(void *user_data)
{ {
async_tx_state_t *s; async_tx_state_t *s;

View File

@ -25,7 +25,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -5318,13 +5318,22 @@ SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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); at_reset_call_info(s);
if (s->local_id) if (s->local_id)
free(s->local_id); free(s->local_id);
free(s);
return 0; return 0;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -96,12 +96,6 @@ static double ran1(awgn_state_t *s)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float level)
{ {
int j; int j;
@ -134,6 +128,25 @@ SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float lev
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int16_t) awgn(awgn_state_t *s)
{ {
double fac; double fac;

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -340,6 +340,12 @@ SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) bell_mf_tx_free(bell_mf_tx_state_t *s)
{ {
free(s); free(s);
@ -437,6 +443,12 @@ SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) r2_mf_tx_free(r2_mf_tx_state_t *s)
{ {
free(s); free(s);
@ -651,6 +663,12 @@ SPAN_DECLARE(bell_mf_rx_state_t *) bell_mf_rx_init(bell_mf_rx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) bell_mf_rx_free(bell_mf_rx_state_t *s)
{ {
free(s); free(s);
@ -829,6 +847,12 @@ SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) r2_mf_rx_free(r2_mf_rx_state_t *s)
{ {
free(s); free(s);

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 defined(HAVE_CONFIG_H)
@ -351,7 +351,7 @@ SPAN_DECLARE(bert_state_t *) bert_init(bert_state_t *s, int limit, int pattern,
if (s == NULL) if (s == NULL)
{ {
if ((s = (bert_state_t *) malloc(sizeof(*s))) == NULL) if ((s = (bert_state_t *) malloc(sizeof(*s))) == NULL)
return NULL; return NULL;
} }
memset(s, 0, sizeof(*s)); memset(s, 0, sizeof(*s));
@ -493,4 +493,17 @@ SPAN_DECLARE(bert_state_t *) bert_init(bert_state_t *s, int limit, int pattern,
return s; return s;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -128,10 +128,27 @@ SPAN_DECLARE(void) bitstream_flush2(bitstream_state_t *s, uint8_t **c)
SPAN_DECLARE(bitstream_state_t *) bitstream_init(bitstream_state_t *s) SPAN_DECLARE(bitstream_state_t *) bitstream_init(bitstream_state_t *s)
{ {
if (s == NULL) if (s == NULL)
return NULL; {
if ((s = (bitstream_state_t *) malloc(sizeof(*s))) == NULL)
return NULL;
}
s->bitstream = 0; s->bitstream = 0;
s->residue = 0; s->residue = 0;
return s; return s;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file dtmf.h */
@ -410,6 +410,12 @@ SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) dtmf_rx_free(dtmf_rx_state_t *s)
{ {
free(s); free(s);
@ -526,6 +532,12 @@ SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) dtmf_tx_free(dtmf_tx_state_t *s)
{ {
free(s); free(s);

View File

@ -27,7 +27,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -238,7 +238,7 @@ static __inline__ void lms_adapt(echo_can_state_t *ec, int factor)
} }
/*- End of function --------------------------------------------------------*/ /*- 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; echo_can_state_t *ec;
int i; int i;
@ -279,11 +279,17 @@ SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode)
ec->tap_rotate_counter = 1600; ec->tap_rotate_counter = 1600;
ec->cng_level = 1000; ec->cng_level = 1000;
echo_can_adaption_mode(ec, adaption_mode); echo_can_adaption_mode(ec, adaption_mode);
return ec; return ec;
} }
/*- End of function --------------------------------------------------------*/ /*- 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; int i;
@ -292,6 +298,7 @@ SPAN_DECLARE(void) echo_can_free(echo_can_state_t *ec)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
free(ec->fir_taps16[i]); free(ec->fir_taps16[i]);
free(ec); free(ec);
return 0;
} }
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -545,7 +545,6 @@ SPAN_DECLARE(fax_state_t *) fax_init(fax_state_t *s, int calling_party)
if ((s = (fax_state_t *) malloc(sizeof(*s))) == NULL) if ((s = (fax_state_t *) malloc(sizeof(*s))) == NULL)
return NULL; return NULL;
} }
memset(s, 0, sizeof(*s)); memset(s, 0, sizeof(*s));
span_log_init(&s->logging, SPAN_LOG_NONE, NULL); span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
span_log_set_protocol(&s->logging, "FAX"); span_log_set_protocol(&s->logging, "FAX");

View File

@ -25,7 +25,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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) #if defined(HAVE_CONFIG_H)
@ -51,8 +51,12 @@
#include "spandsp/complex.h" #include "spandsp/complex.h"
#include "filter_tools.h" #include "filter_tools.h"
#if !defined(FALSE)
#define FALSE 0 #define FALSE 0
#endif
#if !defined(TRUE)
#define TRUE (!FALSE) #define TRUE (!FALSE)
#endif
#define MAXPZ 8192 #define MAXPZ 8192
#define SEQ_LEN 8192 #define SEQ_LEN 8192
@ -149,7 +153,7 @@ void compute_raised_cosine_filter(double coeffs[],
if (f <= f1) if (f <= f1)
vec[i] = complex_set(1.0, 0.0); vec[i] = complex_set(1.0, 0.0);
else if (f <= f2) 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 else
vec[i] = complex_set(0.0, 0.0); vec[i] = complex_set(0.0, 0.0);
} }

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -149,6 +149,19 @@ SPAN_DECLARE(fsk_tx_state_t *) fsk_tx_init(fsk_tx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) fsk_tx(fsk_tx_state_t *s, int16_t amp[], int len)
{ {
int sample; int sample;
@ -289,6 +302,19 @@ SPAN_DECLARE(fsk_rx_state_t *) fsk_rx_init(fsk_rx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) static void report_status_change(fsk_rx_state_t *s, int status)
{ {
if (s->status_handler) if (s->status_handler)

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -182,6 +182,12 @@ SPAN_DECLARE(g711_state_t *) g711_init(g711_state_t *s, int mode)
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g711_release(g711_state_t *s) 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); free(s);
return 0; return 0;

View File

@ -28,7 +28,7 @@
* Computer Science, Speech Group * Computer Science, Speech Group
* Chengxiang Lu and Alex Hauptmann * 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 */ /*! \file */
@ -282,6 +282,12 @@ SPAN_DECLARE(g722_decode_state_t *) g722_decode_init(g722_decode_state_t *s, int
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g722_decode_release(g722_decode_state_t *s) 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); free(s);
return 0; return 0;
@ -454,6 +460,12 @@ SPAN_DECLARE(g722_encode_state_t *) g722_encode_init(g722_encode_state_t *s, int
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g722_encode_release(g722_encode_state_t *s) 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); free(s);
return 0; return 0;

View File

@ -48,7 +48,7 @@
* 2550 Garcia Avenue * 2550 Garcia Avenue
* Mountain View, California 94043 * 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 */ /*! \file */
@ -1058,6 +1058,12 @@ SPAN_DECLARE(g726_state_t *) g726_init(g726_state_t *s, int bit_rate, int ext_co
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) g726_release(g726_state_t *s) 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); free(s);
return 0; return 0;

View File

@ -25,7 +25,7 @@
* This code is based on the widely used GSM 06.10 code available from * This code is based on the widely used GSM 06.10 code available from
* http://kbs.cs.tu-berlin.de/~jutta/toast.html * 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 */ /*! \file */
@ -106,6 +106,13 @@ static void encode_a_frame(gsm0610_state_t *s, gsm0610_frame_t *f, const int16_t
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing)
{ {
if (s == NULL) if (s == NULL)
@ -122,14 +129,13 @@ SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing)
} }
/*- End of function --------------------------------------------------------*/ /*- 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 --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s) SPAN_DECLARE(int) gsm0610_free(gsm0610_state_t *s)
{ {
if (s) if (s)
free(s); free(s);

View File

@ -25,7 +25,7 @@
* This code is based on the widely used GSM 06.10 code available from * This code is based on the widely used GSM 06.10 code available from
* http://kbs.cs.tu-berlin.de/~jutta/toast.html * 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 */ /*! \file */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -318,6 +318,19 @@ SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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, SPAN_DECLARE(int) hdlc_rx_get_stats(hdlc_rx_state_t *s,
hdlc_rx_stats_t *t) hdlc_rx_stats_t *t)
{ {
@ -578,4 +591,17 @@ SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
return s; return s;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -293,6 +293,12 @@ SPAN_DECLARE(ima_adpcm_state_t *) ima_adpcm_init(ima_adpcm_state_t *s, int varia
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) ima_adpcm_release(ima_adpcm_state_t *s) 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); free(s);
return 0; return 0;

View File

@ -1,6 +1,10 @@
 
Microsoft Visual Studio Solution File, Format Version 10.00 Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008 # Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_at_dictionary", "msvc\make_at_dictionary.vcproj", "{DEE932AB-5911-4700-9EEB-8C7090A0A330}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_modem_filter", "msvc\make_modem_filter.vcproj", "{329A6FA0-0FCC-4435-A950-E670AEFA9838}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libspandsp.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libspandsp.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} {401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -177,20 +177,6 @@ SPAN_DECLARE(int) span_log_buf(logging_state_t *s, int level, const char *tag, c
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) span_log_set_level(logging_state_t *s, int level)
{ {
s->level = level; s->level = level;
@ -254,4 +240,37 @@ SPAN_DECLARE(void) span_set_error_handler(error_handler_func_t func)
__span_error = func; __span_error = func;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -26,7 +26,7 @@
* implementation of the LPC-10 2400 bps Voice Coder. They do not * implementation of the LPC-10 2400 bps Voice Coder. They do not
* exert copyright claims on their code, and it may be freely used. * 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) #if defined(HAVE_CONFIG_H)
@ -1076,6 +1076,12 @@ SPAN_DECLARE(lpc10_decode_state_t *) lpc10_decode_init(lpc10_decode_state_t *s,
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) lpc10_decode_release(lpc10_decode_state_t *s) 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); free(s);
return 0; return 0;

View File

@ -26,7 +26,7 @@
* implementation of the LPC-10 2400 bps Voice Coder. They do not * implementation of the LPC-10 2400 bps Voice Coder. They do not
* exert copyright claims on their code, and it may be freely used. * 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) #if defined(HAVE_CONFIG_H)
@ -364,6 +364,12 @@ SPAN_DECLARE(lpc10_encode_state_t *) lpc10_encode_init(lpc10_encode_state_t *s,
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) lpc10_encode_release(lpc10_encode_state_t *s) 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); free(s);
return 0; return 0;

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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) #if defined(HAVE_CONFIG_H)
@ -541,7 +541,7 @@ static void trie_recursive_build_packed_trie(trie_node_t *t)
static void trie_add(trie_t *s, const char *u, size_t len) static void trie_add(trie_t *s, const char *u, size_t len)
{ {
int i; size_t i;
int index; int index;
trie_node_t *t; trie_node_t *t;

View File

@ -23,7 +23,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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) #if defined(HAVE_CONFIG_H)
@ -49,8 +49,12 @@
#include "spandsp/complex.h" #include "spandsp/complex.h"
#include "filter_tools.h" #include "filter_tools.h"
#if !defined(FALSE)
#define FALSE 0 #define FALSE 0
#endif
#if !defined(TRUE)
#define TRUE (!FALSE) #define TRUE (!FALSE)
#endif
//#define SAMPLE_RATE 8000.0 //#define SAMPLE_RATE 8000.0
#define MAX_COEFFS_PER_FILTER 128 #define MAX_COEFFS_PER_FILTER 128

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -253,6 +253,12 @@ SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) modem_connect_tones_tx_free(modem_connect_tones_tx_state_t *s)
{ {
free(s); free(s);
@ -544,6 +550,12 @@ SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) modem_connect_tones_rx_free(modem_connect_tones_rx_state_t *s)
{ {
free(s); free(s);

View File

@ -10,7 +10,7 @@
* *
* This file is released in the public domain. * 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_) #if !defined(_MSVC_CONFIG_H_)
@ -33,6 +33,7 @@
#define HAVE_TGMATH_H #define HAVE_TGMATH_H
#define HAVE_LONG_DOUBLE #define HAVE_LONG_DOUBLE
#define HAVE_LIBTIFF
#define SPANDSP_USE_EXPORT_CAPABILITY 1 #define SPANDSP_USE_EXPORT_CAPABILITY 1

View File

@ -0,0 +1,177 @@
/*****************************************************************************
*
* 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 */
}
}

View File

@ -0,0 +1,202 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="make_at_dictionary"
ProjectGUID="{DEE932AB-5911-4700-9EEB-8C7090A0A330}"
RootNamespace="make_at_dictionary"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\make_at_dictionary.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\stdafx.h"
>
</File>
<File
RelativePath=".\targetver.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,27 @@
..\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

View File

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="make_modem_filter"
ProjectGUID="{329A6FA0-0FCC-4435-A950-E670AEFA9838}"
RootNamespace="make_modem_filter"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="getopt.c"
>
</File>
<File
RelativePath="..\make_modem_filter.c"
>
</File>
<File
RelativePath="..\filter_tools.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\filter_tools.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
<File
RelativePath=".\targetver.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -12,8 +12,8 @@
* *
*/ */
#if !defined(_INTTYPES_H_) #if !defined(_UNISTD_H_)
#define _INTTYPES_H_ #define _UNISTD_H_
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -22,7 +22,9 @@ extern "C" {
#define open _open #define open _open
#define write _write #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 #ifdef __cplusplus
} }

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -80,12 +80,6 @@ SPAN_DECLARE(int16_t) noise(noise_state_t *s)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
{ {
float rms; float rms;
@ -115,6 +109,18 @@ SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) noise_free(noise_state_t *s)
{ {
free(s); free(s);

View File

@ -27,7 +27,7 @@
* The actual OKI ADPCM encode and decode method is derived from freely * The actual OKI ADPCM encode and decode method is derived from freely
* available code, whose exact origins seem uncertain. * 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 */ /*! \file */
@ -259,6 +259,12 @@ SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s, int bit_r
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) oki_adpcm_release(oki_adpcm_state_t *s) 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); free(s);
return 0; return 0;

View File

@ -29,7 +29,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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) #if defined(HAVE_CONFIG_H)
@ -330,7 +330,7 @@ SPAN_DECLARE(void) playout_restart(playout_state_t *s, int min_length, int max_l
} }
/*- End of function --------------------------------------------------------*/ /*- 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; playout_state_t *s;
@ -342,7 +342,7 @@ SPAN_DECLARE(playout_state_t *) playout_new(int min_length, int max_length)
} }
/*- End of function --------------------------------------------------------*/ /*- 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 *frame;
playout_frame_t *next; playout_frame_t *next;
@ -360,8 +360,19 @@ SPAN_DECLARE(void) playout_free(playout_state_t *s)
next = frame->later; next = frame->later;
free(frame); free(frame);
} }
/* Finally, free ourselves! */ return 0;
free(s); }
/*- 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 function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -248,6 +248,12 @@ SPAN_DECLARE(plc_state_t *) plc_init(plc_state_t *s)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) plc_free(plc_state_t *s)
{ {
if (s) if (s)

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -62,6 +62,20 @@ SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(power_meter_t *) power_meter_damping(power_meter_t *s, int shift)
{ {
s->shift = shift; s->shift = shift;

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -410,6 +410,12 @@ SPAN_DECLARE(queue_state_t *) queue_init(queue_state_t *s, int len, int flags)
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) queue_free(queue_state_t *s)
{ {
free(s); free(s);

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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) #if defined(HAVE_CONFIG_H)
@ -149,4 +149,13 @@ SPAN_DECLARE(int) span_schedule_release(span_sched_state_t *s)
return 0; return 0;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -390,6 +390,19 @@ SPAN_DECLARE(sig_tone_tx_state_t *) sig_tone_tx_init(sig_tone_tx_state_t *s, int
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) sig_tone_rx(sig_tone_rx_state_t *s, int16_t amp[], int len)
{ {
#if defined(SPANDSP_USE_FIXED_POINT) #if defined(SPANDSP_USE_FIXED_POINT)
@ -674,4 +687,18 @@ SPAN_DECLARE(sig_tone_rx_state_t *) sig_tone_rx_init(sig_tone_rx_state_t *s, int
return s; return s;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -128,6 +128,20 @@ SPAN_DECLARE(silence_gen_state_t *) silence_gen_init(silence_gen_state_t *s, int
} }
/*- End of function --------------------------------------------------------*/ /*- 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, /* The following dummy routines, to absorb data, don't really have a proper home,
so they have been put here. */ so they have been put here. */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -394,6 +394,8 @@ extern "C"
*/ */
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(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); SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s);
/*! \brief Receive a chunk of ADSI audio. /*! \brief Receive a chunk of ADSI audio.
@ -411,6 +413,8 @@ SPAN_DECLARE(int) adsi_rx(adsi_rx_state_t *s, const int16_t *amp, int len);
*/ */
SPAN_DECLARE(adsi_tx_state_t *) adsi_tx_init(adsi_tx_state_t *s, int standard); 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); SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s);
/*! \brief Adjust the preamble associated with an ADSI transmit context. /*! \brief Adjust the preamble associated with an ADSI transmit context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -158,6 +158,10 @@ SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
get_byte_func_t get_byte, get_byte_func_t get_byte,
void *user_data); 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. /*! Get the next bit of a transmitted serial bit stream.
\brief 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. \param user_data An opaque point which must point to a transmitter context.
@ -182,6 +186,10 @@ SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
put_byte_func_t put_byte, put_byte_func_t put_byte,
void *user_data); 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 /*! Accept a bit from a received serial bit stream
\brief 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. \param user_data An opaque point which must point to a receiver context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -179,6 +179,12 @@ SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
at_modem_control_handler_t *modem_control_handler, at_modem_control_handler_t *modem_control_handler,
void *modem_control_user_data); 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. /*! Free an AT interpreter context.
\brief Free an AT interpreter context. \brief Free an AT interpreter context.
\param s The AT context. \param s The AT context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -82,6 +82,10 @@ SPAN_DECLARE(awgn_state_t *) awgn_init_dbm0(awgn_state_t *s, int idum, float lev
SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float level); 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); SPAN_DECLARE(int16_t) awgn(awgn_state_t *s);
#if defined(__cplusplus) #if defined(__cplusplus)

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -152,6 +152,11 @@ SPAN_DECLARE(int) bell_mf_tx_put(bell_mf_tx_state_t *s, const char *digits, int
\return A pointer to the Bell MF generator context.*/ \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); 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. /*! \brief Free a Bell MF generator context.
\param s The Bell MF generator context. \param s The Bell MF generator context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */
@ -177,6 +182,11 @@ SPAN_DECLARE(int) r2_mf_tx_put(r2_mf_tx_state_t *s, char digit);
\return A pointer to the MFC/R2 generator context.*/ \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); 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. /*! \brief Free an R2 MF tone generator context.
\param s The R2 MF tone generator context. \param s The R2 MF tone generator context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */
@ -209,6 +219,11 @@ SPAN_DECLARE(bell_mf_rx_state_t *) bell_mf_rx_init(bell_mf_rx_state_t *s,
digits_rx_callback_t callback, digits_rx_callback_t callback,
void *user_data); 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. /*! \brief Free a Bell MF receiver context.
\param s The Bell MF receiver context. \param s The Bell MF receiver context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */
@ -242,6 +257,11 @@ SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
tone_report_func_t callback, tone_report_func_t callback,
void *user_data); 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. /*! \brief Free an R2 MF receiver context.
\param s The R2 MF receiver context. \param s The R2 MF receiver context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_BERT_H_)
@ -127,6 +127,10 @@ SPAN_DECLARE(const char *) bert_event_to_str(int event);
\return The BERT context. */ \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(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. /*! Get the next bit of the BERT sequence from the generator.
\param s The BERT context. \param s The BERT context.
\return The bit. */ \return The bit. */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -75,6 +75,10 @@ SPAN_DECLARE(void) bitstream_flush2(bitstream_state_t *s, uint8_t **c);
\return A pointer to the bitstream context. */ \return A pointer to the bitstream context. */
SPAN_DECLARE(bitstream_state_t *) bitstream_init(bitstream_state_t *s); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -121,7 +121,7 @@ static __inline__ complexf_t complex_setf(float re, float im)
} }
/*- End of function --------------------------------------------------------*/ /*- 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; complex_t z;

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_DTMF_H_)
@ -127,6 +127,11 @@ SPAN_DECLARE(void) dtmf_tx_set_timing(dtmf_tx_state_t *s, int on_time, int off_t
\return A pointer to the DTMF generator context. */ \return A pointer to the DTMF generator context. */
SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s); 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. /*! \brief Free a DTMF tone generator context.
\param s The DTMF tone generator context. \param s The DTMF tone generator context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */
@ -195,6 +200,11 @@ SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
digits_rx_callback_t callback, digits_rx_callback_t callback,
void *user_data); 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. /*! \brief Free a DTMF receiver context.
\param s The DTMF receiver context. \param s The DTMF receiver context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */

View File

@ -24,7 +24,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -196,12 +196,19 @@ extern "C"
\param len The length of the canceller, in samples. \param len The length of the canceller, in samples.
\return The new canceller context, or NULL if the canceller could not be created. \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. /*! Free a voice echo canceller context.
\param ec The 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. /*! Flush (reinitialise) a voice echo canceller context.
\param ec The echo canceller context. \param ec The echo canceller context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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(_SPANDSP_FAST_CONVERT_H_)
@ -82,6 +82,7 @@ extern "C"
*/ */
#if defined(__CYGWIN__) #if defined(__CYGWIN__)
#if !defined(__cplusplus)
/* /*
* CYGWIN has lrint and lrintf functions, but they are slow and buggy: * CYGWIN has lrint and lrintf functions, but they are slow and buggy:
* http://sourceware.org/ml/cygwin/2005-06/msg00153.html * http://sourceware.org/ml/cygwin/2005-06/msg00153.html
@ -118,6 +119,7 @@ extern "C"
); );
return retval; return retval;
} }
#endif
/* The fastest way to convert is the equivalent of lrint() */ /* The fastest way to convert is the equivalent of lrint() */
static __inline__ long int lfastrint(double x) static __inline__ long int lfastrint(double x)

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -44,8 +44,13 @@ extern "C"
SPAN_DECLARE(int) fax_modems_v17_v21_rx(void *user_data, const int16_t amp[], int len); 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_v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
SPAN_DECLARE(int) fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len); SPAN_DECLARE(int) fax_modems_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(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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -148,6 +148,10 @@ SPAN_DECLARE(fsk_tx_state_t *) fsk_tx_init(fsk_tx_state_t *s,
get_bit_func_t get_bit, get_bit_func_t get_bit,
void *user_data); 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. /*! Adjust an FSK modem transmit context's power output.
\brief Adjust an FSK modem transmit context's power output. \brief Adjust an FSK modem transmit context's power output.
\param s The modem context. \param s The modem context.
@ -197,6 +201,10 @@ SPAN_DECLARE(fsk_rx_state_t *) fsk_rx_init(fsk_rx_state_t *s,
put_bit_func_t put_bit, put_bit_func_t put_bit,
void *user_data); 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. /*! Process a block of received FSK modem audio samples.
\brief Process a block of received FSK modem audio samples. \brief Process a block of received FSK modem audio samples.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -280,11 +280,16 @@ SPAN_DECLARE(int) g711_transcode(g711_state_t *s,
\return A pointer to the G.711 context, or NULL for error. */ \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); 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. \param s The G.711 context.
\return 0 for OK. */ \return 0 for OK. */
SPAN_DECLARE(int) g711_release(g711_state_t *s); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -28,7 +28,7 @@
* Computer Science, Speech Group * Computer Science, Speech Group
* Chengxiang Lu and Alex Hauptmann * 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 $
*/ */
@ -75,6 +75,8 @@ SPAN_DECLARE(g722_encode_state_t *) g722_encode_init(g722_encode_state_t *s, int
SPAN_DECLARE(int) g722_encode_release(g722_encode_state_t *s); 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 /*! Encode a buffer of linear PCM data to G.722
\param s The G.722 context. \param s The G.722 context.
\param g722_data The G.722 data produced. \param g722_data The G.722 data produced.
@ -93,6 +95,8 @@ SPAN_DECLARE(g722_decode_state_t *) g722_decode_init(g722_decode_state_t *s, int
SPAN_DECLARE(int) g722_decode_release(g722_decode_state_t *s); 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. /*! Decode a buffer of G.722 data to linear PCM.
\param s The G.722 context. \param s The G.722 context.
\param amp The audio sample buffer. \param amp The audio sample buffer.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -79,11 +79,16 @@ extern "C"
\return A pointer to the G.726 context, or NULL for error. */ \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); 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. \param s The G.726 context.
\return 0 for OK. */ \return 0 for OK. */
SPAN_DECLARE(int) g726_release(g726_state_t *s); 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. /*! Decode a buffer of G.726 ADPCM data to linear PCM, a-law or u-law.
\param s The G.726 context. \param s The G.726 context.
\param amp The audio sample buffer. \param amp The audio sample buffer.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_GSM0610_H_)
@ -90,6 +90,11 @@ SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing);
\return 0 for success, else -1. */ \return 0 for success, else -1. */
SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s); 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. /*! Set the packing format for a GSM 06.10 encode or decode context.
\param s The GSM 06.10 context \param s The GSM 06.10 context
\param packing One of the GSM0610_PACKING_xxx options. \param packing One of the GSM0610_PACKING_xxx options.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -101,6 +101,10 @@ SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
hdlc_frame_handler_t handler, hdlc_frame_handler_t handler,
void *user_data); 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. /*! \brief Set the maximum frame length for an HDLC receiver context.
\param s A pointer to an HDLC receiver context. \param s A pointer to an HDLC receiver context.
\param max_len The maximum permitted length of a frame. \param max_len The maximum permitted length of a frame.
@ -157,6 +161,10 @@ SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
hdlc_underflow_handler_t handler, hdlc_underflow_handler_t handler,
void *user_data); 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. /*! \brief Set the maximum frame length for an HDLC transmitter context.
\param s A pointer to an HDLC transmitter context. \param s A pointer to an HDLC transmitter context.
\param max_len The maximum length. \param max_len The maximum length.

View File

@ -26,7 +26,7 @@
* Based on a bit from here, a bit from there, eye of toad, * Based on a bit from here, a bit from there, eye of toad,
* ear of bat, etc - plus, of course, my own 2 cents. * 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 */ /*! \file */
@ -77,11 +77,16 @@ SPAN_DECLARE(ima_adpcm_state_t *) ima_adpcm_init(ima_adpcm_state_t *s,
int variant, int variant,
int chunk_size); 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. \param s The IMA ADPCM context.
\return 0 for OK. */ \return 0 for OK. */
SPAN_DECLARE(int) ima_adpcm_release(ima_adpcm_state_t *s); 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. /*! Encode a buffer of linear PCM data to IMA ADPCM.
\param s The IMA ADPCM context. \param s The IMA ADPCM context.
\param ima_data The IMA ADPCM data produced. \param ima_data The IMA ADPCM data produced.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -109,8 +109,6 @@ SPAN_DECLARE(int) span_log(logging_state_t *s, int level, const char *format, ..
*/ */
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_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_level(logging_state_t *s, int level);
SPAN_DECLARE(int) span_log_set_tag(logging_state_t *s, const char *tag); SPAN_DECLARE(int) span_log_set_tag(logging_state_t *s, const char *tag);
@ -129,6 +127,12 @@ SPAN_DECLARE(void) span_set_message_handler(message_handler_func_t func);
SPAN_DECLARE(void) span_set_error_handler(error_handler_func_t func); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_LPC10_H_)
@ -78,6 +78,8 @@ SPAN_DECLARE(lpc10_encode_state_t *) lpc10_encode_init(lpc10_encode_state_t *s,
SPAN_DECLARE(int) lpc10_encode_release(lpc10_encode_state_t *s); 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. /*! Encode a buffer of linear PCM data to LPC10e.
\param s The LPC10e context. \param s The LPC10e context.
\param ima_data The LPC10e data produced. \param ima_data The LPC10e data produced.
@ -95,6 +97,8 @@ SPAN_DECLARE(lpc10_decode_state_t *) lpc10_decode_init(lpc10_decode_state_t *st,
SPAN_DECLARE(int) lpc10_decode_release(lpc10_decode_state_t *s); 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. /*! Decode a buffer of LPC10e data to linear PCM.
\param s The LPC10e context. \param s The LPC10e context.
\param amp The audio sample buffer. \param amp The audio sample buffer.

View File

@ -24,7 +24,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -107,6 +107,12 @@ extern "C"
SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem_connect_tones_tx_state_t *s, SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem_connect_tones_tx_state_t *s,
int tone_type); 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. /*! \brief Free an instance of the modem connect tones generator.
\param s The context. \param s The context.
\return 0 for OK, else -1. \return 0 for OK, else -1.
@ -152,6 +158,11 @@ SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem
tone_report_func_t tone_callback, tone_report_func_t tone_callback,
void *user_data); 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. /*! \brief Free an instance of the modem connect tones detector.
\param s The context. \param s The context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -112,6 +112,8 @@ SPAN_DECLARE(noise_state_t *) noise_init_dbm0(noise_state_t *s, int seed, float
SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality); 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); SPAN_DECLARE(int) noise_free(noise_state_t *s);
/*! Generate a sample of audio noise. /*! Generate a sample of audio noise.

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -64,11 +64,16 @@ extern "C"
SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s, SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s,
int bit_rate); 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. \param s The Oki ADPCM context.
\return 0 for OK. */ \return 0 for OK. */
SPAN_DECLARE(int) oki_adpcm_release(oki_adpcm_state_t *s); 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. /*! Decode a buffer of Oki ADPCM data to linear PCM.
\param s The Oki ADPCM context. \param s The Oki ADPCM context.
\param amp The audio sample buffer. \param amp The audio sample buffer.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_PLAYOUT_H_)
@ -182,17 +182,6 @@ SPAN_DECLARE(timestamp_t) playout_current_length(playout_state_t *s);
\return The next timestamp. */ \return The next timestamp. */
SPAN_DECLARE(timestamp_t) playout_next_due(playout_state_t *s); 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. /*! Reset an instance of play-out buffering.
NOTE: The buffer should be empty before you call this function, otherwise NOTE: The buffer should be empty before you call this function, otherwise
you will leak queued frames, and some internal structures you will leak queued frames, and some internal structures
@ -202,6 +191,23 @@ SPAN_DECLARE(void) playout_free(playout_state_t *s);
length buffering is used. */ length buffering is used. */
SPAN_DECLARE(void) playout_restart(playout_state_t *s, int min_length, int max_length); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -155,6 +155,11 @@ SPAN_DECLARE(int) plc_fillin(plc_state_t *s, int16_t amp[], int len);
\return A pointer to the the packet loss concealer context. */ \return A pointer to the the packet loss concealer context. */
SPAN_DECLARE(plc_state_t *) plc_init(plc_state_t *s); 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. /*! Free a packet loss concealer context.
\param s The packet loss concealer context. \param s The packet loss concealer context.
\return 0 for OK. */ \return 0 for OK. */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_POWER_METER_H_)
@ -68,6 +68,10 @@ extern "C"
\return The power meter context. */ \return The power meter context. */
SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift); 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. /*! Change the damping factor of a power meter context.
\brief 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. \param s The power meter context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -160,10 +160,16 @@ SPAN_DECLARE(int) queue_write_msg(queue_state_t *s, const uint8_t *buf, int len)
\return A pointer to the context if OK, else NULL. */ \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); 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. \brief Delete a queue.
\param s The queue context. \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); SPAN_DECLARE(int) queue_free(queue_state_t *s);
#if defined(__cplusplus) #if defined(__cplusplus)

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -60,6 +60,7 @@ SPAN_DECLARE(void) span_schedule_del(span_sched_state_t *s, int id);
SPAN_DECLARE(span_sched_state_t *) span_schedule_init(span_sched_state_t *s); 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_release(span_sched_state_t *s);
SPAN_DECLARE(int) span_schedule_free(span_sched_state_t *s);
#if defined(__cplusplus) #if defined(__cplusplus)
} }

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -115,6 +115,10 @@ SPAN_DECLARE(int) sig_tone_rx(sig_tone_rx_state_t *s, int16_t amp[], int len);
\return A pointer to the signalling tone context, or NULL if there was a problem. */ \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(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. /*! Generate a block of signaling tone audio samples.
\brief Generate a block of signaling tone audio samples. \brief Generate a block of signaling tone audio samples.
\param s The signaling tone context. \param s The signaling tone context.
@ -138,6 +142,10 @@ SPAN_DECLARE(void) sig_tone_tx_set_mode(sig_tone_tx_state_t *s, int mode);
\return A pointer to the signalling tone context, or NULL if there was a problem. */ \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(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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_SILENCE_GEN_H_)
@ -105,6 +105,10 @@ SPAN_DECLARE(void) silence_gen_status_handler(silence_gen_state_t *s, modem_tx_s
*/ */
SPAN_DECLARE(silence_gen_state_t *) silence_gen_init(silence_gen_state_t *s, int silent_samples); 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, /* The following dummy routines, to absorb data, don't really have a proper home,
so they have been put here. */ so they have been put here. */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_SUPER_TONE_RX_H_)
@ -119,6 +119,12 @@ SPAN_DECLARE(super_tone_rx_state_t *) super_tone_rx_init(super_tone_rx_state_t *
\param s The supervisory tone context. \param s The supervisory tone context.
\return 0 for OK, -1 for fail. \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); 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 /*! Define a callback routine to be called each time a tone pattern element is complete. This is

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_SUPER_TONE_TX_H_)
@ -58,7 +58,7 @@ SPAN_DECLARE(super_tone_tx_step_t *) super_tone_tx_make_step(super_tone_tx_step_
int length, int length,
int cycles); 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. /*! Initialise a supervisory tone generator.
\brief Initialise a supervisory tone generator. \brief Initialise a supervisory tone generator.
@ -67,6 +67,10 @@ SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s);
\return The supervisory tone generator context. */ \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(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. /*! Generate a block of audio samples for a supervisory tone pattern.
\brief 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. \param s The supervisory tone context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -140,6 +140,12 @@ SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
\return 0 for OK */ \return 0 for OK */
SPAN_DECLARE(int) t31_release(t31_state_t *s); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -336,6 +336,10 @@ SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
t38_tx_packet_handler_t *tx_packet_handler, t38_tx_packet_handler_t *tx_packet_handler,
void *tx_packet_user_data); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -86,6 +86,12 @@ SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
t38_tx_packet_handler_t *tx_packet_handler, t38_tx_packet_handler_t *tx_packet_handler,
void *tx_packet_user_data); 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. /*! Free a gateway mode T.38 context.
\brief Free a T.38 context. \brief Free a T.38 context.
\param s The T.38 context. \param s The T.38 context.

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -61,6 +61,10 @@ extern "C"
\return A pointer to the buffer context, or NULL if there was a problem. */ \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(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. /*! \brief Set the mode of a T.38 rate adapting non-ECM buffer context.
\param s The buffer context. \param s The buffer context.
\param mode TRUE for image data mode, or FALSE for TCF mode. \param mode TRUE for image data mode, or FALSE for TCF mode.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -244,6 +244,13 @@ SPAN_DECLARE(int) t4_rx_put_chunk(t4_state_t *s, const uint8_t buf[], int len);
\return 0 for success, otherwise -1. */ \return 0 for success, otherwise -1. */
SPAN_DECLARE(int) t4_rx_end_page(t4_state_t *s); 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 /*! \brief End reception of a document. Tidy up, close the file and
free the context. This should be used to end T.4 reception free the context. This should be used to end T.4 reception
started with t4_rx_init. started with t4_rx_init.
@ -251,13 +258,6 @@ SPAN_DECLARE(int) t4_rx_end_page(t4_state_t *s);
\return 0 for success, otherwise -1. */ \return 0 for success, otherwise -1. */
SPAN_DECLARE(int) t4_rx_free(t4_state_t *s); 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); 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. /*! \brief Set the encoding for the received data.
@ -374,6 +374,12 @@ SPAN_DECLARE(int) t4_tx_get_chunk(t4_state_t *s, uint8_t buf[], int max_len);
set (i.e. the returned value is 2 or 3). */ set (i.e. the returned value is 2 or 3). */
SPAN_DECLARE(int) t4_tx_check_bit(t4_state_t *s); 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 /*! \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 free the context. This should be used to end T.4 transmission
started with t4_tx_init. started with t4_tx_init.
@ -381,12 +387,6 @@ SPAN_DECLARE(int) t4_tx_check_bit(t4_state_t *s);
\return 0 for success, otherwise -1. */ \return 0 for success, otherwise -1. */
SPAN_DECLARE(int) t4_tx_free(t4_state_t *s); 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. /*! \brief Set the encoding for the encoded data.
\param s The T.4 context. \param s The T.4 context.
\param encoding The encoding. */ \param encoding The encoding. */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_TIME_SCALE_H_)
@ -73,6 +73,11 @@ extern "C"
\return A pointer to the context, or NULL if there was a problem. */ \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); 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. /*! \brief Free a time scale context.
\param s The time scale context. \param s The time scale context.
\return 0 for OK, else -1. */ \return 0 for OK, else -1. */

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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_) #if !defined(_SPANDSP_TONE_DETECT_H_)
@ -86,6 +86,10 @@ SPAN_DECLARE(void) make_goertzel_descriptor(goertzel_descriptor_t *t,
SPAN_DECLARE(goertzel_state_t *) goertzel_init(goertzel_state_t *s, SPAN_DECLARE(goertzel_state_t *) goertzel_init(goertzel_state_t *s,
goertzel_descriptor_t *t); 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. /*! \brief Reset the state of a Goertzel transform.
\param s The Goertzel context. */ \param s The Goertzel context. */
SPAN_DECLARE(void) goertzel_reset(goertzel_state_t *s); SPAN_DECLARE(void) goertzel_reset(goertzel_state_t *s);

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -88,9 +88,13 @@ SPAN_DECLARE(void) make_tone_gen_descriptor(tone_gen_descriptor_t *s,
int d4, int d4,
int repeat); 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(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) #if defined(__cplusplus)
} }

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -253,6 +253,12 @@ SPAN_DECLARE(v17_rx_state_t *) v17_rx_init(v17_rx_state_t *s, int bit_rate, put_
\return 0 for OK, -1 for bad parameter */ \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); 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. /*! Free a V.17 modem receive context.
\brief Free a V.17 modem receive context. \brief Free a V.17 modem receive context.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -120,6 +120,12 @@ SPAN_DECLARE(v17_tx_state_t *) v17_tx_init(v17_tx_state_t *s, int rate, int tep,
\return 0 for OK, -1 for parameter error. */ \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); 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. /*! Free a V.17 modem transmit context.
\brief Free a V.17 modem transmit context. \brief Free a V.17 modem transmit context.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -152,6 +152,12 @@ SPAN_DECLARE(v22bis_state_t *) v22bis_init(v22bis_state_t *s,
put_bit_func_t put_bit, put_bit_func_t put_bit,
void *user_data); 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. /*! Free a V.22bis modem receive context.
\brief Free a V.22bis modem receive context. \brief Free a V.22bis modem receive context.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -88,6 +88,12 @@ SPAN_DECLARE(v27ter_rx_state_t *) v27ter_rx_init(v27ter_rx_state_t *s, int bit_r
\return 0 for OK, -1 for bad parameter */ \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); 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. /*! Free a V.27ter modem receive context.
\brief Free a V.27ter modem receive context. \brief Free a V.27ter modem receive context.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -101,6 +101,12 @@ SPAN_DECLARE(v27ter_tx_state_t *) v27ter_tx_init(v27ter_tx_state_t *s, int bit_r
\return 0 for OK, -1 for bad parameter */ \return 0 for OK, -1 for bad parameter */
SPAN_DECLARE(int) v27ter_tx_restart(v27ter_tx_state_t *s, int bit_rate, int tep); 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. /*! Free a V.27ter modem transmit context.
\brief Free a V.27ter modem transmit context. \brief Free a V.27ter modem transmit context.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -157,6 +157,12 @@ SPAN_DECLARE(v29_rx_state_t *) v29_rx_init(v29_rx_state_t *s, int bit_rate, put_
\return 0 for OK, -1 for bad parameter */ \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); 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. /*! Free a V.29 modem receive context.
\brief Free a V.29 modem receive context. \brief Free a V.29 modem receive context.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -132,6 +132,12 @@ SPAN_DECLARE(v29_tx_state_t *) v29_tx_init(v29_tx_state_t *s, int bit_rate, int
\return 0 for OK, -1 for bad parameter */ \return 0 for OK, -1 for bad parameter */
SPAN_DECLARE(int) v29_tx_restart(v29_tx_state_t *s, int bit_rate, int tep); 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. /*! Free a V.29 modem transmit context.
\brief Free a V.29 modem transmit context. \brief Free a V.29 modem transmit context.
\param s The modem context. \param s The modem context.

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 /*! \page v42_page V.42 modem error correction
@ -147,6 +147,11 @@ SPAN_DECLARE(void) v42_restart(v42_state_t *s);
\return 0 if OK */ \return 0 if OK */
SPAN_DECLARE(int) v42_release(v42_state_t *s); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 /*! \page v42bis_page V.42bis modem data compression
@ -94,6 +94,14 @@ SPAN_DECLARE(int) v42bis_decompress(v42bis_state_t *s, const uint8_t *buf, int l
\return 0 */ \return 0 */
SPAN_DECLARE(int) v42bis_decompress_flush(v42bis_state_t *s); 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. /*! Initialise a V.42bis context.
\param s The V.42bis context. \param s The V.42bis context.
\param negotiated_p0 The negotiated P0 parameter, from the V.42bis spec. \param negotiated_p0 The negotiated P0 parameter, from the V.42bis spec.
@ -117,19 +125,16 @@ SPAN_DECLARE(v42bis_state_t *) v42bis_init(v42bis_state_t *s,
void *data_user_data, void *data_user_data,
int max_data_len); 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. /*! Release a V.42bis context.
\param s The V.42bis context. \param s The V.42bis context.
\return 0 if OK */ \return 0 if OK */
SPAN_DECLARE(int) v42bis_release(v42bis_state_t *s); 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) #if defined(__cplusplus)
} }
#endif #endif

View File

@ -30,8 +30,8 @@
/* The date and time of the version are in UTC form. */ /* The date and time of the version are in UTC form. */
#define SPANDSP_RELEASE_DATE 20090205 #define SPANDSP_RELEASE_DATE 20090210
#define SPANDSP_RELEASE_TIME 122416 #define SPANDSP_RELEASE_TIME 172413
#endif #endif
/*- End of file ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -267,6 +267,12 @@ SPAN_DECLARE(super_tone_rx_state_t *) super_tone_rx_init(super_tone_rx_state_t *
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) super_tone_rx_free(super_tone_rx_state_t *s)
{ {
if (s) if (s)

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -112,7 +112,7 @@ SPAN_DECLARE(super_tone_tx_step_t *) super_tone_tx_make_step(super_tone_tx_step_
} }
/*- End of function --------------------------------------------------------*/ /*- 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; super_tone_tx_step_t *t;
@ -125,6 +125,7 @@ SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s)
s = s->next; s = s->next;
free(t); free(t);
} }
return 0;
} }
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
@ -147,6 +148,20 @@ SPAN_DECLARE(super_tone_tx_state_t *) super_tone_tx_init(super_tone_tx_state_t *
} }
/*- 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) SPAN_DECLARE(int) super_tone_tx(super_tone_tx_state_t *s, int16_t amp[], int max_samples)
{ {
int samples; int samples;

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -367,12 +367,29 @@ static void timer_t4b_start(t30_state_t *s);
#define set_ctrl_bits(s,val,bit) (s)[3 + ((bit - 1)/8)] |= ((val) << ((bit - 1)%8)) #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)) #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) static int tx_start_page(t30_state_t *s)
{ {
if (t4_tx_start_page(&(s->t4))) if (t4_tx_start_page(&(s->t4)))
{ {
t4_tx_end(&(s->t4)); terminate_operation_in_progress(s);
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
return -1; return -1;
} }
s->ecm_block = 0; s->ecm_block = 0;
@ -1750,10 +1767,10 @@ static void disconnect(t30_state_t *s)
switch (s->operation_in_progress) switch (s->operation_in_progress)
{ {
case OPERATION_IN_PROGRESS_T4_TX: case OPERATION_IN_PROGRESS_T4_TX:
t4_tx_end(&(s->t4)); t4_tx_release(&(s->t4));
break; break;
case OPERATION_IN_PROGRESS_T4_RX: case OPERATION_IN_PROGRESS_T4_RX:
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
break; break;
} }
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
@ -1848,7 +1865,7 @@ static int start_sending_document(t30_state_t *s)
must be evaluated before the minimum scan row bits can be evaluated. */ must be evaluated before the minimum scan row bits can be evaluated. */
if ((min_row_bits = set_min_scan_time_code(s)) < 0) 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
return -1; return -1;
} }
@ -2953,14 +2970,14 @@ static void process_state_f_post_doc_non_ecm(t30_state_t *s, const uint8_t *msg,
case T30_COPY_QUALITY_PERFECT: case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD: case T30_COPY_QUALITY_GOOD:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF); set_state(s, T30_STATE_III_Q_MCF);
break; break;
case T30_COPY_QUALITY_POOR: case T30_COPY_QUALITY_POOR:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP); set_state(s, T30_STATE_III_Q_RTP);
@ -3011,14 +3028,14 @@ static void process_state_f_post_doc_non_ecm(t30_state_t *s, const uint8_t *msg,
case T30_COPY_QUALITY_PERFECT: case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD: case T30_COPY_QUALITY_GOOD:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF); set_state(s, T30_STATE_III_Q_MCF);
break; break;
case T30_COPY_QUALITY_POOR: case T30_COPY_QUALITY_POOR:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP); set_state(s, T30_STATE_III_Q_RTP);
@ -3038,7 +3055,7 @@ static void process_state_f_post_doc_non_ecm(t30_state_t *s, const uint8_t *msg,
case T30_COPY_QUALITY_PERFECT: case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD: case T30_COPY_QUALITY_GOOD:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF); set_state(s, T30_STATE_III_Q_MCF);
@ -3046,7 +3063,7 @@ static void process_state_f_post_doc_non_ecm(t30_state_t *s, const uint8_t *msg,
break; break;
case T30_COPY_QUALITY_POOR: case T30_COPY_QUALITY_POOR:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP); set_state(s, T30_STATE_III_Q_RTP);
@ -3070,14 +3087,14 @@ static void process_state_f_post_doc_non_ecm(t30_state_t *s, const uint8_t *msg,
case T30_COPY_QUALITY_PERFECT: case T30_COPY_QUALITY_PERFECT:
case T30_COPY_QUALITY_GOOD: case T30_COPY_QUALITY_GOOD:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_MCF); set_state(s, T30_STATE_III_Q_MCF);
break; break;
case T30_COPY_QUALITY_POOR: case T30_COPY_QUALITY_POOR:
rx_end_page(s); rx_end_page(s);
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
s->in_message = FALSE; s->in_message = FALSE;
set_state(s, T30_STATE_III_Q_RTP); set_state(s, T30_STATE_III_Q_RTP);
@ -3380,7 +3397,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{ {
@ -3394,7 +3411,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s); send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
@ -3436,7 +3453,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_RTP); 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 */ /* TODO: should go back to T, and resend */
return_to_phase_b(s, TRUE); return_to_phase_b(s, TRUE);
break; break;
@ -3445,7 +3462,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_RTP); 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; s->current_status = T30_ERR_TX_INVALRSP;
send_dcn(s); send_dcn(s);
break; break;
@ -3702,7 +3719,7 @@ static void process_state_iv_pps_null(t30_state_t *s, const uint8_t *msg, int le
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{ {
@ -3716,7 +3733,7 @@ static void process_state_iv_pps_null(t30_state_t *s, const uint8_t *msg, int le
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s); send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
@ -3804,7 +3821,7 @@ static void process_state_iv_pps_q(t30_state_t *s, const uint8_t *msg, int len)
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{ {
@ -3818,7 +3835,7 @@ static void process_state_iv_pps_q(t30_state_t *s, const uint8_t *msg, int len)
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s); send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
@ -3922,7 +3939,7 @@ static void process_state_iv_pps_rnr(t30_state_t *s, const uint8_t *msg, int len
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
{ {
@ -3936,7 +3953,7 @@ static void process_state_iv_pps_rnr(t30_state_t *s, const uint8_t *msg, int len
tx_end_page(s); tx_end_page(s);
if (s->phase_d_handler) if (s->phase_d_handler)
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF); 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; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
send_dcn(s); send_dcn(s);
if (span_log_test(&s->logging, SPAN_LOG_FLOW)) if (span_log_test(&s->logging, SPAN_LOG_FLOW))
@ -5870,10 +5887,10 @@ SPAN_DECLARE(int) t30_release(t30_state_t *s)
switch (s->operation_in_progress) switch (s->operation_in_progress)
{ {
case OPERATION_IN_PROGRESS_T4_TX: case OPERATION_IN_PROGRESS_T4_TX:
t4_tx_end(&(s->t4)); t4_tx_release(&(s->t4));
break; break;
case OPERATION_IN_PROGRESS_T4_RX: case OPERATION_IN_PROGRESS_T4_RX:
t4_rx_end(&(s->t4)); t4_rx_release(&(s->t4));
break; break;
} }
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE; s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;

View File

@ -25,7 +25,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -2528,6 +2528,13 @@ SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
SPAN_DECLARE(int) t31_release(t31_state_t *s) SPAN_DECLARE(int) t31_release(t31_state_t *s)
{ {
at_reset_call_info(&s->at_state); 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); free(s);
return 0; return 0;
} }

View File

@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -976,4 +976,18 @@ SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
return s; return s;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/

View File

@ -23,7 +23,7 @@
* License along with this program; if not, write to the Free Software * License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 */ /*! \file */
@ -2273,6 +2273,12 @@ SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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) SPAN_DECLARE(int) t38_gateway_free(t38_gateway_state_t *s)
{ {
free(s); free(s);

Some files were not shown because too many files have changed in this diff Show More