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:
parent
c21e6a048e
commit
6cd7446a20
|
@ -16,7 +16,7 @@
|
|||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#
|
||||
# $Id: configure.ac,v 1.65 2009/01/31 08:48:10 steveu Exp $
|
||||
# $Id: configure.ac,v 1.66 2009/02/10 17:20:31 steveu Exp $
|
||||
|
||||
# @start 1
|
||||
|
||||
|
@ -33,7 +33,7 @@ SPANDSP_MAJOR_VERSION=0
|
|||
SPANDSP_MINOR_VERSION=0
|
||||
SPANDSP_MICRO_VERSION=6
|
||||
|
||||
SPANDSP_LT_CURRENT=1
|
||||
SPANDSP_LT_CURRENT=2
|
||||
SPANDSP_LT_REVISION=0
|
||||
SPANDSP_LT_AGE=0
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
## License along with this program; if not, write to the Free Software
|
||||
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
##
|
||||
## $Id: Makefile.am,v 1.122 2009/02/03 16:33:13 steveu Exp $
|
||||
## $Id: Makefile.am,v 1.123 2009/02/10 17:16:57 steveu Exp $
|
||||
|
||||
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
|
||||
AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
|
||||
|
@ -29,18 +29,21 @@ EXTRA_DIST = floating_fudge.h \
|
|||
libspandsp.sln \
|
||||
libspandsp.vcproj \
|
||||
msvc/config.h \
|
||||
msvc/getopt.c \
|
||||
msvc/gettimeofday.c \
|
||||
msvc/inttypes.h \
|
||||
msvc/tgmath.h \
|
||||
msvc/unistd.h \
|
||||
msvc/spandsp.h \
|
||||
msvc/sys/time.h \
|
||||
msvc/make_at_dictionary.vcproj \
|
||||
msvc/make_headers.bat \
|
||||
msvc/make_modem_filter.vcproj \
|
||||
msvc/msvcproj.head \
|
||||
msvc/msvcproj.foot \
|
||||
msvc/vc8proj.head \
|
||||
msvc/vc8proj.foot \
|
||||
spandsp/private/README
|
||||
|
||||
INCLUDES = -I$(top_builddir)
|
||||
|
||||
lib_LTLIBRARIES = libspandsp.la
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: adsi.c,v 1.69 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: adsi.c,v 1.70 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -449,6 +449,12 @@ SPAN_DECLARE(adsi_rx_state_t *) adsi_rx_init(adsi_rx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) adsi_rx_release(adsi_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
@ -658,6 +664,12 @@ SPAN_DECLARE(adsi_tx_state_t *) adsi_tx_init(adsi_tx_state_t *s, int standard)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) adsi_tx_release(adsi_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: async.c,v 1.17 2009/02/04 13:18:53 steveu Exp $
|
||||
* $Id: async.c,v 1.18 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -103,6 +103,19 @@ SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) async_rx_release(async_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) async_rx_free(async_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE_NONSTD(void) async_rx_put_bit(void *user_data, int bit)
|
||||
{
|
||||
async_rx_state_t *s;
|
||||
|
@ -216,6 +229,19 @@ SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) async_tx_release(async_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) async_tx_free(async_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE_NONSTD(int) async_tx_get_bit(void *user_data)
|
||||
{
|
||||
async_tx_state_t *s;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: at_interpreter.c,v 1.35 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: at_interpreter.c,v 1.36 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -5318,13 +5318,22 @@ SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) at_free(at_state_t *s)
|
||||
SPAN_DECLARE(int) at_release(at_state_t *s)
|
||||
{
|
||||
at_reset_call_info(s);
|
||||
if (s->local_id)
|
||||
free(s->local_id);
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) at_free(at_state_t *s)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = at_release(s);
|
||||
free(s);
|
||||
return ret;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: awgn.c,v 1.21 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: awgn.c,v 1.22 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -96,12 +96,6 @@ static double ran1(awgn_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(awgn_state_t *) awgn_init_dbm0(awgn_state_t *s, int idum, float level)
|
||||
{
|
||||
return awgn_init_dbov(s, idum, level - DBM0_MAX_POWER);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float level)
|
||||
{
|
||||
int j;
|
||||
|
@ -134,6 +128,25 @@ SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float lev
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(awgn_state_t *) awgn_init_dbm0(awgn_state_t *s, int idum, float level)
|
||||
{
|
||||
return awgn_init_dbov(s, idum, level - DBM0_MAX_POWER);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) awgn_release(awgn_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) awgn_free(awgn_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int16_t) awgn(awgn_state_t *s)
|
||||
{
|
||||
double fac;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: bell_r2_mf.c,v 1.37 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: bell_r2_mf.c,v 1.38 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -340,6 +340,12 @@ SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) bell_mf_tx_release(bell_mf_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) bell_mf_tx_free(bell_mf_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
@ -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 --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) r2_mf_tx_release(r2_mf_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) r2_mf_tx_free(r2_mf_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
@ -651,6 +663,12 @@ SPAN_DECLARE(bell_mf_rx_state_t *) bell_mf_rx_init(bell_mf_rx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) bell_mf_rx_release(bell_mf_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) bell_mf_rx_free(bell_mf_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
@ -829,6 +847,12 @@ SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) r2_mf_rx_release(r2_mf_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) r2_mf_rx_free(r2_mf_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: bert.c,v 1.31 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: bert.c,v 1.32 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -351,7 +351,7 @@ SPAN_DECLARE(bert_state_t *) bert_init(bert_state_t *s, int limit, int pattern,
|
|||
if (s == NULL)
|
||||
{
|
||||
if ((s = (bert_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
return NULL;
|
||||
return NULL;
|
||||
}
|
||||
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;
|
||||
}
|
||||
/*- 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 ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: bitstream.c,v 1.17 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: bitstream.c,v 1.18 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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)
|
||||
{
|
||||
if (s == NULL)
|
||||
return NULL;
|
||||
{
|
||||
if ((s = (bitstream_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
return NULL;
|
||||
}
|
||||
s->bitstream = 0;
|
||||
s->residue = 0;
|
||||
return s;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) bitstream_release(bitstream_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) bitstream_free(bitstream_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: dtmf.c,v 1.50 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: dtmf.c,v 1.51 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file dtmf.h */
|
||||
|
@ -410,6 +410,12 @@ SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) dtmf_rx_release(dtmf_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) dtmf_rx_free(dtmf_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
@ -526,6 +532,12 @@ SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) dtmf_tx_release(dtmf_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) dtmf_tx_free(dtmf_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: echo.c,v 1.31 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: echo.c,v 1.32 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -238,7 +238,7 @@ static __inline__ void lms_adapt(echo_can_state_t *ec, int factor)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode)
|
||||
SPAN_DECLARE(echo_can_state_t *) echo_can_init(int len, int adaption_mode)
|
||||
{
|
||||
echo_can_state_t *ec;
|
||||
int i;
|
||||
|
@ -279,11 +279,17 @@ SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode)
|
|||
ec->tap_rotate_counter = 1600;
|
||||
ec->cng_level = 1000;
|
||||
echo_can_adaption_mode(ec, adaption_mode);
|
||||
return ec;
|
||||
return ec;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(void) echo_can_free(echo_can_state_t *ec)
|
||||
SPAN_DECLARE(int) echo_can_release(echo_can_state_t *ec)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) echo_can_free(echo_can_state_t *ec)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -292,6 +298,7 @@ SPAN_DECLARE(void) echo_can_free(echo_can_state_t *ec)
|
|||
for (i = 0; i < 4; i++)
|
||||
free(ec->fir_taps16[i]);
|
||||
free(ec);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fax.c,v 1.85 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: fax.c,v 1.86 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(s, 0, sizeof(*s));
|
||||
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
|
||||
span_log_set_protocol(&s->logging, "FAX");
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: filter_tools.c,v 1.9 2009/01/28 03:41:26 steveu Exp $
|
||||
* $Id: filter_tools.c,v 1.10 2009/02/10 17:16:57 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -51,8 +51,12 @@
|
|||
#include "spandsp/complex.h"
|
||||
#include "filter_tools.h"
|
||||
|
||||
#if !defined(FALSE)
|
||||
#define FALSE 0
|
||||
#endif
|
||||
#if !defined(TRUE)
|
||||
#define TRUE (!FALSE)
|
||||
#endif
|
||||
|
||||
#define MAXPZ 8192
|
||||
#define SEQ_LEN 8192
|
||||
|
@ -149,7 +153,7 @@ void compute_raised_cosine_filter(double coeffs[],
|
|||
if (f <= f1)
|
||||
vec[i] = complex_set(1.0, 0.0);
|
||||
else if (f <= f2)
|
||||
vec[i] = complex_set(0.5*(1.0 + cos((3.1415926535*tau/beta) * (f - f1))), 0.0);
|
||||
vec[i] = complex_set(0.5*(1.0 + cos((3.1415926535*tau/beta)*(f - f1))), 0.0);
|
||||
else
|
||||
vec[i] = complex_set(0.0, 0.0);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fsk.c,v 1.51 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: fsk.c,v 1.52 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -149,6 +149,19 @@ SPAN_DECLARE(fsk_tx_state_t *) fsk_tx_init(fsk_tx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) fsk_tx_release(fsk_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) fsk_tx_free(fsk_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) fsk_tx(fsk_tx_state_t *s, int16_t amp[], int len)
|
||||
{
|
||||
int sample;
|
||||
|
@ -289,6 +302,19 @@ SPAN_DECLARE(fsk_rx_state_t *) fsk_rx_init(fsk_rx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) fsk_rx_release(fsk_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) fsk_rx_free(fsk_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static void report_status_change(fsk_rx_state_t *s, int status)
|
||||
{
|
||||
if (s->status_handler)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: g711.c,v 1.15 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: g711.c,v 1.16 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -182,6 +182,12 @@ SPAN_DECLARE(g711_state_t *) g711_init(g711_state_t *s, int mode)
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g711_release(g711_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g711_free(g711_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Computer Science, Speech Group
|
||||
* Chengxiang Lu and Alex Hauptmann
|
||||
*
|
||||
* $Id: g722.c,v 1.7 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: g722.c,v 1.8 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -282,6 +282,12 @@ SPAN_DECLARE(g722_decode_state_t *) g722_decode_init(g722_decode_state_t *s, int
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g722_decode_release(g722_decode_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g722_decode_free(g722_decode_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
@ -454,6 +460,12 @@ SPAN_DECLARE(g722_encode_state_t *) g722_encode_init(g722_encode_state_t *s, int
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g722_encode_release(g722_encode_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g722_encode_free(g722_encode_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
* 2550 Garcia Avenue
|
||||
* Mountain View, California 94043
|
||||
*
|
||||
* $Id: g726.c,v 1.27 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: g726.c,v 1.28 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -1058,6 +1058,12 @@ SPAN_DECLARE(g726_state_t *) g726_init(g726_state_t *s, int bit_rate, int ext_co
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g726_release(g726_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g726_free(g726_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* This code is based on the widely used GSM 06.10 code available from
|
||||
* http://kbs.cs.tu-berlin.de/~jutta/toast.html
|
||||
*
|
||||
* $Id: gsm0610_encode.c,v 1.29 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: gsm0610_encode.c,v 1.30 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -106,6 +106,13 @@ static void encode_a_frame(gsm0610_state_t *s, gsm0610_frame_t *f, const int16_t
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) gsm0610_set_packing(gsm0610_state_t *s, int packing)
|
||||
{
|
||||
s->packing = packing;
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing)
|
||||
{
|
||||
if (s == NULL)
|
||||
|
@ -122,14 +129,13 @@ SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) gsm0610_set_packing(gsm0610_state_t *s, int packing)
|
||||
SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s)
|
||||
{
|
||||
s->packing = packing;
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s)
|
||||
SPAN_DECLARE(int) gsm0610_free(gsm0610_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* This code is based on the widely used GSM 06.10 code available from
|
||||
* http://kbs.cs.tu-berlin.de/~jutta/toast.html
|
||||
*
|
||||
* $Id: gsm0610_lpc.c,v 1.28 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: gsm0610_lpc.c,v 1.29 2009/02/05 15:57:27 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: hdlc.c,v 1.69 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: hdlc.c,v 1.70 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -318,6 +318,19 @@ SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) hdlc_rx_release(hdlc_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) hdlc_rx_free(hdlc_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) hdlc_rx_get_stats(hdlc_rx_state_t *s,
|
||||
hdlc_rx_stats_t *t)
|
||||
{
|
||||
|
@ -578,4 +591,17 @@ SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
|
|||
return s;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) hdlc_tx_release(hdlc_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) hdlc_tx_free(hdlc_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: ima_adpcm.c,v 1.34 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: ima_adpcm.c,v 1.35 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -293,6 +293,12 @@ SPAN_DECLARE(ima_adpcm_state_t *) ima_adpcm_init(ima_adpcm_state_t *s, int varia
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) ima_adpcm_release(ima_adpcm_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) ima_adpcm_free(ima_adpcm_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||
# 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}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: logging.c,v 1.30 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: logging.c,v 1.31 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -177,20 +177,6 @@ SPAN_DECLARE(int) span_log_buf(logging_state_t *s, int level, const char *tag, c
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag)
|
||||
{
|
||||
s->span_error = __span_error;
|
||||
s->span_message = __span_message;
|
||||
s->level = level;
|
||||
s->tag = tag;
|
||||
s->protocol = NULL;
|
||||
s->samples_per_second = SAMPLE_RATE;
|
||||
s->elapsed_samples = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) span_log_set_level(logging_state_t *s, int level)
|
||||
{
|
||||
s->level = level;
|
||||
|
@ -254,4 +240,37 @@ SPAN_DECLARE(void) span_set_error_handler(error_handler_func_t func)
|
|||
__span_error = func;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag)
|
||||
{
|
||||
if (s == NULL)
|
||||
{
|
||||
if ((s = (logging_state_t *) malloc(sizeof(*s))) == NULL)
|
||||
return NULL;
|
||||
}
|
||||
s->span_error = __span_error;
|
||||
s->span_message = __span_message;
|
||||
s->level = level;
|
||||
s->tag = tag;
|
||||
s->protocol = NULL;
|
||||
s->samples_per_second = SAMPLE_RATE;
|
||||
s->elapsed_samples = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) span_log_release(logging_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) span_log_free(logging_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* implementation of the LPC-10 2400 bps Voice Coder. They do not
|
||||
* exert copyright claims on their code, and it may be freely used.
|
||||
*
|
||||
* $Id: lpc10_decode.c,v 1.26 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: lpc10_decode.c,v 1.27 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -1076,6 +1076,12 @@ SPAN_DECLARE(lpc10_decode_state_t *) lpc10_decode_init(lpc10_decode_state_t *s,
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) lpc10_decode_release(lpc10_decode_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) lpc10_decode_free(lpc10_decode_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* implementation of the LPC-10 2400 bps Voice Coder. They do not
|
||||
* exert copyright claims on their code, and it may be freely used.
|
||||
*
|
||||
* $Id: lpc10_encode.c,v 1.27 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: lpc10_encode.c,v 1.28 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -364,6 +364,12 @@ SPAN_DECLARE(lpc10_encode_state_t *) lpc10_encode_init(lpc10_encode_state_t *s,
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) lpc10_encode_release(lpc10_encode_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) lpc10_encode_free(lpc10_encode_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: make_at_dictionary.c,v 1.1 2008/07/01 03:27:51 steveu Exp $
|
||||
* $Id: make_at_dictionary.c,v 1.2 2009/02/10 17:16:57 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -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)
|
||||
{
|
||||
int i;
|
||||
size_t i;
|
||||
int index;
|
||||
trie_node_t *t;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: make_modem_filter.c,v 1.13 2009/01/28 03:41:27 steveu Exp $
|
||||
* $Id: make_modem_filter.c,v 1.14 2009/02/10 17:16:57 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -49,8 +49,12 @@
|
|||
#include "spandsp/complex.h"
|
||||
#include "filter_tools.h"
|
||||
|
||||
#if !defined(FALSE)
|
||||
#define FALSE 0
|
||||
#endif
|
||||
#if !defined(TRUE)
|
||||
#define TRUE (!FALSE)
|
||||
#endif
|
||||
|
||||
//#define SAMPLE_RATE 8000.0
|
||||
#define MAX_COEFFS_PER_FILTER 128
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: modem_connect_tones.c,v 1.33 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: modem_connect_tones.c,v 1.34 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -253,6 +253,12 @@ SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) modem_connect_tones_tx_release(modem_connect_tones_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) modem_connect_tones_tx_free(modem_connect_tones_tx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
@ -544,6 +550,12 @@ SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) modem_connect_tones_rx_release(modem_connect_tones_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) modem_connect_tones_rx_free(modem_connect_tones_rx_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
*
|
||||
* 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_)
|
||||
|
@ -33,6 +33,7 @@
|
|||
#define HAVE_TGMATH_H
|
||||
|
||||
#define HAVE_LONG_DOUBLE
|
||||
#define HAVE_LIBTIFF
|
||||
|
||||
#define SPANDSP_USE_EXPORT_CAPABILITY 1
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
}
|
|
@ -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>
|
|
@ -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
|
||||
|
|
@ -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>
|
|
@ -12,8 +12,8 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#if !defined(_INTTYPES_H_)
|
||||
#define _INTTYPES_H_
|
||||
#if !defined(_UNISTD_H_)
|
||||
#define _UNISTD_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -22,7 +22,9 @@ extern "C" {
|
|||
#define open _open
|
||||
#define write _write
|
||||
|
||||
extern int gethostname (char *name, size_t len);
|
||||
extern int getopt(int argc, char *argv[], char *opstring);
|
||||
|
||||
extern char *optarg;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: noise.c,v 1.30 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: noise.c,v 1.31 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -80,12 +80,6 @@ SPAN_DECLARE(int16_t) noise(noise_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(noise_state_t *) noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
|
||||
{
|
||||
return noise_init_dbov(s, seed, (level - DBM0_MAX_POWER), class_of_noise, quality);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
|
||||
{
|
||||
float rms;
|
||||
|
@ -115,6 +109,18 @@ SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(noise_state_t *) noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
|
||||
{
|
||||
return noise_init_dbov(s, seed, (level - DBM0_MAX_POWER), class_of_noise, quality);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) noise_release(noise_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) noise_free(noise_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* The actual OKI ADPCM encode and decode method is derived from freely
|
||||
* available code, whose exact origins seem uncertain.
|
||||
*
|
||||
* $Id: oki_adpcm.c,v 1.31 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: oki_adpcm.c,v 1.32 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -259,6 +259,12 @@ SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s, int bit_r
|
|||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) oki_adpcm_release(oki_adpcm_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) oki_adpcm_free(oki_adpcm_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: playout.c,v 1.16 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: playout.c,v 1.17 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -330,7 +330,7 @@ SPAN_DECLARE(void) playout_restart(playout_state_t *s, int min_length, int max_l
|
|||
}
|
||||
/*- 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;
|
||||
|
||||
|
@ -342,7 +342,7 @@ SPAN_DECLARE(playout_state_t *) playout_new(int min_length, int max_length)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(void) playout_free(playout_state_t *s)
|
||||
SPAN_DECLARE(int) playout_release(playout_state_t *s)
|
||||
{
|
||||
playout_frame_t *frame;
|
||||
playout_frame_t *next;
|
||||
|
@ -360,8 +360,19 @@ SPAN_DECLARE(void) playout_free(playout_state_t *s)
|
|||
next = frame->later;
|
||||
free(frame);
|
||||
}
|
||||
/* Finally, free ourselves! */
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) playout_free(playout_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
{
|
||||
playout_release(s);
|
||||
/* Finally, free ourselves! */
|
||||
free(s);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: plc.c,v 1.26 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: plc.c,v 1.27 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -248,6 +248,12 @@ SPAN_DECLARE(plc_state_t *) plc_init(plc_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) plc_release(plc_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) plc_free(plc_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: power_meter.c,v 1.27 2009/02/03 16:28:39 steveu Exp $
|
||||
* $Id: power_meter.c,v 1.28 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -62,6 +62,20 @@ SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) power_meter_release(power_meter_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) power_meter_free(power_meter_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(power_meter_t *) power_meter_damping(power_meter_t *s, int shift)
|
||||
{
|
||||
s->shift = shift;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: queue.c,v 1.28 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: queue.c,v 1.29 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -410,6 +410,12 @@ SPAN_DECLARE(queue_state_t *) queue_init(queue_state_t *s, int len, int flags)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) queue_release(queue_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) queue_free(queue_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: schedule.c,v 1.21 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: schedule.c,v 1.22 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
|
@ -149,4 +149,13 @@ SPAN_DECLARE(int) span_schedule_release(span_sched_state_t *s)
|
|||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) span_schedule_free(span_sched_state_t *s)
|
||||
{
|
||||
span_schedule_release(s);
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: sig_tone.c,v 1.30 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: sig_tone.c,v 1.31 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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 --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_tx_release(sig_tone_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_tx_free(sig_tone_tx_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
SPAN_DECLARE(int) sig_tone_rx(sig_tone_rx_state_t *s, int16_t amp[], int len)
|
||||
{
|
||||
#if defined(SPANDSP_USE_FIXED_POINT)
|
||||
|
@ -674,4 +687,18 @@ SPAN_DECLARE(sig_tone_rx_state_t *) sig_tone_rx_init(sig_tone_rx_state_t *s, int
|
|||
return s;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_rx_release(sig_tone_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_rx_free(sig_tone_rx_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: silence_gen.c,v 1.19 2009/02/04 13:18:53 steveu Exp $
|
||||
* $Id: silence_gen.c,v 1.20 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -128,6 +128,20 @@ SPAN_DECLARE(silence_gen_state_t *) silence_gen_init(silence_gen_state_t *s, int
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) silence_gen_release(silence_gen_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) silence_gen_free(silence_gen_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
/* The following dummy routines, to absorb data, don't really have a proper home,
|
||||
so they have been put here. */
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: adsi.h,v 1.35 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: adsi.h,v 1.36 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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(int) adsi_rx_release(adsi_rx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s);
|
||||
|
||||
/*! \brief Receive a chunk of ADSI audio.
|
||||
|
@ -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(int) adsi_tx_release(adsi_tx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s);
|
||||
|
||||
/*! \brief Adjust the preamble associated with an ADSI transmit context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: async.h,v 1.22 2009/02/04 13:18:53 steveu Exp $
|
||||
* $Id: async.h,v 1.23 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -158,6 +158,10 @@ SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
|
|||
get_byte_func_t get_byte,
|
||||
void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) async_tx_release(async_tx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) async_tx_free(async_tx_state_t *s);
|
||||
|
||||
/*! Get the next bit of a transmitted serial bit stream.
|
||||
\brief Get the next bit of a transmitted serial bit stream.
|
||||
\param user_data An opaque point which must point to a transmitter context.
|
||||
|
@ -182,6 +186,10 @@ SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
|
|||
put_byte_func_t put_byte,
|
||||
void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) async_rx_release(async_rx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) async_rx_free(async_rx_state_t *s);
|
||||
|
||||
/*! Accept a bit from a received serial bit stream
|
||||
\brief Accept a bit from a received serial bit stream
|
||||
\param user_data An opaque point which must point to a receiver context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: at_interpreter.h,v 1.22 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: at_interpreter.h,v 1.23 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -179,6 +179,12 @@ SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
|
|||
at_modem_control_handler_t *modem_control_handler,
|
||||
void *modem_control_user_data);
|
||||
|
||||
/*! Release an AT interpreter context.
|
||||
\brief Release an AT interpreter context.
|
||||
\param s The AT context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) at_release(at_state_t *s);
|
||||
|
||||
/*! Free an AT interpreter context.
|
||||
\brief Free an AT interpreter context.
|
||||
\param s The AT context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: awgn.h,v 1.17 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: awgn.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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(int) awgn_release(awgn_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) awgn_free(awgn_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int16_t) awgn(awgn_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: bell_r2_mf.h,v 1.23 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: bell_r2_mf.h,v 1.24 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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.*/
|
||||
SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s);
|
||||
|
||||
/*! \brief Release a Bell MF generator context.
|
||||
\param s The Bell MF generator context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) bell_mf_tx_release(bell_mf_tx_state_t *s);
|
||||
|
||||
/*! \brief Free a Bell MF generator context.
|
||||
\param s The Bell MF generator context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
@ -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.*/
|
||||
SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd);
|
||||
|
||||
/*! \brief Release an R2 MF tone generator context.
|
||||
\param s The R2 MF tone generator context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) r2_mf_tx_release(r2_mf_tx_state_t *s);
|
||||
|
||||
/*! \brief Free an R2 MF tone generator context.
|
||||
\param s The R2 MF tone generator context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
@ -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,
|
||||
void *user_data);
|
||||
|
||||
/*! \brief Release a Bell MF receiver context.
|
||||
\param s The Bell MF receiver context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) bell_mf_rx_release(bell_mf_rx_state_t *s);
|
||||
|
||||
/*! \brief Free a Bell MF receiver context.
|
||||
\param s The Bell MF receiver context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
@ -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,
|
||||
void *user_data);
|
||||
|
||||
/*! \brief Release an R2 MF receiver context.
|
||||
\param s The R2 MF receiver context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) r2_mf_rx_release(r2_mf_rx_state_t *s);
|
||||
|
||||
/*! \brief Free an R2 MF receiver context.
|
||||
\param s The R2 MF receiver context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: bert.h,v 1.22 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: bert.h,v 1.23 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_BERT_H_)
|
||||
|
@ -127,6 +127,10 @@ SPAN_DECLARE(const char *) bert_event_to_str(int event);
|
|||
\return The BERT context. */
|
||||
SPAN_DECLARE(bert_state_t *) bert_init(bert_state_t *s, int limit, int pattern, int resync_len, int resync_percent);
|
||||
|
||||
SPAN_DECLARE(int) bert_release(bert_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) bert_free(bert_state_t *s);
|
||||
|
||||
/*! Get the next bit of the BERT sequence from the generator.
|
||||
\param s The BERT context.
|
||||
\return The bit. */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: bitstream.h,v 1.13 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: bitstream.h,v 1.14 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -75,6 +75,10 @@ SPAN_DECLARE(void) bitstream_flush2(bitstream_state_t *s, uint8_t **c);
|
|||
\return A pointer to the bitstream context. */
|
||||
SPAN_DECLARE(bitstream_state_t *) bitstream_init(bitstream_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) bitstream_release(bitstream_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) bitstream_free(bitstream_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: complex.h,v 1.18 2008/09/03 13:41:42 steveu Exp $
|
||||
* $Id: complex.h,v 1.19 2009/02/10 17:16:57 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -121,7 +121,7 @@ static __inline__ complexf_t complex_setf(float re, float im)
|
|||
}
|
||||
/*- 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;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: dtmf.h,v 1.31 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: dtmf.h,v 1.32 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_DTMF_H_)
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s);
|
||||
|
||||
/*! \brief Release a DTMF tone generator context.
|
||||
\param s The DTMF tone generator context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) dtmf_tx_release(dtmf_tx_state_t *s);
|
||||
|
||||
/*! \brief Free a DTMF tone generator context.
|
||||
\param s The DTMF tone generator context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
@ -195,6 +200,11 @@ SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
|
|||
digits_rx_callback_t callback,
|
||||
void *user_data);
|
||||
|
||||
/*! \brief Release a DTMF receiver context.
|
||||
\param s The DTMF receiver context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) dtmf_rx_release(dtmf_rx_state_t *s);
|
||||
|
||||
/*! \brief Free a DTMF receiver context.
|
||||
\param s The DTMF receiver context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: echo.h,v 1.18 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: echo.h,v 1.19 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -196,12 +196,19 @@ extern "C"
|
|||
\param len The length of the canceller, in samples.
|
||||
\return The new canceller context, or NULL if the canceller could not be created.
|
||||
*/
|
||||
SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode);
|
||||
SPAN_DECLARE(echo_can_state_t *) echo_can_init(int len, int adaption_mode);
|
||||
|
||||
/*! Release a voice echo canceller context.
|
||||
\param ec The echo canceller context.
|
||||
\return 0 for OK, else -1.
|
||||
*/
|
||||
SPAN_DECLARE(int) echo_can_release(echo_can_state_t *ec);
|
||||
|
||||
/*! Free a voice echo canceller context.
|
||||
\param ec The echo canceller context.
|
||||
\return 0 for OK, else -1.
|
||||
*/
|
||||
SPAN_DECLARE(void) echo_can_free(echo_can_state_t *ec);
|
||||
SPAN_DECLARE(int) echo_can_free(echo_can_state_t *ec);
|
||||
|
||||
/*! Flush (reinitialise) a voice echo canceller context.
|
||||
\param ec The echo canceller context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fast_convert.h,v 1.2 2009/02/05 12:21:36 steveu Exp $
|
||||
* $Id: fast_convert.h,v 1.3 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_FAST_CONVERT_H_)
|
||||
|
@ -82,6 +82,7 @@ extern "C"
|
|||
*/
|
||||
|
||||
#if defined(__CYGWIN__)
|
||||
#if !defined(__cplusplus)
|
||||
/*
|
||||
* CYGWIN has lrint and lrintf functions, but they are slow and buggy:
|
||||
* http://sourceware.org/ml/cygwin/2005-06/msg00153.html
|
||||
|
@ -118,6 +119,7 @@ extern "C"
|
|||
);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* The fastest way to convert is the equivalent of lrint() */
|
||||
static __inline__ long int lfastrint(double x)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fax_modems.h,v 1.8 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: fax_modems.h,v 1.9 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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_v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
|
||||
SPAN_DECLARE(int) fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len);
|
||||
|
||||
SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s, void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) fax_modems_release(fax_modems_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) fax_modems_free(fax_modems_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: fsk.h,v 1.35 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: fsk.h,v 1.36 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -148,6 +148,10 @@ SPAN_DECLARE(fsk_tx_state_t *) fsk_tx_init(fsk_tx_state_t *s,
|
|||
get_bit_func_t get_bit,
|
||||
void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) fsk_tx_release(fsk_tx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) fsk_tx_free(fsk_tx_state_t *s);
|
||||
|
||||
/*! Adjust an FSK modem transmit context's power output.
|
||||
\brief Adjust an FSK modem transmit context's power output.
|
||||
\param s The modem context.
|
||||
|
@ -197,6 +201,10 @@ SPAN_DECLARE(fsk_rx_state_t *) fsk_rx_init(fsk_rx_state_t *s,
|
|||
put_bit_func_t put_bit,
|
||||
void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) fsk_rx_release(fsk_rx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) fsk_rx_free(fsk_rx_state_t *s);
|
||||
|
||||
/*! Process a block of received FSK modem audio samples.
|
||||
\brief Process a block of received FSK modem audio samples.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: g711.h,v 1.17 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: g711.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(g711_state_t *) g711_init(g711_state_t *s, int mode);
|
||||
|
||||
/*! Free a G.711 encode or decode context.
|
||||
/*! Release a G.711 encode or decode context.
|
||||
\param s The G.711 context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) g711_release(g711_state_t *s);
|
||||
|
||||
/*! Free a G.711 encode or decode context.
|
||||
\param s The G.711 context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) g711_free(g711_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Computer Science, Speech Group
|
||||
* Chengxiang Lu and Alex Hauptmann
|
||||
*
|
||||
* $Id: g722.h,v 1.24 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: g722.h,v 1.25 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
|
||||
|
@ -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_free(g722_encode_state_t *s);
|
||||
|
||||
/*! Encode a buffer of linear PCM data to G.722
|
||||
\param s The G.722 context.
|
||||
\param g722_data The G.722 data produced.
|
||||
|
@ -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_free(g722_decode_state_t *s);
|
||||
|
||||
/*! Decode a buffer of G.722 data to linear PCM.
|
||||
\param s The G.722 context.
|
||||
\param amp The audio sample buffer.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: g726.h,v 1.24 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: g726.h,v 1.25 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -79,11 +79,16 @@ extern "C"
|
|||
\return A pointer to the G.726 context, or NULL for error. */
|
||||
SPAN_DECLARE(g726_state_t *) g726_init(g726_state_t *s, int bit_rate, int ext_coding, int packing);
|
||||
|
||||
/*! Free a G.726 encode or decode context.
|
||||
/*! Release a G.726 encode or decode context.
|
||||
\param s The G.726 context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) g726_release(g726_state_t *s);
|
||||
|
||||
/*! Free a G.726 encode or decode context.
|
||||
\param s The G.726 context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) g726_free(g726_state_t *s);
|
||||
|
||||
/*! Decode a buffer of G.726 ADPCM data to linear PCM, a-law or u-law.
|
||||
\param s The G.726 context.
|
||||
\param amp The audio sample buffer.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: gsm0610.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: gsm0610.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_GSM0610_H_)
|
||||
|
@ -90,6 +90,11 @@ SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing);
|
|||
\return 0 for success, else -1. */
|
||||
SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s);
|
||||
|
||||
/*! Free a GSM 06.10 encode or decode context.
|
||||
\param s The GSM 06.10 context
|
||||
\return 0 for success, else -1. */
|
||||
SPAN_DECLARE(int) gsm0610_free(gsm0610_state_t *s);
|
||||
|
||||
/*! Set the packing format for a GSM 06.10 encode or decode context.
|
||||
\param s The GSM 06.10 context
|
||||
\param packing One of the GSM0610_PACKING_xxx options.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: hdlc.h,v 1.42 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: hdlc.h,v 1.43 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -101,6 +101,10 @@ SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
|
|||
hdlc_frame_handler_t handler,
|
||||
void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) hdlc_rx_release(hdlc_rx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) hdlc_rx_free(hdlc_rx_state_t *s);
|
||||
|
||||
/*! \brief Set the maximum frame length for an HDLC receiver context.
|
||||
\param s A pointer to an HDLC receiver context.
|
||||
\param max_len The maximum permitted length of a frame.
|
||||
|
@ -157,6 +161,10 @@ SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
|
|||
hdlc_underflow_handler_t handler,
|
||||
void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) hdlc_tx_release(hdlc_tx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) hdlc_tx_free(hdlc_tx_state_t *s);
|
||||
|
||||
/*! \brief Set the maximum frame length for an HDLC transmitter context.
|
||||
\param s A pointer to an HDLC transmitter context.
|
||||
\param max_len The maximum length.
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* Based on a bit from here, a bit from there, eye of toad,
|
||||
* ear of bat, etc - plus, of course, my own 2 cents.
|
||||
*
|
||||
* $Id: ima_adpcm.h,v 1.23 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: ima_adpcm.h,v 1.24 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -77,11 +77,16 @@ SPAN_DECLARE(ima_adpcm_state_t *) ima_adpcm_init(ima_adpcm_state_t *s,
|
|||
int variant,
|
||||
int chunk_size);
|
||||
|
||||
/*! Free an IMA ADPCM encode or decode context.
|
||||
/*! Release an IMA ADPCM encode or decode context.
|
||||
\param s The IMA ADPCM context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) ima_adpcm_release(ima_adpcm_state_t *s);
|
||||
|
||||
/*! Free an IMA ADPCM encode or decode context.
|
||||
\param s The IMA ADPCM context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) ima_adpcm_free(ima_adpcm_state_t *s);
|
||||
|
||||
/*! Encode a buffer of linear PCM data to IMA ADPCM.
|
||||
\param s The IMA ADPCM context.
|
||||
\param ima_data The IMA ADPCM data produced.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: logging.h,v 1.18 2009/01/31 08:48:11 steveu Exp $
|
||||
* $Id: logging.h,v 1.19 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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_init(logging_state_t *s, int level, const char *tag);
|
||||
|
||||
SPAN_DECLARE(int) span_log_set_level(logging_state_t *s, int level);
|
||||
|
||||
SPAN_DECLARE(int) span_log_set_tag(logging_state_t *s, const char *tag);
|
||||
|
@ -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(int) span_log_init(logging_state_t *s, int level, const char *tag);
|
||||
|
||||
SPAN_DECLARE(int) span_log_release(logging_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) span_log_free(logging_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: lpc10.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: lpc10.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_LPC10_H_)
|
||||
|
@ -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_free(lpc10_encode_state_t *s);
|
||||
|
||||
/*! Encode a buffer of linear PCM data to LPC10e.
|
||||
\param s The LPC10e context.
|
||||
\param ima_data The LPC10e data produced.
|
||||
|
@ -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_free(lpc10_decode_state_t *s);
|
||||
|
||||
/*! Decode a buffer of LPC10e data to linear PCM.
|
||||
\param s The LPC10e context.
|
||||
\param amp The audio sample buffer.
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: modem_connect_tones.h,v 1.21 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: modem_connect_tones.h,v 1.22 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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,
|
||||
int tone_type);
|
||||
|
||||
/*! \brief Release an instance of the modem connect tones generator.
|
||||
\param s The context.
|
||||
\return 0 for OK, else -1.
|
||||
*/
|
||||
SPAN_DECLARE(int) modem_connect_tones_tx_release(modem_connect_tones_tx_state_t *s);
|
||||
|
||||
/*! \brief Free an instance of the modem connect tones generator.
|
||||
\param s The context.
|
||||
\return 0 for OK, else -1.
|
||||
|
@ -152,6 +158,11 @@ SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem
|
|||
tone_report_func_t tone_callback,
|
||||
void *user_data);
|
||||
|
||||
/*! \brief Release an instance of the modem connect tones detector.
|
||||
\param s The context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) modem_connect_tones_rx_release(modem_connect_tones_rx_state_t *s);
|
||||
|
||||
/*! \brief Free an instance of the modem connect tones detector.
|
||||
\param s The context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: noise.h,v 1.16 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: noise.h,v 1.17 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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(int) noise_release(noise_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) noise_free(noise_state_t *s);
|
||||
|
||||
/*! Generate a sample of audio noise.
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: oki_adpcm.h,v 1.23 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: oki_adpcm.h,v 1.24 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -64,11 +64,16 @@ extern "C"
|
|||
SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s,
|
||||
int bit_rate);
|
||||
|
||||
/*! Free an Oki ADPCM encode or decode context.
|
||||
/*! Release an Oki ADPCM encode or decode context.
|
||||
\param s The Oki ADPCM context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) oki_adpcm_release(oki_adpcm_state_t *s);
|
||||
|
||||
/*! Free an Oki ADPCM encode or decode context.
|
||||
\param s The Oki ADPCM context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) oki_adpcm_free(oki_adpcm_state_t *s);
|
||||
|
||||
/*! Decode a buffer of Oki ADPCM data to linear PCM.
|
||||
\param s The Oki ADPCM context.
|
||||
\param amp The audio sample buffer.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: playout.h,v 1.13 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: playout.h,v 1.14 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_PLAYOUT_H_)
|
||||
|
@ -182,17 +182,6 @@ SPAN_DECLARE(timestamp_t) playout_current_length(playout_state_t *s);
|
|||
\return The next timestamp. */
|
||||
SPAN_DECLARE(timestamp_t) playout_next_due(playout_state_t *s);
|
||||
|
||||
/*! Create a new instance of play-out buffering.
|
||||
\param min_length Minimum length of the buffer, in samples.
|
||||
\param max_length Maximum length of the buffer, in samples. If this equals min_length, static
|
||||
length buffering is used.
|
||||
\return The new context */
|
||||
SPAN_DECLARE(playout_state_t *) playout_new(int min_length, int max_length);
|
||||
|
||||
/*! Destroy an instance of play-out buffering.
|
||||
\param s The play-out context to be destroyed */
|
||||
SPAN_DECLARE(void) playout_free(playout_state_t *s);
|
||||
|
||||
/*! Reset an instance of play-out buffering.
|
||||
NOTE: The buffer should be empty before you call this function, otherwise
|
||||
you will leak queued frames, and some internal structures
|
||||
|
@ -202,6 +191,23 @@ SPAN_DECLARE(void) playout_free(playout_state_t *s);
|
|||
length buffering is used. */
|
||||
SPAN_DECLARE(void) playout_restart(playout_state_t *s, int min_length, int max_length);
|
||||
|
||||
/*! Create a new instance of play-out buffering.
|
||||
\param min_length Minimum length of the buffer, in samples.
|
||||
\param max_length Maximum length of the buffer, in samples. If this equals min_length, static
|
||||
length buffering is used.
|
||||
\return The new context */
|
||||
SPAN_DECLARE(playout_state_t *) playout_init(int min_length, int max_length);
|
||||
|
||||
/*! Release an instance of play-out buffering.
|
||||
\param s The play-out context to be releaased
|
||||
\return 0 if OK, else -1 */
|
||||
SPAN_DECLARE(int) playout_release(playout_state_t *s);
|
||||
|
||||
/*! Free an instance of play-out buffering.
|
||||
\param s The play-out context to be destroyed
|
||||
\return 0 if OK, else -1 */
|
||||
SPAN_DECLARE(int) playout_free(playout_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: plc.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: plc.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(plc_state_t *) plc_init(plc_state_t *s);
|
||||
|
||||
/*! Release a packet loss concealer context.
|
||||
\param s The packet loss concealer context.
|
||||
\return 0 for OK. */
|
||||
SPAN_DECLARE(int) plc_release(plc_state_t *s);
|
||||
|
||||
/*! Free a packet loss concealer context.
|
||||
\param s The packet loss concealer context.
|
||||
\return 0 for OK. */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: power_meter.h,v 1.17 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: power_meter.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_POWER_METER_H_)
|
||||
|
@ -68,6 +68,10 @@ extern "C"
|
|||
\return The power meter context. */
|
||||
SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift);
|
||||
|
||||
SPAN_DECLARE(int) power_meter_release(power_meter_t *s);
|
||||
|
||||
SPAN_DECLARE(int) power_meter_free(power_meter_t *s);
|
||||
|
||||
/*! Change the damping factor of a power meter context.
|
||||
\brief Change the damping factor of a power meter context.
|
||||
\param s The power meter context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: queue.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: queue.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(queue_state_t *) queue_init(queue_state_t *s, int len, int flags);
|
||||
|
||||
/*! Delete a queue.
|
||||
/*! Release a queue.
|
||||
\brief Release a queue.
|
||||
\param s The queue context.
|
||||
\return 0 if OK, else -1. */
|
||||
SPAN_DECLARE(int) queue_release(queue_state_t *s);
|
||||
|
||||
/*! Free a queue.
|
||||
\brief Delete a queue.
|
||||
\param s The queue context.
|
||||
\return 0 if deleted OK, else -1. */
|
||||
\return 0 if OK, else -1. */
|
||||
SPAN_DECLARE(int) queue_free(queue_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: schedule.h,v 1.19 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: schedule.h,v 1.20 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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(int) span_schedule_release(span_sched_state_t *s);
|
||||
SPAN_DECLARE(int) span_schedule_free(span_sched_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: sig_tone.h,v 1.17 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: sig_tone.h,v 1.18 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(sig_tone_rx_state_t *) sig_tone_rx_init(sig_tone_rx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_rx_release(sig_tone_rx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_rx_free(sig_tone_rx_state_t *s);
|
||||
|
||||
/*! Generate a block of signaling tone audio samples.
|
||||
\brief Generate a block of signaling tone audio samples.
|
||||
\param s The signaling tone context.
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(sig_tone_tx_state_t *) sig_tone_tx_init(sig_tone_tx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_tx_release(sig_tone_tx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) sig_tone_tx_free(sig_tone_tx_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: silence_gen.h,v 1.15 2009/02/04 13:18:53 steveu Exp $
|
||||
* $Id: silence_gen.h,v 1.16 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_SILENCE_GEN_H_)
|
||||
|
@ -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(int) silence_gen_release(silence_gen_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) silence_gen_free(silence_gen_state_t *s);
|
||||
|
||||
/* The following dummy routines, to absorb data, don't really have a proper home,
|
||||
so they have been put here. */
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: super_tone_rx.h,v 1.20 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: super_tone_rx.h,v 1.21 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_SUPER_TONE_RX_H_)
|
||||
|
@ -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.
|
||||
\return 0 for OK, -1 for fail.
|
||||
*/
|
||||
SPAN_DECLARE(int) super_tone_rx_release(super_tone_rx_state_t *s);
|
||||
|
||||
/*! Free a supervisory tone detector.
|
||||
\param s The supervisory tone context.
|
||||
\return 0 for OK, -1 for fail.
|
||||
*/
|
||||
SPAN_DECLARE(int) super_tone_rx_free(super_tone_rx_state_t *s);
|
||||
|
||||
/*! Define a callback routine to be called each time a tone pattern element is complete. This is
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: super_tone_tx.h,v 1.16 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: super_tone_tx.h,v 1.17 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_SUPER_TONE_TX_H_)
|
||||
|
@ -58,7 +58,7 @@ SPAN_DECLARE(super_tone_tx_step_t *) super_tone_tx_make_step(super_tone_tx_step_
|
|||
int length,
|
||||
int cycles);
|
||||
|
||||
SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s);
|
||||
SPAN_DECLARE(int) super_tone_tx_free_tone(super_tone_tx_step_t *s);
|
||||
|
||||
/*! Initialise a supervisory tone generator.
|
||||
\brief Initialise a supervisory tone generator.
|
||||
|
@ -67,6 +67,10 @@ SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s);
|
|||
\return The supervisory tone generator context. */
|
||||
SPAN_DECLARE(super_tone_tx_state_t *) super_tone_tx_init(super_tone_tx_state_t *s, super_tone_tx_step_t *tree);
|
||||
|
||||
SPAN_DECLARE(int) super_tone_tx_release(super_tone_tx_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) super_tone_tx_free(super_tone_tx_state_t *s);
|
||||
|
||||
/*! Generate a block of audio samples for a supervisory tone pattern.
|
||||
\brief Generate a block of audio samples for a supervisory tone pattern.
|
||||
\param s The supervisory tone context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t31.h,v 1.57 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: t31.h,v 1.58 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -140,6 +140,12 @@ SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
|
|||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) t31_release(t31_state_t *s);
|
||||
|
||||
/*! Free a T.31 context.
|
||||
\brief Release a T.31 context.
|
||||
\param s The T.31 context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) t31_free(t31_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_core.h,v 1.36 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: t38_core.h,v 1.37 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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,
|
||||
void *tx_packet_user_data);
|
||||
|
||||
SPAN_DECLARE(int) t38_core_release(t38_core_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) t38_core_free(t38_core_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_gateway.h,v 1.61 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: t38_gateway.h,v 1.62 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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,
|
||||
void *tx_packet_user_data);
|
||||
|
||||
/*! Release a gateway mode T.38 context.
|
||||
\brief Release a T.38 context.
|
||||
\param s The T.38 context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) t38_gateway_release(t38_gateway_state_t *s);
|
||||
|
||||
/*! Free a gateway mode T.38 context.
|
||||
\brief Free a T.38 context.
|
||||
\param s The T.38 context.
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_non_ecm_buffer.h,v 1.6 2009/02/04 13:18:53 steveu Exp $
|
||||
* $Id: t38_non_ecm_buffer.h,v 1.7 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -61,6 +61,10 @@ extern "C"
|
|||
\return A pointer to the buffer context, or NULL if there was a problem. */
|
||||
SPAN_DECLARE(t38_non_ecm_buffer_state_t *) t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits);
|
||||
|
||||
SPAN_DECLARE(int) t38_non_ecm_buffer_release(t38_non_ecm_buffer_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) t38_non_ecm_buffer_free(t38_non_ecm_buffer_state_t *s);
|
||||
|
||||
/*! \brief Set the mode of a T.38 rate adapting non-ECM buffer context.
|
||||
\param s The buffer context.
|
||||
\param mode TRUE for image data mode, or FALSE for TCF mode.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t4.h,v 1.56 2009/02/05 12:21:36 steveu Exp $
|
||||
* $Id: t4.h,v 1.57 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(int) t4_rx_end_page(t4_state_t *s);
|
||||
|
||||
/*! \brief End reception of a document. Tidy up and close the file.
|
||||
This should be used to end T.4 reception started with
|
||||
t4_rx_init.
|
||||
\param s The T.4 receive context.
|
||||
\return 0 for success, otherwise -1. */
|
||||
SPAN_DECLARE(int) t4_rx_release(t4_state_t *s);
|
||||
|
||||
/*! \brief End reception of a document. Tidy up, close the file and
|
||||
free the context. This should be used to end T.4 reception
|
||||
started with t4_rx_init.
|
||||
|
@ -251,13 +258,6 @@ SPAN_DECLARE(int) t4_rx_end_page(t4_state_t *s);
|
|||
\return 0 for success, otherwise -1. */
|
||||
SPAN_DECLARE(int) t4_rx_free(t4_state_t *s);
|
||||
|
||||
/*! \brief End reception of a document. Tidy up and close the file.
|
||||
This should be used to end T.4 reception started with
|
||||
t4_rx_init.
|
||||
\param s The T.4 context.
|
||||
\return 0 for success, otherwise -1. */
|
||||
SPAN_DECLARE(int) t4_rx_end(t4_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) t4_rx_set_row_write_handler(t4_state_t *s, t4_row_write_handler_t handler, void *user_data);
|
||||
|
||||
/*! \brief Set the encoding for the received data.
|
||||
|
@ -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). */
|
||||
SPAN_DECLARE(int) t4_tx_check_bit(t4_state_t *s);
|
||||
|
||||
/*! \brief End the transmission of a document. Tidy up and close the file.
|
||||
This should be used to end T.4 transmission started with t4_tx_init.
|
||||
\param s The T.4 context.
|
||||
\return 0 for success, otherwise -1. */
|
||||
SPAN_DECLARE(int) t4_tx_release(t4_state_t *s);
|
||||
|
||||
/*! \brief End the transmission of a document. Tidy up, close the file and
|
||||
free the context. This should be used to end T.4 transmission
|
||||
started with t4_tx_init.
|
||||
|
@ -381,12 +387,6 @@ SPAN_DECLARE(int) t4_tx_check_bit(t4_state_t *s);
|
|||
\return 0 for success, otherwise -1. */
|
||||
SPAN_DECLARE(int) t4_tx_free(t4_state_t *s);
|
||||
|
||||
/*! \brief End the transmission of a document. Tidy up and close the file.
|
||||
This should be used to end T.4 transmission started with t4_tx_init.
|
||||
\param s The T.4 context.
|
||||
\return 0 for success, otherwise -1. */
|
||||
SPAN_DECLARE(int) t4_tx_end(t4_state_t *s);
|
||||
|
||||
/*! \brief Set the encoding for the encoded data.
|
||||
\param s The T.4 context.
|
||||
\param encoding The encoding. */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: time_scale.h,v 1.19 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: time_scale.h,v 1.20 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_TIME_SCALE_H_)
|
||||
|
@ -73,6 +73,11 @@ extern "C"
|
|||
\return A pointer to the context, or NULL if there was a problem. */
|
||||
SPAN_DECLARE(time_scale_state_t *) time_scale_init(time_scale_state_t *s, int sample_rate, float playout_rate);
|
||||
|
||||
/*! \brief Release a time scale context.
|
||||
\param s The time scale context.
|
||||
\return 0 for OK, else -1. */
|
||||
SPAN_DECLARE(int) time_scale_release(time_scale_state_t *s);
|
||||
|
||||
/*! \brief Free a time scale context.
|
||||
\param s The time scale context.
|
||||
\return 0 for OK, else -1. */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: tone_detect.h,v 1.44 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: tone_detect.h,v 1.45 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
#if !defined(_SPANDSP_TONE_DETECT_H_)
|
||||
|
@ -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,
|
||||
goertzel_descriptor_t *t);
|
||||
|
||||
SPAN_DECLARE(int) goertzel_release(goertzel_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) goertzel_free(goertzel_state_t *s);
|
||||
|
||||
/*! \brief Reset the state of a Goertzel transform.
|
||||
\param s The Goertzel context. */
|
||||
SPAN_DECLARE(void) goertzel_reset(goertzel_state_t *s);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: tone_generate.h,v 1.37 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: tone_generate.h,v 1.38 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -88,9 +88,13 @@ SPAN_DECLARE(void) make_tone_gen_descriptor(tone_gen_descriptor_t *s,
|
|||
int d4,
|
||||
int repeat);
|
||||
|
||||
SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples);
|
||||
|
||||
SPAN_DECLARE(tone_gen_state_t *) tone_gen_init(tone_gen_state_t *s, tone_gen_descriptor_t *t);
|
||||
|
||||
SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples);
|
||||
SPAN_DECLARE(int) tone_gen_release(tone_gen_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) tone_gen_free(tone_gen_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v17rx.h,v 1.60 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v17rx.h,v 1.61 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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 */
|
||||
SPAN_DECLARE(int) v17_rx_restart(v17_rx_state_t *s, int bit_rate, int short_train);
|
||||
|
||||
/*! Release a V.17 modem receive context.
|
||||
\brief Release a V.17 modem receive context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) v17_rx_release(v17_rx_state_t *s);
|
||||
|
||||
/*! Free a V.17 modem receive context.
|
||||
\brief Free a V.17 modem receive context.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v17tx.h,v 1.39 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v17tx.h,v 1.40 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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. */
|
||||
SPAN_DECLARE(int) v17_tx_restart(v17_tx_state_t *s, int bit_rate, int tep, int short_train);
|
||||
|
||||
/*! Release a V.17 modem transmit context.
|
||||
\brief Release a V.17 modem transmit context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) v17_tx_release(v17_tx_state_t *s);
|
||||
|
||||
/*! Free a V.17 modem transmit context.
|
||||
\brief Free a V.17 modem transmit context.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v22bis.h,v 1.34 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v22bis.h,v 1.35 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -152,6 +152,12 @@ SPAN_DECLARE(v22bis_state_t *) v22bis_init(v22bis_state_t *s,
|
|||
put_bit_func_t put_bit,
|
||||
void *user_data);
|
||||
|
||||
/*! Release a V.22bis modem receive context.
|
||||
\brief Release a V.22bis modem receive context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) v22bis_release(v22bis_state_t *s);
|
||||
|
||||
/*! Free a V.22bis modem receive context.
|
||||
\brief Free a V.22bis modem receive context.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v27ter_rx.h,v 1.56 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v27ter_rx.h,v 1.57 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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 */
|
||||
SPAN_DECLARE(int) v27ter_rx_restart(v27ter_rx_state_t *s, int bit_rate, int old_train);
|
||||
|
||||
/*! Release a V.27ter modem receive context.
|
||||
\brief Release a V.27ter modem receive context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) v27ter_rx_release(v27ter_rx_state_t *s);
|
||||
|
||||
/*! Free a V.27ter modem receive context.
|
||||
\brief Free a V.27ter modem receive context.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v27ter_tx.h,v 1.39 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v27ter_tx.h,v 1.40 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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 */
|
||||
SPAN_DECLARE(int) v27ter_tx_restart(v27ter_tx_state_t *s, int bit_rate, int tep);
|
||||
|
||||
/*! Release a V.27ter modem transmit context.
|
||||
\brief Release a V.27ter modem transmit context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) v27ter_tx_release(v27ter_tx_state_t *s);
|
||||
|
||||
/*! Free a V.27ter modem transmit context.
|
||||
\brief Free a V.27ter modem transmit context.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v29rx.h,v 1.67 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v29rx.h,v 1.68 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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 */
|
||||
SPAN_DECLARE(int) v29_rx_restart(v29_rx_state_t *s, int bit_rate, int old_train);
|
||||
|
||||
/*! Release a V.29 modem receive context.
|
||||
\brief Release a V.29 modem receive context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) v29_rx_release(v29_rx_state_t *s);
|
||||
|
||||
/*! Free a V.29 modem receive context.
|
||||
\brief Free a V.29 modem receive context.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v29tx.h,v 1.37 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v29tx.h,v 1.38 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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 */
|
||||
SPAN_DECLARE(int) v29_tx_restart(v29_tx_state_t *s, int bit_rate, int tep);
|
||||
|
||||
/*! Release a V.29 modem transmit context.
|
||||
\brief Release a V.29 modem transmit context.
|
||||
\param s The modem context.
|
||||
\return 0 for OK */
|
||||
SPAN_DECLARE(int) v29_tx_release(v29_tx_state_t *s);
|
||||
|
||||
/*! Free a V.29 modem transmit context.
|
||||
\brief Free a V.29 modem transmit context.
|
||||
\param s The modem context.
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v42.h,v 1.29 2009/02/04 13:18:53 steveu Exp $
|
||||
* $Id: v42.h,v 1.30 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v42_page V.42 modem error correction
|
||||
|
@ -147,6 +147,11 @@ SPAN_DECLARE(void) v42_restart(v42_state_t *s);
|
|||
\return 0 if OK */
|
||||
SPAN_DECLARE(int) v42_release(v42_state_t *s);
|
||||
|
||||
/*! Free a V.42 context.
|
||||
\param s The V.42 context.
|
||||
\return 0 if OK */
|
||||
SPAN_DECLARE(int) v42_free(v42_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: v42bis.h,v 1.25 2009/02/03 16:28:41 steveu Exp $
|
||||
* $Id: v42bis.h,v 1.26 2009/02/10 13:06:47 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \page v42bis_page V.42bis modem data compression
|
||||
|
@ -94,6 +94,14 @@ SPAN_DECLARE(int) v42bis_decompress(v42bis_state_t *s, const uint8_t *buf, int l
|
|||
\return 0 */
|
||||
SPAN_DECLARE(int) v42bis_decompress_flush(v42bis_state_t *s);
|
||||
|
||||
/*! Set the compression mode.
|
||||
\param s The V.42bis context.
|
||||
\param mode One of the V.42bis compression modes -
|
||||
V42BIS_COMPRESSION_MODE_DYNAMIC,
|
||||
V42BIS_COMPRESSION_MODE_ALWAYS,
|
||||
V42BIS_COMPRESSION_MODE_NEVER */
|
||||
SPAN_DECLARE(void) v42bis_compression_control(v42bis_state_t *s, int mode);
|
||||
|
||||
/*! Initialise a V.42bis context.
|
||||
\param s The V.42bis context.
|
||||
\param negotiated_p0 The negotiated P0 parameter, from the V.42bis spec.
|
||||
|
@ -117,19 +125,16 @@ SPAN_DECLARE(v42bis_state_t *) v42bis_init(v42bis_state_t *s,
|
|||
void *data_user_data,
|
||||
int max_data_len);
|
||||
|
||||
/*! Set the compression mode.
|
||||
\param s The V.42bis context.
|
||||
\param mode One of the V.42bis compression modes -
|
||||
V42BIS_COMPRESSION_MODE_DYNAMIC,
|
||||
V42BIS_COMPRESSION_MODE_ALWAYS,
|
||||
V42BIS_COMPRESSION_MODE_NEVER */
|
||||
SPAN_DECLARE(void) v42bis_compression_control(v42bis_state_t *s, int mode);
|
||||
|
||||
/*! Release a V.42bis context.
|
||||
\param s The V.42bis context.
|
||||
\return 0 if OK */
|
||||
SPAN_DECLARE(int) v42bis_release(v42bis_state_t *s);
|
||||
|
||||
/*! Free a V.42bis context.
|
||||
\param s The V.42bis context.
|
||||
\return 0 if OK */
|
||||
SPAN_DECLARE(int) v42bis_free(v42bis_state_t *s);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -30,8 +30,8 @@
|
|||
|
||||
/* The date and time of the version are in UTC form. */
|
||||
|
||||
#define SPANDSP_RELEASE_DATE 20090205
|
||||
#define SPANDSP_RELEASE_TIME 122416
|
||||
#define SPANDSP_RELEASE_DATE 20090210
|
||||
#define SPANDSP_RELEASE_TIME 172413
|
||||
|
||||
#endif
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: super_tone_rx.c,v 1.32 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: super_tone_rx.c,v 1.33 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -267,6 +267,12 @@ SPAN_DECLARE(super_tone_rx_state_t *) super_tone_rx_init(super_tone_rx_state_t *
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) super_tone_rx_release(super_tone_rx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) super_tone_rx_free(super_tone_rx_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: super_tone_tx.c,v 1.28 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: super_tone_tx.c,v 1.29 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -112,7 +112,7 @@ SPAN_DECLARE(super_tone_tx_step_t *) super_tone_tx_make_step(super_tone_tx_step_
|
|||
}
|
||||
/*- 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;
|
||||
|
||||
|
@ -125,6 +125,7 @@ SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s)
|
|||
s = s->next;
|
||||
free(t);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/*- 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 --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) super_tone_tx_release(super_tone_tx_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) super_tone_tx_free(super_tone_tx_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) super_tone_tx(super_tone_tx_state_t *s, int16_t amp[], int max_samples)
|
||||
{
|
||||
int samples;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t30.c,v 1.284 2009/02/04 13:18:53 steveu Exp $
|
||||
* $Id: t30.c,v 1.285 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -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 clr_ctrl_bit(s,bit) (s)[3 + ((bit - 1)/8)] &= ~(1 << ((bit - 1)%8))
|
||||
|
||||
static int terminate_operation_in_progress(t30_state_t *s)
|
||||
{
|
||||
/* Make sure any FAX in progress is tidied up. If the tidying up has
|
||||
already happened, repeating it here is harmless. */
|
||||
switch (s->operation_in_progress)
|
||||
{
|
||||
case OPERATION_IN_PROGRESS_T4_TX:
|
||||
t4_tx_release(&(s->t4));
|
||||
break;
|
||||
case OPERATION_IN_PROGRESS_T4_RX:
|
||||
t4_rx_release(&(s->t4));
|
||||
break;
|
||||
}
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static int tx_start_page(t30_state_t *s)
|
||||
{
|
||||
if (t4_tx_start_page(&(s->t4)))
|
||||
{
|
||||
t4_tx_end(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
terminate_operation_in_progress(s);
|
||||
return -1;
|
||||
}
|
||||
s->ecm_block = 0;
|
||||
|
@ -1750,10 +1767,10 @@ static void disconnect(t30_state_t *s)
|
|||
switch (s->operation_in_progress)
|
||||
{
|
||||
case OPERATION_IN_PROGRESS_T4_TX:
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
break;
|
||||
case OPERATION_IN_PROGRESS_T4_RX:
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
break;
|
||||
}
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
|
@ -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. */
|
||||
if ((min_row_bits = set_min_scan_time_code(s)) < 0)
|
||||
{
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
return -1;
|
||||
}
|
||||
|
@ -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_GOOD:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_MCF);
|
||||
break;
|
||||
case T30_COPY_QUALITY_POOR:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_RTP);
|
||||
|
@ -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_GOOD:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_MCF);
|
||||
break;
|
||||
case T30_COPY_QUALITY_POOR:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_RTP);
|
||||
|
@ -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_GOOD:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_MCF);
|
||||
|
@ -3046,7 +3063,7 @@ static void process_state_f_post_doc_non_ecm(t30_state_t *s, const uint8_t *msg,
|
|||
break;
|
||||
case T30_COPY_QUALITY_POOR:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_RTP);
|
||||
|
@ -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_GOOD:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_MCF);
|
||||
break;
|
||||
case T30_COPY_QUALITY_POOR:
|
||||
rx_end_page(s);
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
s->in_message = FALSE;
|
||||
set_state(s, T30_STATE_III_Q_RTP);
|
||||
|
@ -3380,7 +3397,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
|
|||
tx_end_page(s);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
{
|
||||
|
@ -3394,7 +3411,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
|
|||
tx_end_page(s);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
send_dcn(s);
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
|
@ -3436,7 +3453,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
|
|||
tx_end_page(s);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
/* TODO: should go back to T, and resend */
|
||||
return_to_phase_b(s, TRUE);
|
||||
break;
|
||||
|
@ -3445,7 +3462,7 @@ static void process_state_ii_q(t30_state_t *s, const uint8_t *msg, int len)
|
|||
tx_end_page(s);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->current_status = T30_ERR_TX_INVALRSP;
|
||||
send_dcn(s);
|
||||
break;
|
||||
|
@ -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);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
{
|
||||
|
@ -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);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
send_dcn(s);
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
|
@ -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);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
{
|
||||
|
@ -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);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
send_dcn(s);
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
|
@ -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);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
{
|
||||
|
@ -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);
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
send_dcn(s);
|
||||
if (span_log_test(&s->logging, SPAN_LOG_FLOW))
|
||||
|
@ -5870,10 +5887,10 @@ SPAN_DECLARE(int) t30_release(t30_state_t *s)
|
|||
switch (s->operation_in_progress)
|
||||
{
|
||||
case OPERATION_IN_PROGRESS_T4_TX:
|
||||
t4_tx_end(&(s->t4));
|
||||
t4_tx_release(&(s->t4));
|
||||
break;
|
||||
case OPERATION_IN_PROGRESS_T4_RX:
|
||||
t4_rx_end(&(s->t4));
|
||||
t4_rx_release(&(s->t4));
|
||||
break;
|
||||
}
|
||||
s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t31.c,v 1.139 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: t31.c,v 1.140 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -2528,6 +2528,13 @@ SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
|
|||
SPAN_DECLARE(int) t31_release(t31_state_t *s)
|
||||
{
|
||||
at_reset_call_info(&s->at_state);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t31_free(t31_state_t *s)
|
||||
{
|
||||
t31_release(s);
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_core.c,v 1.51 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: t38_core.c,v 1.52 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -976,4 +976,18 @@ SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
|
|||
return s;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t38_core_release(t38_core_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t38_core_free(t38_core_state_t *s)
|
||||
{
|
||||
if (s)
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
/*- End of file ------------------------------------------------------------*/
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: t38_gateway.c,v 1.153 2009/02/03 16:28:40 steveu Exp $
|
||||
* $Id: t38_gateway.c,v 1.154 2009/02/10 13:06:46 steveu Exp $
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
@ -2273,6 +2273,12 @@ SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t38_gateway_release(t38_gateway_state_t *s)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t38_gateway_free(t38_gateway_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue