Freeswitch-trunk
Threads by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
February 2009
- 17 participants
- 681 discussions
[commit] r12190 - in freeswitch/trunk/libs/spandsp: src src/spandsp src/spandsp/private test-data/etsi/fax test-data/itu/fax tests
by FreeSWITCH SVN 20 Feb '09
by FreeSWITCH SVN 20 Feb '09
20 Feb '09
Author: mikej
Date: Fri Feb 20 12:30:05 2009
New Revision: 12190
Log:
update to snapshot spandsp-20090220
Added:
freeswitch/trunk/libs/spandsp/tests/fax_utils.c
Modified:
freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h
freeswitch/trunk/libs/spandsp/src/spandsp/t30.h
freeswitch/trunk/libs/spandsp/src/spandsp/t4.h
freeswitch/trunk/libs/spandsp/src/spandsp/version.h
freeswitch/trunk/libs/spandsp/src/t30.c
freeswitch/trunk/libs/spandsp/src/t4.c
freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am
freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c
freeswitch/trunk/libs/spandsp/test-data/itu/fax/Makefile.am
freeswitch/trunk/libs/spandsp/tests/Makefile.am
freeswitch/trunk/libs/spandsp/tests/fax_tests.c
freeswitch/trunk/libs/spandsp/tests/t31_tests.c
freeswitch/trunk/libs/spandsp/tests/t38_gateway_tests.c
freeswitch/trunk/libs/spandsp/tests/t38_gateway_to_terminal_tests.c
freeswitch/trunk/libs/spandsp/tests/t38_terminal_tests.c
freeswitch/trunk/libs/spandsp/tests/t38_terminal_to_gateway_tests.c
freeswitch/trunk/libs/spandsp/tests/t4_tests.c
freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h Fri Feb 20 12:30:05 2009
@@ -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.3 2009/02/16 09:57:22 steveu Exp $
+ * $Id: t4.h,v 1.4 2009/02/20 12:34:20 steveu Exp $
*/
#if !defined(_SPANDSP_PRIVATE_T4_H_)
@@ -107,7 +107,7 @@
int stop_page;
/*! \brief The number of pages transferred to date. */
- int pages_transferred;
+ int current_page;
/*! \brief The number of pages in the current image file. */
int pages_in_file;
/*! \brief Column-to-column (X) resolution in pixels per metre. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/t30.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/t30.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/t30.h Fri Feb 20 12:30:05 2009
@@ -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.h,v 1.123 2009/02/04 13:18:53 steveu Exp $
+ * $Id: t30.h,v 1.124 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -515,8 +515,10 @@
int bit_rate;
/*! \brief TRUE if error correcting mode is used. */
int error_correcting_mode;
- /*! \brief The number of pages transferred so far. */
- int pages_transferred;
+ /*! \brief The number of pages sent so far. */
+ int pages_tx;
+ /*! \brief The number of pages received so far. */
+ int pages_rx;
/*! \brief The number of pages in the file (<0 if not known). */
int pages_in_file;
/*! \brief The horizontal column-to-column resolution of the page, in pixels per metre */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/t4.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/t4.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/t4.h Fri Feb 20 12:30:05 2009
@@ -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.57 2009/02/10 13:06:47 steveu Exp $
+ * $Id: t4.h,v 1.58 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -323,11 +323,14 @@
\return zero for success, -1 for failure. */
SPAN_DECLARE(int) t4_tx_restart_page(t4_state_t *s);
-/*! \brief Check for the existance of the next page. This information can
- be needed before it is determined that the current page is finished with.
- \param s The T.4 context.
- \return zero for next page found, -1 for failure. */
-SPAN_DECLARE(int) t4_tx_more_pages(t4_state_t *s);
+/*! \brief Check for the existance of the next page, and whether its format is like the
+ current one. This information can be needed before it is determined that the current
+ page is finished with.
+ \param s The T.4 context.
+ \return 0 for next page found with the same format as the current page.
+ 1 for next page found with different format from the current page.
+ -1 for no page found, or file failure. */
+SPAN_DECLARE(int) t4_tx_next_page_has_different_format(t4_state_t *s);
/*! \brief Complete the sending of a page.
\param s The T.4 context.
@@ -435,6 +438,11 @@
\return The number of pages, or -1 if there is an error. */
SPAN_DECLARE(int) t4_tx_get_pages_in_file(t4_state_t *s);
+/*! \brief Get the currnet page number in the file.
+ \param s The T.4 context.
+ \return The page number, or -1 if there is an error. */
+SPAN_DECLARE(int) t4_tx_get_current_page_in_file(t4_state_t *s);
+
/*! Get the current image transfer statistics.
\brief Get the current transfer statistics.
\param s The T.4 context.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/version.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/version.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/version.h Fri Feb 20 12:30:05 2009
@@ -30,8 +30,8 @@
/* The date and time of the version are in UTC form. */
-#define SPANDSP_RELEASE_DATE 20090216
-#define SPANDSP_RELEASE_TIME 100031
+#define SPANDSP_RELEASE_DATE 20090220
+#define SPANDSP_RELEASE_TIME 124309
#endif
/*- End of file ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/t30.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t30.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t30.c Fri Feb 20 12:30:05 2009
@@ -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.285 2009/02/10 13:06:46 steveu Exp $
+ * $Id: t30.c,v 1.286 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -469,7 +469,9 @@
span_log(&s->logging, SPAN_LOG_FLOW, "Image resolution = %d/m x %d/m\n", stats.x_resolution, stats.y_resolution);
span_log(&s->logging, SPAN_LOG_FLOW, "Bad rows = %d\n", stats.bad_rows);
span_log(&s->logging, SPAN_LOG_FLOW, "Longest bad row run = %d\n", stats.longest_bad_row_run);
- if (stats.bad_rows == 0)
+ /* Don't treat a page as perfect because it has zero bad rows out of zero total rows. A zero row
+ page has got to be some kind of total page failure. */
+ if (stats.bad_rows == 0 && stats.length != 0)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Page quality is perfect\n");
quality = T30_COPY_QUALITY_PERFECT;
@@ -587,10 +589,21 @@
static uint8_t check_next_tx_step(t30_state_t *s)
{
+ int res;
int more;
- if (t4_tx_more_pages(&(s->t4)) == 0)
+ res = t4_tx_next_page_has_different_format(&(s->t4));
+ if (res == 0)
+ {
+ span_log(&s->logging, SPAN_LOG_FLOW, "More pages to come with the same format\n");
return (s->local_interrupt_pending) ? T30_PRI_MPS : T30_MPS;
+ }
+ if (res > 0)
+ {
+ span_log(&s->logging, SPAN_LOG_FLOW, "More pages to come with a different format\n");
+ s->tx_start_page = t4_tx_get_current_page_in_file(&(s->t4)) + 1;
+ return (s->local_interrupt_pending) ? T30_PRI_EOM : T30_EOM;
+ }
/* Call a user handler, if one is set, to check if another document is to be sent.
If so, we send an EOM, rather than an EOP. Then we will renegotiate, and the new
document will begin. */
@@ -5778,7 +5791,8 @@
t->error_correcting_mode = s->error_correcting_mode;
t->error_correcting_mode_retries = s->error_correcting_mode_retries;
t4_get_transfer_statistics(&s->t4, &stats);
- t->pages_transferred = stats.pages_transferred;
+ t->pages_tx = s->ecm_tx_page;
+ t->pages_rx = s->ecm_rx_page;
t->pages_in_file = stats.pages_in_file;
t->width = stats.width;
t->length = stats.length;
@@ -5833,6 +5847,7 @@
s->far_end_detected = FALSE;
s->timer_t0_t1 = ms_to_samples(DEFAULT_TIMER_T0);
release_resources(s);
+ /* The ECM page number is only reset at call establishment */
s->ecm_rx_page = 0;
s->ecm_tx_page = 0;
return 0;
Modified: freeswitch/trunk/libs/spandsp/src/t4.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t4.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t4.c Fri Feb 20 12:30:05 2009
@@ -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: t4.c,v 1.125 2009/02/16 09:57:22 steveu Exp $
+ * $Id: t4.c,v 1.126 2009/02/20 12:34:20 steveu Exp $
*/
/*
@@ -239,8 +239,8 @@
/* Set the total pages to 1. For any one page document we will get this
right. For multi-page documents we will need to come back and fill in
the right answer when we know it. */
- TIFFSetField(t->tiff_file, TIFFTAG_PAGENUMBER, s->pages_transferred++, 1);
- s->pages_in_file = s->pages_transferred;
+ TIFFSetField(t->tiff_file, TIFFTAG_PAGENUMBER, s->current_page++, 1);
+ s->pages_in_file = s->current_page;
if (t->output_compression == COMPRESSION_CCITT_T4)
{
if (s->bad_rows)
@@ -301,8 +301,6 @@
{ -1.00f, -1, -1}
};
uint16_t res_unit;
- uint16_t photo_metric;
- uint16_t fill_order;
uint32_t parm;
float x_resolution;
float y_resolution;
@@ -327,16 +325,14 @@
TIFFGetField(t->tiff_file, TIFFTAG_YRESOLUTION, &y_resolution);
res_unit = RESUNIT_INCH;
TIFFGetField(t->tiff_file, TIFFTAG_RESOLUTIONUNIT, &res_unit);
- photo_metric = PHOTOMETRIC_MINISWHITE;
- TIFFGetField(t->tiff_file, TIFFTAG_PHOTOMETRIC, &photo_metric);
- if (photo_metric != PHOTOMETRIC_MINISWHITE)
+ t->photo_metric = PHOTOMETRIC_MINISWHITE;
+ TIFFGetField(t->tiff_file, TIFFTAG_PHOTOMETRIC, &t->photo_metric);
+ if (t->photo_metric != PHOTOMETRIC_MINISWHITE)
span_log(&s->logging, SPAN_LOG_FLOW, "%s: Photometric needs swapping.\n", s->file);
- t->photo_metric = photo_metric;
- fill_order = FILLORDER_LSB2MSB;
- TIFFGetField(t->tiff_file, TIFFTAG_FILLORDER, &fill_order);
- if (fill_order != FILLORDER_LSB2MSB)
+ t->fill_order = FILLORDER_LSB2MSB;
+ TIFFGetField(t->tiff_file, TIFFTAG_FILLORDER, &t->fill_order);
+ if (t->fill_order != FILLORDER_LSB2MSB)
span_log(&s->logging, SPAN_LOG_FLOW, "%s: Fill order needs swapping.\n", s->file);
- t->fill_order = fill_order;
/* Allow a little range for the X resolution in centimeters. The spec doesn't pin down the
precise value. The other value should be exact. */
@@ -367,6 +363,92 @@
}
/*- End of function --------------------------------------------------------*/
+static int test_tiff_directory_info(t4_state_t *s)
+{
+ static const struct
+ {
+ float resolution;
+ int code;
+ } x_res_table[] =
+ {
+ { 102.0f/CM_PER_INCH, T4_X_RESOLUTION_R4},
+ { 204.0f/CM_PER_INCH, T4_X_RESOLUTION_R8},
+ { 300.0f/CM_PER_INCH, T4_X_RESOLUTION_300},
+ { 408.0f/CM_PER_INCH, T4_X_RESOLUTION_R16},
+ { 600.0f/CM_PER_INCH, T4_X_RESOLUTION_600},
+ { 800.0f/CM_PER_INCH, T4_X_RESOLUTION_800},
+ {1200.0f/CM_PER_INCH, T4_X_RESOLUTION_1200},
+ { -1.00f, -1}
+ };
+ static const struct
+ {
+ float resolution;
+ int code;
+ int max_rows_to_next_1d_row;
+ } y_res_table[] =
+ {
+ { 38.50f, T4_Y_RESOLUTION_STANDARD, 2},
+ { 77.00f, T4_Y_RESOLUTION_FINE, 4},
+ { 300.0f/CM_PER_INCH, T4_Y_RESOLUTION_300, 6},
+ { 154.00f, T4_Y_RESOLUTION_SUPERFINE, 8},
+ { 600.0f/CM_PER_INCH, T4_Y_RESOLUTION_600, 12},
+ { 800.0f/CM_PER_INCH, T4_Y_RESOLUTION_800, 16},
+ {1200.0f/CM_PER_INCH, T4_Y_RESOLUTION_1200, 24},
+ { -1.00f, -1, -1}
+ };
+ uint16_t res_unit;
+ uint32_t parm;
+ float x_resolution;
+ float y_resolution;
+ int i;
+ t4_tiff_state_t *t;
+
+ t = &s->tiff;
+ parm = 0;
+ TIFFGetField(t->tiff_file, TIFFTAG_BITSPERSAMPLE, &parm);
+ if (parm != 1)
+ return -1;
+ parm = 0;
+ TIFFGetField(t->tiff_file, TIFFTAG_IMAGEWIDTH, &parm);
+ if (s->image_width != parm)
+ {
+printf("Width changed\n");
+ return 1;
+ }
+ x_resolution = 0.0f;
+ TIFFGetField(t->tiff_file, TIFFTAG_XRESOLUTION, &x_resolution);
+ y_resolution = 0.0f;
+ TIFFGetField(t->tiff_file, TIFFTAG_YRESOLUTION, &y_resolution);
+ res_unit = RESUNIT_INCH;
+ TIFFGetField(t->tiff_file, TIFFTAG_RESOLUTIONUNIT, &res_unit);
+
+ /* Allow a little range for the X resolution in centimeters. The spec doesn't pin down the
+ precise value. The other value should be exact. */
+ /* Treat everything we can't match as R8. Most FAXes are this resolution anyway. */
+ for (i = 0; x_res_table[i].code > 0; i++)
+ {
+ if (test_resolution(res_unit, x_resolution, x_res_table[i].resolution))
+ break;
+ }
+ if (s->x_resolution != x_res_table[i].code)
+ {
+printf("X-res changed\n");
+ return 1;
+ }
+ for (i = 0; y_res_table[i].code > 0; i++)
+ {
+ if (test_resolution(res_unit, y_resolution, y_res_table[i].resolution))
+ break;
+ }
+ if (s->y_resolution != y_res_table[i].code)
+ {
+printf("Y-res changed\n");
+ return 1;
+ }
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
static int get_tiff_total_pages(t4_state_t *s)
{
int max;
@@ -378,7 +460,7 @@
while (TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) max))
max++;
/* Back to the previous page */
- if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
+ if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->current_page))
return -1;
return max;
}
@@ -460,15 +542,15 @@
t = &s->tiff;
/* Perform any operations needed to tidy up a written TIFF file before
closure. */
- if (s->pages_transferred > 1)
+ if (s->current_page > 1)
{
/* We need to edit the TIFF directories. Until now we did not know
the total page count, so the TIFF file currently says one. Now we
need to set the correct total page count associated with each page. */
- for (i = 0; i < s->pages_transferred; i++)
+ for (i = 0; i < s->current_page; i++)
{
TIFFSetDirectory(t->tiff_file, (tdir_t) i);
- TIFFSetField(t->tiff_file, TIFFTAG_PAGENUMBER, i, s->pages_transferred);
+ TIFFSetField(t->tiff_file, TIFFTAG_PAGENUMBER, i, s->current_page);
TIFFWriteDirectory(t->tiff_file);
}
}
@@ -478,7 +560,7 @@
{
/* Try not to leave a file behind, if we didn't receive any pages to
put in it. */
- if (s->pages_transferred == 0)
+ if (s->current_page == 0)
remove(s->file);
free((char *) s->file);
}
@@ -501,6 +583,12 @@
}
/*- End of function --------------------------------------------------------*/
+static int test_tiff_directory_info(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
static int open_tiff_input_file(t4_state_t *s, const char *file)
{
return 0;
@@ -1326,7 +1414,7 @@
value to ensure it will be seen as changing when the real value is used. */
s->bytes_per_row = 0;
- s->pages_transferred = 0;
+ s->current_page = 0;
s->pages_in_file = 0;
s->start_page = 0;
s->stop_page = INT_MAX;
@@ -1866,9 +1954,12 @@
if (open_tiff_input_file(s, file) < 0)
return NULL;
s->file = strdup(file);
+ s->current_page =
s->start_page = (start_page >= 0) ? start_page : 0;
s->stop_page = (stop_page >= 0) ? stop_page : INT_MAX;
+ if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->current_page))
+ return -1;
if (get_tiff_directory_info(s))
{
close_tiff_input_file(s);
@@ -1877,7 +1968,6 @@
s->rows_to_next_1d_row = s->max_rows_to_next_1d_row - 1;
- s->pages_transferred = s->start_page;
s->pages_in_file = -1;
run_space = (s->image_width + 4)*sizeof(uint32_t);
@@ -1937,7 +2027,7 @@
tm.tm_min,
s->header_info,
s->tiff.local_ident,
- s->pages_transferred + 1);
+ s->current_page + 1);
}
/*- End of function --------------------------------------------------------*/
@@ -1950,24 +2040,24 @@
int row_bufptr;
int run_space;
int len;
- int this_image_width;
+ int old_image_width;
char *t;
char header[132 + 1];
uint8_t *bufptr8;
uint32_t *bufptr;
- span_log(&s->logging, SPAN_LOG_FLOW, "Start tx page %d\n", s->pages_transferred);
- if (s->pages_transferred > s->stop_page)
+ span_log(&s->logging, SPAN_LOG_FLOW, "Start tx page %d\n", s->current_page);
+ if (s->current_page > s->stop_page)
return -1;
if (s->tiff.tiff_file == NULL)
return -1;
- this_image_width = 0;
+ old_image_width = s->image_width;
if (s->row_read_handler == NULL)
{
#if defined(HAVE_LIBTIFF)
- if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
+ if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->current_page))
return -1;
- TIFFGetField(s->tiff.tiff_file, TIFFTAG_IMAGEWIDTH, &this_image_width);
+ get_tiff_directory_info(s);
#endif
}
s->image_size = 0;
@@ -1977,10 +2067,9 @@
s->rows_to_next_1d_row = s->max_rows_to_next_1d_row - 1;
/* Allow for pages being of different width. */
- run_space = (this_image_width + 4)*sizeof(uint32_t);
- if (this_image_width != s->image_width)
+ run_space = (s->image_width + 4)*sizeof(uint32_t);
+ if (old_image_width != s->image_width)
{
- s->image_width = this_image_width;
s->bytes_per_row = (s->image_width + 7)/8;
if ((bufptr = (uint32_t *) realloc(s->cur_runs, run_space)) == NULL)
@@ -2073,13 +2162,13 @@
}
if (s->line_encoding == T4_COMPRESSION_ITU_T6)
{
- /* Attach an EOFB (end of facsimile block) to the end of the page */
+ /* Attach an EOFB (end of facsimile block == 2 x EOLs) to the end of the page */
for (i = 0; i < EOLS_TO_END_T6_TX_PAGE; i++)
encode_eol(s);
}
else
{
- /* Attach a return to control (RTC == 6 x EOLs) to the end of the page */
+ /* Attach an RTC (return to control == 6 x EOLs) to the end of the page */
s->row_is_2d = FALSE;
for (i = 0; i < EOLS_TO_END_T4_TX_PAGE; i++)
encode_eol(s);
@@ -2095,27 +2184,20 @@
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) t4_tx_more_pages(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_next_page_has_different_format(t4_state_t *s)
{
- span_log(&s->logging, SPAN_LOG_FLOW, "Checking for the existance of page %d\n", s->pages_transferred + 1);
- if (s->pages_transferred >= s->stop_page)
- return -1;
- if (s->tiff.tiff_file == NULL)
+ span_log(&s->logging, SPAN_LOG_FLOW, "Checking for the existance of page %d\n", s->current_page + 1);
+ if (s->current_page >= s->stop_page)
return -1;
- if (s->pages_in_file >= 0)
- {
- if (s->pages_transferred + 1 >= s->pages_in_file)
- return -1;
- }
- else
+ if (s->row_read_handler == NULL)
{
- if (s->row_read_handler == NULL)
- {
#if defined(HAVE_LIBTIFF)
- if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred + 1))
- return -1;
+ if (s->tiff.tiff_file == NULL)
+ return -1;
+ if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->current_page + 1))
+ return -1;
+ return test_tiff_directory_info(s);
#endif
- }
}
return 0;
}
@@ -2131,7 +2213,7 @@
SPAN_DECLARE(int) t4_tx_end_page(t4_state_t *s)
{
- s->pages_transferred++;
+ s->current_page++;
return 0;
}
/*- End of function --------------------------------------------------------*/
@@ -2261,9 +2343,15 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) t4_tx_get_current_page_in_file(t4_state_t *s)
+{
+ return s->current_page;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(void) t4_get_transfer_statistics(t4_state_t *s, t4_stats_t *t)
{
- t->pages_transferred = s->pages_transferred - s->start_page;
+ t->pages_transferred = s->current_page - s->start_page;
t->pages_in_file = s->pages_in_file;
t->width = s->image_width;
t->length = s->image_length;
Modified: freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am (original)
+++ freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am Fri Feb 20 12:30:05 2009
@@ -16,30 +16,33 @@
## 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.2 2008/09/10 16:55:15 steveu Exp $
+## $Id: Makefile.am,v 1.3 2009/02/20 12:34:20 steveu Exp $
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
PBM2G3 = pbmtog3
FAX2TIFF = fax2tiff
+TIFFCP = tiffcp
+
+ETSI_TEST_PAGES = etsi_300_242_a4_diago1.tif \
+ etsi_300_242_a4_diago2.tif \
+ etsi_300_242_a4_duration1.tif \
+ etsi_300_242_a4_duration2.tif \
+ etsi_300_242_a4_error.tif \
+ etsi_300_242_a4_impress.tif \
+ etsi_300_242_a4_impress_white.tif \
+ etsi_300_242_a4_stairstep.tif \
+ etsi_300_242_a4_white.tif \
+ etsi_300_242_a4_white_2p.tif
EXTRA_DIST =
-nobase_data_DATA = etsi_300_242_a4_diago1.tif \
- etsi_300_242_a4_diago2.tif \
- etsi_300_242_a4_duration1.tif \
- etsi_300_242_a4_duration2.tif \
- etsi_300_242_a4_error.tif \
- etsi_300_242_a4_impress.tif \
- etsi_300_242_a4_impress_white.tif \
- etsi_300_242_a4_stairstep.tif \
- etsi_300_242_a4_white.tif \
- etsi_300_242_a4_white_2p.tif
+nobase_data_DATA = ${ETSI_TEST_PAGES}
-noinst_PROGRAMS = generate_etsi_300_242_pages
+noinst_PROGRAMS = generate_etsi_300_242_pages
generate_etsi_300_242_pages_SOURCES = generate_etsi_300_242_pages.c
-generate_etsi_300_242_pages_LDADD = -ltiff
+generate_etsi_300_242_pages_LDADD = -lspandsp -ltiff
clean:
rm -f *.tif *.g3
@@ -50,14 +53,5 @@
.pbm.g3:
${PBM2G3} $*.pbm >$*.g3
-etsi_300_242_a4_diago1.tif \
-etsi_300_242_a4_diago2.tif \
-etsi_300_242_a4_duration1.tif \
-etsi_300_242_a4_duration2.tif \
-etsi_300_242_a4_error.tif \
-etsi_300_242_a4_impress.tif \
-etsi_300_242_a4_impress_white.tif \
-etsi_300_242_a4_stairstep.tif \
-etsi_300_242_a4_white.tif \
-etsi_300_242_a4_white_2p.tif: generate_etsi_300_242_pages$(EXEEXT)
+${ETSI_TEST_PAGES}: generate_etsi_300_242_pages$(EXEEXT)
./generate_etsi_300_242_pages$(EXEEXT)
Modified: freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c (original)
+++ freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: generate_etsi_300_242_pages.c,v 1.2 2008/09/10 16:55:15 steveu Exp $
+ * $Id: generate_etsi_300_242_pages.c,v 1.3 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -177,6 +177,9 @@
},
};
+int reverse_photo_metric = FALSE;
+int reverse_fill_order = FALSE;
+
static void clear_row(uint8_t buf[], int width)
{
memset(buf, 0, width/8 + 1);
@@ -245,6 +248,7 @@
uint8_t image_buffer[8192];
int row;
int start_pixel;
+ int i;
/* TSB-85 STAIRSTEP page. */
start_pixel = 0;
@@ -252,6 +256,13 @@
{
clear_row(image_buffer, 1728);
set_pixel_range(image_buffer, 1, start_pixel, start_pixel + 63);
+ if (reverse_photo_metric)
+ {
+ for (i = 0; i < 1728/8; i++)
+ image_buffer[i] = ~image_buffer[i];
+ }
+ if (reverse_fill_order)
+ bit_reverse(image_buffer, image_buffer, 1728/8);
if (TIFFWriteScanline(tiff_file, image_buffer, row, 0) < 0)
{
printf("Write error at row %d.\n", row);
@@ -571,9 +582,14 @@
TIFFSetField(tiff_file, TIFFTAG_SAMPLESPERPIXEL, 1);
TIFFSetField(tiff_file, TIFFTAG_ROWSPERSTRIP, -1L);
TIFFSetField(tiff_file, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
- TIFFSetField(tiff_file, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE);
- TIFFSetField(tiff_file, TIFFTAG_FILLORDER, FILLORDER_LSB2MSB);
-
+ if (reverse_photo_metric)
+ TIFFSetField(tiff_file, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
+ else
+ TIFFSetField(tiff_file, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE);
+ if (reverse_fill_order)
+ TIFFSetField(tiff_file, TIFFTAG_FILLORDER, FILLORDER_MSB2LSB);
+ else
+ TIFFSetField(tiff_file, TIFFTAG_FILLORDER, FILLORDER_LSB2MSB);
x_resolution = sequence[i].x_res/100.0f;
y_resolution = sequence[i].y_res/100.0f;
TIFFSetField(tiff_file, TIFFTAG_XRESOLUTION, floorf(x_resolution*2.54f + 0.5f));
Modified: freeswitch/trunk/libs/spandsp/test-data/itu/fax/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/spandsp/test-data/itu/fax/Makefile.am (original)
+++ freeswitch/trunk/libs/spandsp/test-data/itu/fax/Makefile.am Fri Feb 20 12:30:05 2009
@@ -16,72 +16,93 @@
## 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.3 2008/05/03 13:05:04 steveu Exp $
+## $Id: Makefile.am,v 1.4 2009/02/20 12:34:20 steveu Exp $
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
PBM2G3 = pbmtog3
FAX2TIFF = fax2tiff
+TIFFCP = tiffcp
-EXTRA_DIST = itu1.pbm \
- itu2.pbm \
- itu3.pbm \
- itu4.pbm \
- itu5.pbm \
- itu6.pbm \
- itu7.pbm \
- itu8.pbm \
- test1.pbm \
- test2.pbm \
- test3.pbm \
- test4.pbm
+ITU_TEST_PAGES_PBM = itu1.pbm \
+ itu2.pbm \
+ itu3.pbm \
+ itu4.pbm \
+ itu5.pbm \
+ itu6.pbm \
+ itu7.pbm \
+ itu8.pbm \
+ test1.pbm \
+ test2.pbm \
+ test3.pbm \
+ test4.pbm
+
+ITU_TEST_PAGES_G3 = itu1.g3 \
+ itu2.g3 \
+ itu3.g3 \
+ itu4.g3 \
+ itu5.g3 \
+ itu6.g3 \
+ itu7.g3 \
+ itu8.g3 \
+ test1.g3 \
+ test2.g3 \
+ test3.g3 \
+ test4.g3
+
+ITU_TEST_PAGES = itu1.tif \
+ itu2.tif \
+ itu3.tif \
+ itu4.tif \
+ itu5.tif \
+ itu6.tif \
+ itu7.tif \
+ itu8.tif \
+ test1.tif \
+ test2.tif \
+ test3.tif \
+ test4.tif
+
+MIXED_SIZE_PAGES = R1200_1200_A4.tif \
+ R1200_1200_B4.tif \
+ R1200_1200_A3.tif \
+ R600_1200_A4.tif \
+ R600_1200_B4.tif \
+ R600_1200_A3.tif \
+ R600_600_A4.tif \
+ R600_600_B4.tif \
+ R600_600_A3.tif \
+ R16_800_A4.tif \
+ R16_800_B4.tif \
+ R16_800_A3.tif \
+ R16_154_A4.tif \
+ R16_154_B4.tif \
+ R16_154_A3.tif \
+ R300_600_A4.tif \
+ R300_600_B4.tif \
+ R300_600_A3.tif \
+ R300_300_A4.tif \
+ R300_300_B4.tif \
+ R300_300_A3.tif \
+ R8_154_A4.tif \
+ R8_154_B4.tif \
+ R8_154_A3.tif \
+ R8_77_A4.tif \
+ R8_77_B4.tif \
+ R8_77_A3.tif \
+ R8_385_A4.tif \
+ R8_385_B4.tif \
+ R8_385_A3.tif
+
+EXTRA_DIST = ${ITU_TEST_PAGES_PBM}
nobase_data_DATA = itutests.tif \
- itu1.tif \
- itu2.tif \
- itu3.tif \
- itu4.tif \
- itu5.tif \
- itu6.tif \
- itu7.tif \
- itu8.tif \
- test1.tif \
- test2.tif \
- test3.tif \
- test4.tif \
+ ${ITU_TEST_PAGES} \
dithered.tif \
100pages.tif \
- R1200_1200_A4.tif \
- R1200_1200_B4.tif \
- R1200_1200_A3.tif \
- R600_1200_A4.tif \
- R600_1200_B4.tif \
- R600_1200_A3.tif \
- R600_600_A4.tif \
- R600_600_B4.tif \
- R600_600_A3.tif \
- R16_800_A4.tif \
- R16_800_B4.tif \
- R16_800_A3.tif \
- R16_154_A3.tif \
- R16_154_A4.tif \
- R16_154_B4.tif \
- R300_600_A4.tif \
- R300_600_B4.tif \
- R300_600_A3.tif \
- R300_300_A4.tif \
- R300_300_B4.tif \
- R300_300_A3.tif \
- R8_154_A3.tif \
- R8_154_A4.tif \
- R8_154_B4.tif \
- R8_77_A3.tif \
- R8_77_A4.tif \
- R8_77_B4.tif \
- R8_385_A3.tif \
- R8_385_A4.tif \
- R8_385_B4.tif
+ ${MIXED_SIZE_PAGES} \
+ mixed_size_pages.tif
noinst_PROGRAMS = generate_dithered_tif \
generate_sized_pages
@@ -95,22 +116,19 @@
clean:
rm -f *.tif *.g3
-itutests.tif: itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 \
- test1.g3 test2.g3 test3.g3 test4.g3
- $(FAX2TIFF) -M -o $@ itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 \
- test1.g3 test2.g3 test3.g3 test4.g3
+itutests.tif: ${ITU_TEST_PAGES_G3}
+ $(FAX2TIFF) -M -o $@ ${ITU_TEST_PAGES_G3}
-100pages.tif: itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 \
- test1.g3 test2.g3 test3.g3 test4.g3
+100pages.tif: ${ITU_TEST_PAGES_G3}
$(FAX2TIFF) -M -o $@ \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
- itu1.g3 itu2.g3 itu3.g3 itu4.g3 itu5.g3 itu6.g3 itu7.g3 itu8.g3 test1.g3 test2.g3 test3.g3 test4.g3 \
+ ${ITU_TEST_PAGES_G3} \
+ ${ITU_TEST_PAGES_G3} \
+ ${ITU_TEST_PAGES_G3} \
+ ${ITU_TEST_PAGES_G3} \
+ ${ITU_TEST_PAGES_G3} \
+ ${ITU_TEST_PAGES_G3} \
+ ${ITU_TEST_PAGES_G3} \
+ ${ITU_TEST_PAGES_G3} \
itu1.g3 itu2.g3 itu3.g3 itu4.g3
.g3.tif:
@@ -122,34 +140,8 @@
dithered.tif: generate_dithered_tif$(EXEEXT)
./generate_dithered_tif$(EXEEXT)
-R1200_1200_A4.tif \
-R1200_1200_B4.tif \
-R1200_1200_A3.tif \
-R600_1200_A4.tif \
-R600_1200_B4.tif \
-R600_1200_A3.tif \
-R600_600_A4.tif \
-R600_600_B4.tif \
-R600_600_A3.tif \
-R16_800_A4.tif \
-R16_800_B4.tif \
-R16_800_A3.tif \
-R16_154_A3.tif \
-R16_154_A4.tif \
-R16_154_B4.tif \
-R300_600_A4.tif \
-R300_600_B4.tif \
-R300_600_A3.tif \
-R300_300_A4.tif \
-R300_300_B4.tif \
-R300_300_A3.tif \
-R8_154_A3.tif \
-R8_154_A4.tif \
-R8_154_B4.tif \
-R8_77_A3.tif \
-R8_77_A4.tif \
-R8_77_B4.tif \
-R8_385_A3.tif \
-R8_385_A4.tif \
-R8_385_B4.tif: generate_sized_pages$(EXEEXT)
+${MIXED_SIZE_PAGES}: generate_sized_pages$(EXEEXT)
./generate_sized_pages$(EXEEXT)
+
+mixed_size_pages.tif: ${MIXED_SIZE_PAGES}
+ $(TIFFCP) ${MIXED_SIZE_PAGES} $@
Modified: freeswitch/trunk/libs/spandsp/tests/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/Makefile.am (original)
+++ freeswitch/trunk/libs/spandsp/tests/Makefile.am Fri Feb 20 12:30:05 2009
@@ -16,7 +16,7 @@
## 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.109 2009/01/30 05:35:18 steveu Exp $
+## $Id: Makefile.am,v 1.110 2009/02/20 12:34:20 steveu Exp $
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
@@ -165,7 +165,7 @@
fax_decode_SOURCES = fax_decode.c
fax_decode_LDADD = $(LIBDIR) -lspandsp
-fax_tests_SOURCES = fax_tests.c
+fax_tests_SOURCES = fax_tests.c fax_utils.c
fax_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
fsk_tests_SOURCES = fsk_tests.c
@@ -255,25 +255,25 @@
t4_tests_SOURCES = t4_tests.c
t4_tests_LDADD = $(LIBDIR) -lspandsp
-t31_tests_SOURCES = t31_tests.c media_monitor.cpp
+t31_tests_SOURCES = t31_tests.c fax_utils.c media_monitor.cpp
t31_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
t38_core_tests_SOURCES = t38_core_tests.c
t38_core_tests_LDADD = $(LIBDIR) -lspandsp
-t38_gateway_tests_SOURCES = t38_gateway_tests.c media_monitor.cpp
+t38_gateway_tests_SOURCES = t38_gateway_tests.c fax_utils.c media_monitor.cpp
t38_gateway_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
-t38_gateway_to_terminal_tests_SOURCES = t38_gateway_to_terminal_tests.c media_monitor.cpp
+t38_gateway_to_terminal_tests_SOURCES = t38_gateway_to_terminal_tests.c fax_utils.c media_monitor.cpp
t38_gateway_to_terminal_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
t38_non_ecm_buffer_tests_SOURCES = t38_non_ecm_buffer_tests.c
t38_non_ecm_buffer_tests_LDADD = $(LIBDIR) -lspandsp
-t38_terminal_tests_SOURCES = t38_terminal_tests.c media_monitor.cpp
+t38_terminal_tests_SOURCES = t38_terminal_tests.c fax_utils.c media_monitor.cpp
t38_terminal_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
-t38_terminal_to_gateway_tests_SOURCES = t38_terminal_to_gateway_tests.c media_monitor.cpp
+t38_terminal_to_gateway_tests_SOURCES = t38_terminal_to_gateway_tests.c fax_utils.c media_monitor.cpp
t38_terminal_to_gateway_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
time_scale_tests_SOURCES = time_scale_tests.c
@@ -285,7 +285,7 @@
tone_generate_tests_SOURCES = tone_generate_tests.c
tone_generate_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
-tsb85_tests_SOURCES = tsb85_tests.c fax_tester.c
+tsb85_tests_SOURCES = tsb85_tests.c fax_utils.c fax_tester.c
tsb85_tests_LDADD = -L$(top_builddir)/spandsp-sim -lspandsp-sim $(LIBDIR) -lspandsp
v17_tests_SOURCES = v17_tests.c line_model_monitor.cpp modem_monitor.cpp
Modified: freeswitch/trunk/libs/spandsp/tests/fax_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/fax_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/fax_tests.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fax_tests.c,v 1.100 2009/01/03 14:44:15 steveu Exp $
+ * $Id: fax_tests.c,v 1.101 2009/02/20 12:34:20 steveu Exp $
*/
/*! \page fax_tests_page FAX tests
@@ -48,6 +48,8 @@
#include "spandsp.h"
#include "spandsp-sim.h"
+#include "fax_utils.h"
+
#define SAMPLES_PER_CHUNK 160
#define INPUT_TIFF_FILE_NAME "../test-data/itu/fax/itutests.tif"
@@ -77,22 +79,12 @@
static int phase_b_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- const char *u;
-
- i = (intptr_t) user_data;
- if ((u = t30_get_rx_ident(s)))
- printf("%d: Phase B: remote ident '%s'\n", i, u);
- if ((u = t30_get_rx_sub_address(s)))
- printf("%d: Phase B: remote sub-address '%s'\n", i, u);
- if ((u = t30_get_rx_polled_sub_address(s)))
- printf("%d: Phase B: remote polled sub-address '%s'\n", i, u);
- if ((u = t30_get_rx_selective_polling_address(s)))
- printf("%d: Phase B: remote selective polling address '%s'\n", i, u);
- if ((u = t30_get_rx_sender_ident(s)))
- printf("%d: Phase B: remote sender ident '%s'\n", i, u);
- if ((u = t30_get_rx_password(s)))
- printf("%d: Phase B: remote password '%s'\n", i, u);
- printf("%d: Phase B handler on channel %d - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ char tag[20];
+
+ i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase B:", i);
+ printf("%c: Phase B handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -100,31 +92,14 @@
static int phase_d_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
-
- i = (intptr_t) user_data;
- t30_get_transfer_statistics(s, &t);
+ char tag[20];
- printf("%d: Phase D handler on channel %d - (0x%X) %s\n", i, i, result, t30_frametype(result));
- printf("%d: Phase D: bit rate %d\n", i, t.bit_rate);
- printf("%d: Phase D: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%d: Phase D: pages transferred %d\n", i, t.pages_transferred);
- printf("%d: Phase D: pages in the file %d\n", i, t.pages_in_file);
- printf("%d: Phase D: image size %d x %d\n", i, t.width, t.length);
- printf("%d: Phase D: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%d: Phase D: bad rows %d\n", i, t.bad_rows);
- printf("%d: Phase D: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%d: Phase D: bad ECM frames %d\n", i, t.error_correcting_mode_retries);
- printf("%d: Phase D: compression type %d\n", i, t.encoding);
- printf("%d: Phase D: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%d: Phase D: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%d: Phase D: remote ident '%s'\n", i, u);
-#if defined(WITH_SPANDSP_INTERNALS)
- printf("%d: Phase D: bits per row - min %d, max %d\n", i, s->t4.min_row_bits, s->t4.max_row_bits);
-#endif
+ i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase D:", i);
+ printf("%c: Phase D handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
if (use_receiver_not_ready)
t30_set_receiver_not_ready(s, 3);
@@ -160,34 +135,17 @@
{
int i;
t30_stats_t t;
- const char *u;
-
+ char tag[20];
+
i = (intptr_t) user_data;
- printf("%d: Phase E handler on channel %d - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
+ snprintf(tag, sizeof(tag), "%c: Phase E:", i);
+ printf("%c: Phase E handler on channel %c - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
t30_get_transfer_statistics(s, &t);
- printf("%d: Phase E: bit rate %d\n", i, t.bit_rate);
- printf("%d: Phase E: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%d: Phase E: pages transferred %d\n", i, t.pages_transferred);
- printf("%d: Phase E: pages in the file %d\n", i, t.pages_in_file);
- printf("%d: Phase E: image size %d x %d\n", i, t.width, t.length);
- printf("%d: Phase E: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%d: Phase E: bad rows %d\n", i, t.bad_rows);
- printf("%d: Phase E: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%d: Phase E: bad ECM frames %d\n", i, t.error_correcting_mode_retries);
- printf("%d: Phase E: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%d: Phase E: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%d: Phase E: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%d: Phase E: remote ident '%s'\n", i, u);
- if ((u = t30_get_rx_country(s)))
- printf("%d: Phase E: Remote was made in '%s'\n", i, u);
- if ((u = t30_get_rx_vendor(s)))
- printf("%d: Phase E: Remote was made by '%s'\n", i, u);
- if ((u = t30_get_rx_model(s)))
- printf("%d: Phase E: Remote is model '%s'\n", i, u);
- machines[i].succeeded = (result == T30_ERR_OK) && (t.pages_transferred == 12);
- machines[i].done = TRUE;
+ machines[i - 'A'].succeeded = (result == T30_ERR_OK) && (t.pages_tx == 12 || t.pages_rx == 12);
+ machines[i - 'A'].done = TRUE;
}
/*- End of function --------------------------------------------------------*/
@@ -200,7 +158,7 @@
int i;
i = (intptr_t) user_data;
- printf("%d: Real time frame handler on channel %d - %s, %s, length = %d\n",
+ printf("%c: Real time frame handler on channel %c - %s, %s, length = %d\n",
i,
i,
(direction) ? "line->T.30" : "T.30->line",
@@ -214,7 +172,7 @@
int i;
i = (intptr_t) user_data;
- printf("%d: Document handler on channel %d - event %d\n", i, i, event);
+ printf("%c: Document handler on channel %c - event %d\n", i, i, event);
return FALSE;
}
/*- End of function --------------------------------------------------------*/
@@ -419,6 +377,7 @@
{
sprintf(buf, "fax_tests_%d.tif", (mc->chan + 1)/2);
t30_set_rx_file(t30, buf, -1);
+ t30_set_rx_encoding(t30, T4_COMPRESSION_ITU_T6);
}
}
else
@@ -427,6 +386,7 @@
{
sprintf(buf, "fax_tests_%d.tif", (mc->chan + 1)/2);
t30_set_rx_file(t30, buf, -1);
+ t30_set_rx_encoding(t30, T4_COMPRESSION_ITU_T6);
}
else
{
@@ -436,16 +396,18 @@
t30_set_tx_file(t30, input_tiff_file_name, -1, -1);
}
}
- t30_set_phase_b_handler(t30, phase_b_handler, (void *) (intptr_t) mc->chan);
- t30_set_phase_d_handler(t30, phase_d_handler, (void *) (intptr_t) mc->chan);
- t30_set_phase_e_handler(t30, phase_e_handler, (void *) (intptr_t) mc->chan);
- t30_set_real_time_frame_handler(t30, real_time_frame_handler, (void *) (intptr_t) mc->chan);
- t30_set_document_handler(t30, document_handler, (void *) (intptr_t) mc->chan);
+ t30_set_phase_b_handler(t30, phase_b_handler, (void *) (intptr_t) mc->chan + 'A');
+ t30_set_phase_d_handler(t30, phase_d_handler, (void *) (intptr_t) mc->chan + 'A');
+ t30_set_phase_e_handler(t30, phase_e_handler, (void *) (intptr_t) mc->chan + 'A');
+ t30_set_real_time_frame_handler(t30, real_time_frame_handler, (void *) (intptr_t) mc->chan + 'A');
+ t30_set_document_handler(t30, document_handler, (void *) (intptr_t) mc->chan + 'A');
sprintf(mc->tag, "FAX-%d", j + 1);
logging = t30_get_logging_state(t30);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
span_log_set_tag(logging, mc->tag);
+ span_log_set_level(&t30->t4.logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
+ span_log_set_tag(&t30->t4.logging, mc->tag);
logging = fax_get_logging_state(mc->fax);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
Added: freeswitch/trunk/libs/spandsp/tests/fax_utils.c
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/spandsp/tests/fax_utils.c Fri Feb 20 12:30:05 2009
@@ -0,0 +1,111 @@
+/*
+ * SpanDSP - a series of DSP components for telephony
+ *
+ * fax_utils.c
+ *
+ * Written by Steve Underwood <steveu(a)coppice.org>
+ *
+ * Copyright (C) 2009 Steve Underwood
+ *
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * $Id: fax_utils.c,v 1.1 2009/02/20 12:34:20 steveu Exp $
+ */
+
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#include <assert.h>
+#include <audiofile.h>
+
+//#if defined(WITH_SPANDSP_INTERNALS)
+#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
+//#endif
+
+#include "spandsp.h"
+#include "spandsp-sim.h"
+#include "fax_utils.h"
+
+void log_tx_parameters(t30_state_t *s, const char *tag)
+{
+ const char *u;
+
+ if ((u = t30_get_tx_ident(s)))
+ printf("%s: Local ident '%s'\n", tag, u);
+ if ((u = t30_get_tx_sub_address(s)))
+ printf("%s: Local sub-address '%s'\n", tag, u);
+ if ((u = t30_get_tx_polled_sub_address(s)))
+ printf("%s: Local polled sub-address '%s'\n", tag, u);
+ if ((u = t30_get_tx_selective_polling_address(s)))
+ printf("%s: Local selective polling address '%s'\n", tag, u);
+ if ((u = t30_get_tx_sender_ident(s)))
+ printf("%s: Local sender ident '%s'\n", tag, u);
+ if ((u = t30_get_tx_password(s)))
+ printf("%s: Local password '%s'\n", tag, u);
+}
+/*- End of function --------------------------------------------------------*/
+
+void log_rx_parameters(t30_state_t *s, const char *tag)
+{
+ const char *u;
+
+ if ((u = t30_get_rx_ident(s)))
+ printf("%s: Remote ident '%s'\n", tag, u);
+ if ((u = t30_get_rx_sub_address(s)))
+ printf("%s: Remote sub-address '%s'\n", tag, u);
+ if ((u = t30_get_rx_polled_sub_address(s)))
+ printf("%s: Remote polled sub-address '%s'\n", tag, u);
+ if ((u = t30_get_rx_selective_polling_address(s)))
+ printf("%s: Remote selective polling address '%s'\n", tag, u);
+ if ((u = t30_get_rx_sender_ident(s)))
+ printf("%s: Remote sender ident '%s'\n", tag, u);
+ if ((u = t30_get_rx_password(s)))
+ printf("%s: Remote password '%s'\n", tag, u);
+ if ((u = t30_get_rx_country(s)))
+ printf("%s: Remote was made in '%s'\n", tag, u);
+ if ((u = t30_get_rx_vendor(s)))
+ printf("%s: Remote was made by '%s'\n", tag, u);
+ if ((u = t30_get_rx_model(s)))
+ printf("%s: Remote is model '%s'\n", tag, u);
+}
+/*- End of function --------------------------------------------------------*/
+
+void log_transfer_statistics(t30_state_t *s, const char *tag)
+{
+ t30_stats_t t;
+
+ t30_get_transfer_statistics(s, &t);
+ printf("%s: bit rate %d\n", tag, t.bit_rate);
+ printf("%s: ECM %s\n", tag, (t.error_correcting_mode) ? "on" : "off");
+ printf("%s: pages tx %d, pages rx %d\n", tag, t.pages_tx, t.pages_rx);
+ printf("%s: pages in the file %d\n", tag, t.pages_in_file);
+ printf("%s: image size %d x %d\n", tag, t.width, t.length);
+ printf("%s: image resolution %d x %d\n", tag, t.x_resolution, t.y_resolution);
+ printf("%s: bad rows %d, longest bad row run %d\n", tag, t.bad_rows, t.longest_bad_row_run);
+ printf("%s: bad ECM frames %d\n", tag, t.error_correcting_mode_retries);
+ printf("%s: compression type %d\n", tag, t.encoding);
+ printf("%s: image size %d bytes\n", tag, t.image_size);
+#if defined(WITH_SPANDSP_INTERNALS)
+ printf("%s: bits per row - min %d, max %d\n", tag, s->t4.min_row_bits, s->t4.max_row_bits);
+#endif
+}
+/*- End of function --------------------------------------------------------*/
+/*- End of file ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/t31_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/t31_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/t31_tests.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t31_tests.c,v 1.70 2009/02/02 13:05:28 steveu Exp $
+ * $Id: t31_tests.c,v 1.71 2009/02/20 12:38:37 steveu Exp $
*/
/*! \file */
@@ -61,14 +61,18 @@
#if defined(ENABLE_GUI)
#include "media_monitor.h"
#endif
+#include "fax_utils.h"
#define INPUT_FILE_NAME "../test-data/itu/fax/itu1.tif"
#define OUTPUT_FILE_NAME "t31.tif"
#define OUTPUT_WAVE_FILE_NAME "t31_tests.wav"
-#define DLE 0x10
-#define ETX 0x03
-#define SUB 0x1A
+enum
+{
+ ETX = 0x03,
+ DLE = 0x10,
+ SUB = 0x1A
+};
#define MANUFACTURER "www.soft-switch.org"
@@ -91,6 +95,7 @@
#define RESPONSE(b) {"", 0, b, sizeof(b) - 1}
#define FAST_RESPONSE(b) {NULL, -1, b, sizeof(b) - 1}
#define FAST_SEND(b) {(const char *) 1, -2, b, sizeof(b) - 1}
+#define FAST_SEND_TCF(b) {(const char *) 2, -2, b, sizeof(b) - 1}
static const struct command_response_s fax_send_test_seq[] =
{
@@ -121,7 +126,7 @@
EXCHANGE("AT+FTS=8\r", "\r\nOK\r\n"),
EXCHANGE("AT+FTM=96\r", "\r\nCONNECT\r\n"),
//<TCF data pattern>
- FAST_SEND("\r\nOK\r\n"),
+ FAST_SEND_TCF("\r\nOK\r\n"),
EXCHANGE("AT+FRH=3\r", "\r\nCONNECT\r\n"),
//<CFR frame data>
RESPONSE("\xFF\x13\x84\xEA\x7D\x10\x03"),
@@ -206,9 +211,12 @@
static int phase_b_handler(t30_state_t *s, void *user_data, int result)
{
int i;
-
+ char tag[20];
+
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase B:", i);
printf("%c: Phase B handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -216,28 +224,14 @@
static int phase_d_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase D:", i);
printf("%c: Phase D handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
- t30_get_transfer_statistics(s, &t);
- printf("%c: Phase D: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase D: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase D: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase D: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase D: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase D: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase D: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase D: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase D: image size %d\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase D: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase D: remote ident '%s'\n", i, u);
-#if defined(WITH_SPANDSP_INTERNALS)
- printf("%c: Phase D: bits per row - min %d, max %d\n", i, s->t4.min_row_bits, s->t4.max_row_bits);
-#endif
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -245,9 +239,14 @@
static void phase_e_handler(t30_state_t *s, void *user_data, int result)
{
int i;
+ char tag[20];
i = (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase E:", i);
printf("Phase E handler on channel %c\n", i);
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
//exit(0);
}
/*- End of function --------------------------------------------------------*/
@@ -404,6 +403,7 @@
{
t38_terminal_state_t *t38_state;
int fast_send;
+ int fast_send_tcf;
int fast_blocks;
uint8_t fast_buf[1000];
int msg_len;
@@ -417,6 +417,7 @@
t30_state_t *t30;
t38_core_state_t *t38_core;
logging_state_t *logging;
+ int i;
t38_version = 1;
without_pacing = FALSE;
@@ -503,6 +504,7 @@
span_log_set_tag(logging, "T.38");
fast_send = FALSE;
+ fast_send_tcf = TRUE;
fast_blocks = 0;
kick = TRUE;
#if defined(ENABLE_GUI)
@@ -535,7 +537,7 @@
if (kick)
{
kick = FALSE;
- if (fax_test_seq[test_seq_ptr].command > (const char *) 1)
+ if (fax_test_seq[test_seq_ptr].command > (const char *) 2)
{
if (fax_test_seq[test_seq_ptr].command[0])
{
@@ -545,15 +547,52 @@
}
else
{
- printf("Fast send\n");
- fast_send = TRUE;
- fast_blocks = 100;
+ if (fax_test_seq[test_seq_ptr].command == (const char *) 2)
+ {
+ printf("Fast send TCF\n");
+ fast_send = TRUE;
+ fast_send_tcf = TRUE;
+ fast_blocks = 100;
+ }
+ else
+ {
+ printf("Fast send image\n");
+ fast_send = TRUE;
+ fast_send_tcf = FALSE;
+ fast_blocks = 100;
+ }
}
}
if (fast_send)
{
/* Send fast modem data */
- memset(fast_buf, 0, 36);
+ if (fast_send_tcf)
+ {
+ memset(fast_buf, 0, 36);
+ }
+ else
+ {
+ if (fast_blocks == 1)
+ {
+ /* Create the end of page condition */
+ for (i = 0; i < 36; i += 2)
+ {
+ fast_buf[i] = 0x00;
+ fast_buf[i + 1] = 0x80;
+ }
+ }
+ else
+ {
+ /* Create a chunk of white page */
+ for (i = 0; i < 36; i += 4)
+ {
+ fast_buf[i] = 0x00;
+ fast_buf[i + 1] = 0x80;
+ fast_buf[i + 2] = 0xB2;
+ fast_buf[i + 3] = 0x01;
+ }
+ }
+ }
if (fast_blocks == 1)
{
/* Insert EOLs */
@@ -625,10 +664,12 @@
AFfilehandle wave_handle;
AFfilehandle in_handle;
int fast_send;
+ int fast_send_tcf;
int fast_blocks;
uint8_t fast_buf[1000];
t30_state_t *t30;
logging_state_t *logging;
+ int i;
wave_handle = AF_NULL_FILEHANDLE;
if (log_audio)
@@ -694,6 +735,7 @@
span_log_set_tag(logging, "FAX");
fast_send = FALSE;
+ fast_send_tcf = TRUE;
fast_blocks = 0;
kick = TRUE;
while (!done)
@@ -701,7 +743,7 @@
if (kick)
{
kick = FALSE;
- if (fax_test_seq[test_seq_ptr].command > (const char *) 1)
+ if (fax_test_seq[test_seq_ptr].command > (const char *) 2)
{
if (fax_test_seq[test_seq_ptr].command[0])
{
@@ -711,15 +753,52 @@
}
else
{
- printf("Fast send\n");
- fast_send = TRUE;
- fast_blocks = 100;
+ if (fax_test_seq[test_seq_ptr].command == (const char *) 2)
+ {
+ printf("Fast send TCF\n");
+ fast_send = TRUE;
+ fast_send_tcf = TRUE;
+ fast_blocks = 100;
+ }
+ else
+ {
+ printf("Fast send image\n");
+ fast_send = TRUE;
+ fast_send_tcf = FALSE;
+ fast_blocks = 100;
+ }
}
}
if (fast_send)
{
/* Send fast modem data */
- memset(fast_buf, 0, 36);
+ if (fast_send_tcf)
+ {
+ memset(fast_buf, 0, 36);
+ }
+ else
+ {
+ if (fast_blocks == 1)
+ {
+ /* Create the end of page condition */
+ for (i = 0; i < 36; i += 2)
+ {
+ fast_buf[i] = 0x00;
+ fast_buf[i + 1] = 0x80;
+ }
+ }
+ else
+ {
+ /* Create a chunk of white page */
+ for (i = 0; i < 36; i += 4)
+ {
+ fast_buf[i] = 0x00;
+ fast_buf[i + 1] = 0x80;
+ fast_buf[i + 2] = 0xB2;
+ fast_buf[i + 3] = 0x01;
+ }
+ }
+ }
if (fast_blocks == 1)
{
/* Insert EOLs */
@@ -780,6 +859,9 @@
if (fax_rx(fax_state, t31_amp, SAMPLES_PER_CHUNK))
break;
+ span_log_bump_samples(&fax_state->logging, SAMPLES_PER_CHUNK);
+ span_log_bump_samples(&t30->logging, SAMPLES_PER_CHUNK);
+
if (log_audio)
{
outframes = afWriteFrames(wave_handle, AF_DEFAULT_TRACK, out_amp, SAMPLES_PER_CHUNK);
Modified: freeswitch/trunk/libs/spandsp/tests/t38_gateway_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/t38_gateway_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/t38_gateway_tests.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_gateway_tests.c,v 1.79 2009/01/07 12:50:53 steveu Exp $
+ * $Id: t38_gateway_tests.c,v 1.80 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -73,6 +73,7 @@
#if defined(ENABLE_GUI)
#include "media_monitor.h"
#endif
+#include "fax_utils.h"
#define SAMPLES_PER_CHUNK 160
@@ -102,9 +103,12 @@
static int phase_b_handler(t30_state_t *s, void *user_data, int result)
{
int i;
-
+ char tag[20];
+
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase B:", i);
printf("%c: Phase B handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -112,28 +116,14 @@
static int phase_d_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase D:", i);
printf("%c: Phase D handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
- t30_get_transfer_statistics(s, &t);
- printf("%c: Phase D: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase D: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase D: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase D: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase D: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase D: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase D: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase D: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase D: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase D: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase D: remote ident '%s'\n", i, u);
-#if defined(WITH_SPANDSP_INTERNALS)
- printf("%c: Phase D: bits per row - min %d, max %d\n", i, s->t4.min_row_bits, s->t4.max_row_bits);
-#endif
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -142,25 +132,16 @@
{
int i;
t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase E:", i);
printf("%c: Phase E handler on channel %c - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
t30_get_transfer_statistics(s, &t);
- printf("%c: Phase E: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase E: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase E: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase E: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase E: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase E: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase E: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase E: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase E: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase E: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase E: remote ident '%s'\n", i, u);
- succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_transferred == 12);
+ succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_tx == 12 || t.pages_rx == 12);
done[i - 'A'] = TRUE;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/t38_gateway_to_terminal_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/t38_gateway_to_terminal_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/t38_gateway_to_terminal_tests.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_gateway_to_terminal_tests.c,v 1.63 2009/01/07 12:50:53 steveu Exp $
+ * $Id: t38_gateway_to_terminal_tests.c,v 1.64 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -73,6 +73,7 @@
#if defined(ENABLE_GUI)
#include "media_monitor.h"
#endif
+#include "fax_utils.h"
#define SAMPLES_PER_CHUNK 160
@@ -97,9 +98,12 @@
static int phase_b_handler(t30_state_t *s, void *user_data, int result)
{
int i;
-
+ char tag[20];
+
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase B:", i);
printf("%c: Phase B handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -107,28 +111,14 @@
static int phase_d_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase D:", i);
printf("%c: Phase D handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
- t30_get_transfer_statistics(s, &t);
- printf("%c: Phase D: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase D: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase D: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase D: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase D: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase D: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase D: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase D: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase D: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase D: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase D: remote ident '%s'\n", i, u);
-#if defined(WITH_SPANDSP_INTERNALS)
- printf("%c: Phase D: bits per row - min %d, max %d\n", i, s->t4.min_row_bits, s->t4.max_row_bits);
-#endif
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -137,25 +127,16 @@
{
int i;
t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase E:", i);
printf("%c: Phase E handler on channel %c - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
t30_get_transfer_statistics(s, &t);
- printf("%c: Phase E: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase E: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase E: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase E: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase E: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase E: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase E: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase E: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase E: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase E: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase E: remote ident '%s'\n", i, u);
- succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_transferred == 12);
+ succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_tx == 12 || t.pages_rx == 12);
done[i - 'A'] = TRUE;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/t38_terminal_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/t38_terminal_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/t38_terminal_tests.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_terminal_tests.c,v 1.64 2009/01/07 12:50:53 steveu Exp $
+ * $Id: t38_terminal_tests.c,v 1.65 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -73,6 +73,7 @@
#if defined(ENABLE_GUI)
#include "media_monitor.h"
#endif
+#include "fax_utils.h"
#define SAMPLES_PER_CHUNK 160
@@ -95,9 +96,12 @@
static int phase_b_handler(t30_state_t *s, void *user_data, int result)
{
int i;
-
+ char tag[20];
+
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase B:", i);
printf("%c: Phase B handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -105,28 +109,14 @@
static int phase_d_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase D:", i);
printf("%c: Phase D handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
- t30_get_transfer_statistics(s, &t);
- printf("%c: Phase D: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase D: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase D: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase D: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase D: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase D: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase D: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase D: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase D: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase D: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase D: remote ident '%s'\n", i, u);
-#if defined(WITH_SPANDSP_INTERNALS)
- printf("%c: Phase D: bits per row - min %d, max %d\n", i, s->t4.min_row_bits, s->t4.max_row_bits);
-#endif
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -135,25 +125,16 @@
{
int i;
t30_stats_t t;
- const char *u;
-
+ char tag[20];
+
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase E:", i);
printf("%c: Phase E handler on channel %c - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
t30_get_transfer_statistics(s, &t);
- printf("%c: Phase E: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase E: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase E: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase E: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase E: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase E: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase E: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase E: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase E: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase E: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase E: remote ident '%s'\n", i, u);
- succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_transferred == 12);
+ succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_tx == 12 || t.pages_rx == 12);
//done[i - 'A'] = TRUE;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/t38_terminal_to_gateway_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/t38_terminal_to_gateway_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/t38_terminal_to_gateway_tests.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t38_terminal_to_gateway_tests.c,v 1.62 2009/01/07 12:50:53 steveu Exp $
+ * $Id: t38_terminal_to_gateway_tests.c,v 1.63 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -73,6 +73,7 @@
#if defined(ENABLE_GUI)
#include "media_monitor.h"
#endif
+#include "fax_utils.h"
#define SAMPLES_PER_CHUNK 160
@@ -97,9 +98,12 @@
static int phase_b_handler(t30_state_t *s, void *user_data, int result)
{
int i;
-
+ char tag[20];
+
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase B:", i);
printf("%c: Phase B handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -107,28 +111,14 @@
static int phase_d_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase D:", i);
printf("%c: Phase D handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
- t30_get_transfer_statistics(s, &t);
- printf("%c: Phase D: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase D: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase D: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase D: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase D: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase D: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase D: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase D: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase D: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase D: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase D: remote ident '%s'\n", i, u);
-#if defined(WITH_SPANDSP_INTERNALS)
- printf("%c: Phase D: bits per row - min %d, max %d\n", i, s->t4.min_row_bits, s->t4.max_row_bits);
-#endif
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
return T30_ERR_OK;
}
/*- End of function --------------------------------------------------------*/
@@ -137,25 +127,16 @@
{
int i;
t30_stats_t t;
- const char *u;
+ char tag[20];
i = (int) (intptr_t) user_data;
+ snprintf(tag, sizeof(tag), "%c: Phase E:", i);
printf("%c: Phase E handler on channel %c - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
t30_get_transfer_statistics(s, &t);
- printf("%c: Phase E: bit rate %d\n", i, t.bit_rate);
- printf("%c: Phase E: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%c: Phase E: pages transferred %d\n", i, t.pages_transferred);
- printf("%c: Phase E: image size %d x %d\n", i, t.width, t.length);
- printf("%c: Phase E: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%c: Phase E: bad rows %d\n", i, t.bad_rows);
- printf("%c: Phase E: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%c: Phase E: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%c: Phase E: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%c: Phase E: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%c: Phase E: remote ident '%s'\n", i, u);
- succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_transferred == 12);
+ succeeded[i - 'A'] = (result == T30_ERR_OK) && (t.pages_tx == 12 || t.pages_rx == 12);
done[i - 'A'] = TRUE;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/t4_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/t4_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/t4_tests.c Fri Feb 20 12:30:05 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t4_tests.c,v 1.66 2009/02/10 13:06:47 steveu Exp $
+ * $Id: t4_tests.c,v 1.67 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -292,7 +292,7 @@
printf("Failed to init T.4 rx\n");
exit(2);
}
-
+ span_log_set_level(&receive_state.logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
t4_rx_set_rx_encoding(&receive_state, compression);
t4_rx_set_x_resolution(&receive_state, T4_X_RESOLUTION_R8);
//t4_rx_set_y_resolution(&receive_state, T4_Y_RESOLUTION_FINE);
@@ -365,6 +365,7 @@
printf("Failed to init T.4 send\n");
exit(2);
}
+ span_log_set_level(&send_state.logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
t4_tx_set_min_row_bits(&send_state, min_row_bits);
t4_tx_set_local_ident(&send_state, "111 2222 3333");
@@ -374,6 +375,7 @@
printf("Failed to init T.4 rx\n");
exit(2);
}
+ span_log_set_level(&receive_state.logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
t4_rx_set_x_resolution(&receive_state, t4_tx_get_x_resolution(&send_state));
t4_rx_set_y_resolution(&receive_state, t4_tx_get_y_resolution(&send_state));
t4_rx_set_image_width(&receive_state, t4_tx_get_image_width(&send_state));
@@ -521,6 +523,7 @@
printf("Failed to init T.4 tx\n");
exit(2);
}
+ span_log_set_level(&send_state.logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
t4_tx_set_row_read_handler(&send_state, row_read_handler, NULL);
t4_tx_set_min_row_bits(&send_state, min_row_bits);
t4_tx_set_local_ident(&send_state, "111 2222 3333");
@@ -531,6 +534,7 @@
printf("Failed to init T.4 rx\n");
exit(2);
}
+ span_log_set_level(&receive_state.logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
t4_rx_set_row_write_handler(&receive_state, row_write_handler, NULL);
t4_rx_set_x_resolution(&receive_state, t4_tx_get_x_resolution(&send_state));
t4_rx_set_y_resolution(&receive_state, t4_tx_get_y_resolution(&send_state));
Modified: freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c Fri Feb 20 12:30:05 2009
@@ -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: tsb85_tests.c,v 1.29 2009/02/10 13:06:47 steveu Exp $
+ * $Id: tsb85_tests.c,v 1.30 2009/02/20 12:34:20 steveu Exp $
*/
/*! \file */
@@ -67,6 +67,7 @@
#include "spandsp-sim.h"
#include "fax_tester.h"
+#include "fax_utils.h"
#define OUTPUT_TIFF_FILE_NAME "tsb85.tif"
@@ -107,10 +108,10 @@
status = T30_ERR_OK;
if ((u = t30_get_rx_ident(s)))
{
- printf("%d: Phase B: remote ident '%s'\n", i, u);
+ printf("%c: Phase B: remote ident '%s'\n", i, u);
if (expected_rx_info.ident[0] && strcmp(expected_rx_info.ident, u))
{
- printf("%d: Phase B: remote ident incorrect! - expected '%s'\n", i, expected_rx_info.ident);
+ printf("%c: Phase B: remote ident incorrect! - expected '%s'\n", i, expected_rx_info.ident);
status = T30_ERR_IDENT_UNACCEPTABLE;
}
}
@@ -118,16 +119,16 @@
{
if (expected_rx_info.ident[0])
{
- printf("%d: Phase B: remote ident missing!\n", i);
+ printf("%c: Phase B: remote ident missing!\n", i);
status = T30_ERR_IDENT_UNACCEPTABLE;
}
}
if ((u = t30_get_rx_sub_address(s)))
{
- printf("%d: Phase B: remote sub-address '%s'\n", i, u);
+ printf("%c: Phase B: remote sub-address '%s'\n", i, u);
if (expected_rx_info.sub_address[0] && strcmp(expected_rx_info.sub_address, u))
{
- printf("%d: Phase B: remote sub-address incorrect! - expected '%s'\n", i, expected_rx_info.sub_address);
+ printf("%c: Phase B: remote sub-address incorrect! - expected '%s'\n", i, expected_rx_info.sub_address);
status = T30_ERR_SUB_UNACCEPTABLE;
}
}
@@ -135,16 +136,16 @@
{
if (expected_rx_info.sub_address[0])
{
- printf("%d: Phase B: remote sub-address missing!\n", i);
+ printf("%c: Phase B: remote sub-address missing!\n", i);
status = T30_ERR_SUB_UNACCEPTABLE;
}
}
if ((u = t30_get_rx_polled_sub_address(s)))
{
- printf("%d: Phase B: remote polled sub-address '%s'\n", i, u);
+ printf("%c: Phase B: remote polled sub-address '%s'\n", i, u);
if (expected_rx_info.polled_sub_address[0] && strcmp(expected_rx_info.polled_sub_address, u))
{
- printf("%d: Phase B: remote polled sub-address incorrect! - expected '%s'\n", i, expected_rx_info.polled_sub_address);
+ printf("%c: Phase B: remote polled sub-address incorrect! - expected '%s'\n", i, expected_rx_info.polled_sub_address);
status = T30_ERR_PSA_UNACCEPTABLE;
}
}
@@ -152,16 +153,16 @@
{
if (expected_rx_info.polled_sub_address[0])
{
- printf("%d: Phase B: remote polled sub-address missing!\n", i);
+ printf("%c: Phase B: remote polled sub-address missing!\n", i);
status = T30_ERR_PSA_UNACCEPTABLE;
}
}
if ((u = t30_get_rx_selective_polling_address(s)))
{
- printf("%d: Phase B: remote selective polling address '%s'\n", i, u);
+ printf("%c: Phase B: remote selective polling address '%s'\n", i, u);
if (expected_rx_info.selective_polling_address[0] && strcmp(expected_rx_info.selective_polling_address, u))
{
- printf("%d: Phase B: remote selective polling address incorrect! - expected '%s'\n", i, expected_rx_info.selective_polling_address);
+ printf("%c: Phase B: remote selective polling address incorrect! - expected '%s'\n", i, expected_rx_info.selective_polling_address);
status = T30_ERR_SEP_UNACCEPTABLE;
}
}
@@ -169,16 +170,16 @@
{
if (expected_rx_info.selective_polling_address[0])
{
- printf("%d: Phase B: remote selective polling address missing!\n", i);
+ printf("%c: Phase B: remote selective polling address missing!\n", i);
status = T30_ERR_SEP_UNACCEPTABLE;
}
}
if ((u = t30_get_rx_sender_ident(s)))
{
- printf("%d: Phase B: remote sender ident '%s'\n", i, u);
+ printf("%c: Phase B: remote sender ident '%s'\n", i, u);
if (expected_rx_info.sender_ident[0] && strcmp(expected_rx_info.sender_ident, u))
{
- printf("%d: Phase B: remote sender ident incorrect! - expected '%s'\n", i, expected_rx_info.sender_ident);
+ printf("%c: Phase B: remote sender ident incorrect! - expected '%s'\n", i, expected_rx_info.sender_ident);
status = T30_ERR_SID_UNACCEPTABLE;
}
}
@@ -186,16 +187,16 @@
{
if (expected_rx_info.sender_ident[0])
{
- printf("%d: Phase B: remote sender ident missing!\n", i);
+ printf("%c: Phase B: remote sender ident missing!\n", i);
status = T30_ERR_SID_UNACCEPTABLE;
}
}
if ((u = t30_get_rx_password(s)))
{
- printf("%d: Phase B: remote password '%s'\n", i, u);
+ printf("%c: Phase B: remote password '%s'\n", i, u);
if (expected_rx_info.password[0] && strcmp(expected_rx_info.password, u))
{
- printf("%d: Phase B: remote password incorrect! - expected '%s'\n", i, expected_rx_info.password);
+ printf("%c: Phase B: remote password incorrect! - expected '%s'\n", i, expected_rx_info.password);
status = T30_ERR_PWD_UNACCEPTABLE;
}
}
@@ -203,11 +204,11 @@
{
if (expected_rx_info.password[0])
{
- printf("%d: Phase B: remote password missing!\n", i);
+ printf("%c: Phase B: remote password missing!\n", i);
status = T30_ERR_PWD_UNACCEPTABLE;
}
}
- printf("%d: Phase B handler on channel %d - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ printf("%c: Phase B handler on channel %d - (0x%X) %s\n", i, i, result, t30_frametype(result));
return status;
}
/*- End of function --------------------------------------------------------*/
@@ -215,37 +216,24 @@
static int phase_d_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
+ char tag[20];
i = (intptr_t) user_data;
- t30_get_transfer_statistics(s, &t);
+ snprintf(tag, sizeof(tag), "%c: Phase D:", i);
- printf("%d: Phase D handler on channel %d - (0x%X) %s\n", i, i, result, t30_frametype(result));
- printf("%d: Phase D: bit rate %d\n", i, t.bit_rate);
- printf("%d: Phase D: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%d: Phase D: pages transferred %d\n", i, t.pages_transferred);
- printf("%d: Phase D: pages in the file %d\n", i, t.pages_in_file);
- printf("%d: Phase D: image size %d x %d\n", i, t.width, t.length);
- printf("%d: Phase D: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%d: Phase D: bad rows %d\n", i, t.bad_rows);
- printf("%d: Phase D: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%d: Phase D: compression type %d\n", i, t.encoding);
- printf("%d: Phase D: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%d: Phase D: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%d: Phase D: remote ident '%s'\n", i, u);
- printf("%d: Phase D: bits per row - min %d, max %d\n", i, s->t4.min_row_bits, s->t4.max_row_bits);
+ printf("%c: Phase D handler on channel %c - (0x%X) %s\n", i, i, result, t30_frametype(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
if (use_receiver_not_ready)
t30_set_receiver_not_ready(s, 3);
if (test_local_interrupt)
{
- if (i == 0)
+ if (i == 'A')
{
- printf("%d: Initiating interrupt request\n", i);
+ printf("%c: Initiating interrupt request\n", i);
t30_local_interrupt_request(s, TRUE);
}
else
@@ -256,7 +244,7 @@
case T30_PRI_MPS:
case T30_PRI_EOM:
case T30_PRI_EOP:
- printf("%d: Accepting interrupt request\n", i);
+ printf("%c: Accepting interrupt request\n", i);
t30_local_interrupt_request(s, TRUE);
break;
case T30_PIN:
@@ -271,32 +259,14 @@
static void phase_e_handler(t30_state_t *s, void *user_data, int result)
{
int i;
- t30_stats_t t;
- const char *u;
+ char tag[20];
i = (intptr_t) user_data;
- printf("%d: Phase E handler on channel %d - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
- t30_get_transfer_statistics(s, &t);
- printf("%d: Phase E: bit rate %d\n", i, t.bit_rate);
- printf("%d: Phase E: ECM %s\n", i, (t.error_correcting_mode) ? "on" : "off");
- printf("%d: Phase E: pages transferred %d\n", i, t.pages_transferred);
- printf("%d: Phase E: pages in the file %d\n", i, t.pages_in_file);
- printf("%d: Phase E: image size %d x %d\n", i, t.width, t.length);
- printf("%d: Phase E: image resolution %d x %d\n", i, t.x_resolution, t.y_resolution);
- printf("%d: Phase E: bad rows %d\n", i, t.bad_rows);
- printf("%d: Phase E: longest bad row run %d\n", i, t.longest_bad_row_run);
- printf("%d: Phase E: coding method %s\n", i, t4_encoding_to_str(t.encoding));
- printf("%d: Phase E: image size %d bytes\n", i, t.image_size);
- if ((u = t30_get_tx_ident(s)))
- printf("%d: Phase E: local ident '%s'\n", i, u);
- if ((u = t30_get_rx_ident(s)))
- printf("%d: Phase E: remote ident '%s'\n", i, u);
- if ((u = t30_get_rx_country(s)))
- printf("%d: Phase E: Remote was made in '%s'\n", i, u);
- if ((u = t30_get_rx_vendor(s)))
- printf("%d: Phase E: Remote was made by '%s'\n", i, u);
- if ((u = t30_get_rx_model(s)))
- printf("%d: Phase E: Remote is model '%s'\n", i, u);
+ snprintf(tag, sizeof(tag), "%c: Phase E:", i);
+ printf("%c: Phase E handler on channel %c - (%d) %s\n", i, i, result, t30_completion_code_to_str(result));
+ log_transfer_statistics(s, tag);
+ log_tx_parameters(s, tag);
+ log_rx_parameters(s, tag);
}
/*- End of function --------------------------------------------------------*/
@@ -439,11 +409,11 @@
| T30_SUPPORT_600_1200_RESOLUTION);
t30_set_supported_modems(t30, T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17);
t30_set_supported_compressions(t30, T30_SUPPORT_T4_1D_COMPRESSION | T30_SUPPORT_T4_2D_COMPRESSION | T30_SUPPORT_T6_COMPRESSION);
- t30_set_phase_b_handler(t30, phase_b_handler, (void *) (intptr_t) 1);
- t30_set_phase_d_handler(t30, phase_d_handler, (void *) (intptr_t) 1);
- t30_set_phase_e_handler(t30, phase_e_handler, (void *) (intptr_t) 1);
- t30_set_real_time_frame_handler(t30, t30_real_time_frame_handler, (void *) (intptr_t) 1);
- t30_set_document_handler(t30, document_handler, (void *) (intptr_t) 1);
+ t30_set_phase_b_handler(t30, phase_b_handler, (void *) (intptr_t) 'A');
+ t30_set_phase_d_handler(t30, phase_d_handler, (void *) (intptr_t) 'A');
+ t30_set_phase_e_handler(t30, phase_e_handler, (void *) (intptr_t) 'A');
+ t30_set_real_time_frame_handler(t30, t30_real_time_frame_handler, (void *) (intptr_t) 'A');
+ t30_set_document_handler(t30, document_handler, (void *) (intptr_t) 'A');
logging = fax_get_logging_state(fax);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
1
0
Author: brian
Date: Fri Feb 20 12:28:23 2009
New Revision: 12189
Log:
more examples from anm
Added:
freeswitch/trunk/libs/esl/python/events.py
Added: freeswitch/trunk/libs/esl/python/events.py
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/esl/python/events.py Fri Feb 20 12:28:23 2009
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+import string
+import sys
+import pickle
+
+from ESL import *
+
+con = ESLconnection("localhost","8021","ClueCon")
+#are we connected?
+
+if con.connected:
+
+ con.events("plain", "all");
+
+ while 1:
+ #my $e = $con->recvEventTimed(100);
+ e = con.recvEvent()
+
+ if e:
+ print e.serialize()
1
0
[commit] r12188 - in freeswitch/trunk/libs/spandsp/src: . spandsp spandsp/private
by FreeSWITCH SVN 20 Feb '09
by FreeSWITCH SVN 20 Feb '09
20 Feb '09
Author: mikej
Date: Fri Feb 20 12:28:09 2009
New Revision: 12188
Log:
update to snapshot spandsp-20090216
Added:
freeswitch/trunk/libs/spandsp/src/fax_modems.c
Modified:
freeswitch/trunk/libs/spandsp/src/Makefile.am
freeswitch/trunk/libs/spandsp/src/fax.c
freeswitch/trunk/libs/spandsp/src/libspandsp.dsp
freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj
freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c
freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h
freeswitch/trunk/libs/spandsp/src/spandsp/private/fax_modems.h
freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h
freeswitch/trunk/libs/spandsp/src/spandsp/version.h
freeswitch/trunk/libs/spandsp/src/t31.c
freeswitch/trunk/libs/spandsp/src/t38_gateway.c
freeswitch/trunk/libs/spandsp/src/t4.c
Modified: freeswitch/trunk/libs/spandsp/src/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/Makefile.am (original)
+++ freeswitch/trunk/libs/spandsp/src/Makefile.am Fri Feb 20 12:28:09 2009
@@ -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.123 2009/02/10 17:16:57 steveu Exp $
+## $Id: Makefile.am,v 1.124 2009/02/14 15:21:14 steveu Exp $
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
AM_LDFLAGS = $(COMP_VENDOR_LDFLAGS)
@@ -65,6 +65,7 @@
dtmf.c \
echo.c \
fax.c \
+ fax_modems.c \
fsk.c \
g711.c \
g722.c \
Modified: freeswitch/trunk/libs/spandsp/src/fax.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/fax.c (original)
+++ freeswitch/trunk/libs/spandsp/src/fax.c Fri Feb 20 12:28:09 2009
@@ -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.86 2009/02/10 13:06:46 steveu Exp $
+ * $Id: fax.c,v 1.88 2009/02/16 09:57:22 steveu Exp $
*/
/*! \file */
@@ -223,38 +223,6 @@
}
/*- End of function --------------------------------------------------------*/
-static void fax_fax_modems_init(fax_modems_state_t *s, int use_tep, void *user_data)
-{
- s->use_tep = use_tep;
-
- hdlc_rx_init(&s->hdlc_rx, FALSE, FALSE, HDLC_FRAMING_OK_THRESHOLD, t30_hdlc_accept, user_data);
- hdlc_tx_init(&s->hdlc_tx, FALSE, 2, FALSE, hdlc_underflow_handler, user_data);
- fsk_rx_init(&s->v21_rx, &preset_fsk_specs[FSK_V21CH2], TRUE, (put_bit_func_t) hdlc_rx_put_bit, &s->hdlc_rx);
- fsk_rx_signal_cutoff(&s->v21_rx, -45.5);
- fsk_tx_init(&s->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &s->hdlc_tx);
- v17_rx_init(&s->v17_rx, 14400, t30_non_ecm_put_bit, user_data);
- v17_tx_init(&s->v17_tx, 14400, s->use_tep, t30_non_ecm_get_bit, user_data);
- v29_rx_init(&s->v29_rx, 9600, t30_non_ecm_put_bit, user_data);
- v29_rx_signal_cutoff(&s->v29_rx, -45.5);
- v29_tx_init(&s->v29_tx, 9600, s->use_tep, t30_non_ecm_get_bit, user_data);
- v27ter_rx_init(&s->v27ter_rx, 4800, t30_non_ecm_put_bit, user_data);
- v27ter_tx_init(&s->v27ter_tx, 4800, s->use_tep, t30_non_ecm_get_bit, user_data);
- silence_gen_init(&s->silence_gen, 0);
- modem_connect_tones_tx_init(&s->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
- modem_connect_tones_rx_init(&s->connect_rx,
- MODEM_CONNECT_TONES_FAX_CNG,
- tone_detected,
- user_data);
- dc_restore_init(&s->dc_restore);
-
- s->rx_signal_present = FALSE;
- s->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
- s->rx_user_data = NULL;
- s->tx_handler = (span_tx_handler_t *) &silence_gen;
- s->tx_user_data = &s->silence_gen;
-}
-/*- End of function --------------------------------------------------------*/
-
SPAN_DECLARE(int) fax_rx(fax_state_t *s, int16_t *amp, int len)
{
int i;
@@ -371,7 +339,7 @@
{
case T30_MODEM_V21:
fsk_rx_init(&t->v21_rx, &preset_fsk_specs[FSK_V21CH2], TRUE, (put_bit_func_t) hdlc_rx_put_bit, put_bit_user_data);
- fsk_rx_signal_cutoff(&t->v21_rx, -45.5);
+ fsk_rx_signal_cutoff(&t->v21_rx, -45.5f);
t->rx_handler = (span_rx_handler_t *) &fsk_rx;
t->rx_user_data = &t->v21_rx;
break;
@@ -548,7 +516,14 @@
memset(s, 0, sizeof(*s));
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
span_log_set_protocol(&s->logging, "FAX");
- fax_fax_modems_init(&s->modems, FALSE, &s->t30);
+ fax_modems_init(&s->modems,
+ FALSE,
+ t30_hdlc_accept,
+ hdlc_underflow_handler,
+ t30_non_ecm_put_bit,
+ t30_non_ecm_get_bit,
+ tone_detected,
+ &s->t30);
t30_init(&s->t30,
calling_party,
fax_set_rx_type,
Added: freeswitch/trunk/libs/spandsp/src/fax_modems.c
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/spandsp/src/fax_modems.c Fri Feb 20 12:28:09 2009
@@ -0,0 +1,289 @@
+/*
+ * SpanDSP - a series of DSP components for telephony
+ *
+ * fax_modems.c - the analogue modem set for fax processing
+ *
+ * Written by Steve Underwood <steveu(a)coppice.org>
+ *
+ * Copyright (C) 2003, 2005, 2006, 2008 Steve Underwood
+ *
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 2.1,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * $Id: fax_modems.c,v 1.2 2009/02/16 09:57:22 steveu Exp $
+ */
+
+/*! \file */
+
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
+
+#include <inttypes.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#if defined(HAVE_TGMATH_H)
+#include <tgmath.h>
+#endif
+#if defined(HAVE_MATH_H)
+#include <math.h>
+#endif
+#include "floating_fudge.h"
+#include <assert.h>
+#include <fcntl.h>
+#include <time.h>
+#if defined(LOG_FAX_AUDIO)
+#include <unistd.h>
+#endif
+
+#include "spandsp/telephony.h"
+#include "spandsp/logging.h"
+#include "spandsp/bit_operations.h"
+#include "spandsp/dc_restore.h"
+#include "spandsp/queue.h"
+#include "spandsp/power_meter.h"
+#include "spandsp/complex.h"
+#include "spandsp/tone_detect.h"
+#include "spandsp/tone_generate.h"
+#include "spandsp/async.h"
+#include "spandsp/crc.h"
+#include "spandsp/hdlc.h"
+#include "spandsp/silence_gen.h"
+#include "spandsp/fsk.h"
+#include "spandsp/v29tx.h"
+#include "spandsp/v29rx.h"
+#include "spandsp/v27ter_tx.h"
+#include "spandsp/v27ter_rx.h"
+#include "spandsp/v17tx.h"
+#include "spandsp/v17rx.h"
+#include "spandsp/super_tone_rx.h"
+#include "spandsp/modem_connect_tones.h"
+#include "spandsp/fax_modems.h"
+
+#include "spandsp/private/logging.h"
+#include "spandsp/private/fsk.h"
+#include "spandsp/private/v17tx.h"
+#include "spandsp/private/v17rx.h"
+#include "spandsp/private/v27ter_tx.h"
+#include "spandsp/private/v27ter_rx.h"
+#include "spandsp/private/v29tx.h"
+#include "spandsp/private/v29rx.h"
+#include "spandsp/private/modem_connect_tones.h"
+#include "spandsp/private/hdlc.h"
+#include "spandsp/private/fax_modems.h"
+
+#define HDLC_FRAMING_OK_THRESHOLD 5
+
+int fax_modems_v17_v21_rx(void *user_data, const int16_t amp[], int len)
+{
+ fax_modems_state_t *s;
+
+ s = (fax_modems_state_t *) user_data;
+ v17_rx(&s->v17_rx, amp, len);
+ fsk_rx(&s->v21_rx, amp, len);
+ if (s->rx_frame_received)
+ {
+ /* We have received something, and the fast modem has not trained. We must
+ be receiving valid V.21 */
+ span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
+ s->rx_handler = (span_rx_handler_t *) &fsk_rx;
+ s->rx_user_data = &s->v21_rx;
+ }
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+int fax_modems_v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
+{
+ fax_modems_state_t *s;
+
+ s = (fax_modems_state_t *) user_data;
+ v27ter_rx(&s->v27ter_rx, amp, len);
+ fsk_rx(&s->v21_rx, amp, len);
+ if (s->rx_frame_received)
+ {
+ /* We have received something, and the fast modem has not trained. We must
+ be receiving valid V.21 */
+ span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
+ s->rx_handler = (span_rx_handler_t *) &fsk_rx;
+ s->rx_user_data = &s->v21_rx;
+ }
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+int fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len)
+{
+ fax_modems_state_t *s;
+
+ s = (fax_modems_state_t *) user_data;
+ v29_rx(&s->v29_rx, amp, len);
+ fsk_rx(&s->v21_rx, amp, len);
+ if (s->rx_frame_received)
+ {
+ /* We have received something, and the fast modem has not trained. We must
+ be receiving valid V.21 */
+ span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
+ s->rx_handler = (span_rx_handler_t *) &fsk_rx;
+ s->rx_user_data = &s->v21_rx;
+ }
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static void v21_rx_status_handler(void *user_data, int status)
+{
+ fax_modems_state_t *s;
+
+ s = (fax_modems_state_t *) user_data;
+}
+/*- End of function --------------------------------------------------------*/
+
+static void v17_rx_status_handler(void *user_data, int status)
+{
+ fax_modems_state_t *s;
+
+ s = (fax_modems_state_t *) user_data;
+ switch (status)
+ {
+ case SIG_STATUS_TRAINING_SUCCEEDED:
+ span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->v17_rx));
+ s->rx_handler = (span_rx_handler_t *) &v17_rx;
+ s->rx_user_data = &s->v17_rx;
+ break;
+ }
+}
+/*- End of function --------------------------------------------------------*/
+
+static void v27ter_rx_status_handler(void *user_data, int status)
+{
+ fax_modems_state_t *s;
+
+ s = (fax_modems_state_t *) user_data;
+ switch (status)
+ {
+ case SIG_STATUS_TRAINING_SUCCEEDED:
+ span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->v27ter_rx));
+ s->rx_handler = (span_rx_handler_t *) &v27ter_rx;
+ s->rx_user_data = &s->v27ter_rx;
+ break;
+ }
+}
+/*- End of function --------------------------------------------------------*/
+
+static void v29_rx_status_handler(void *user_data, int status)
+{
+ fax_modems_state_t *s;
+
+ s = (fax_modems_state_t *) user_data;
+ switch (status)
+ {
+ case SIG_STATUS_TRAINING_SUCCEEDED:
+ span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->v29_rx));
+ s->rx_handler = (span_rx_handler_t *) &v29_rx;
+ s->rx_user_data = &s->v29_rx;
+ break;
+ }
+}
+/*- End of function --------------------------------------------------------*/
+
+void start_fax_modems_rx_modem(fax_modems_state_t *s, int which)
+{
+ switch (which)
+ {
+ case FAX_MODEM_V17_RX:
+ v17_rx_set_modem_status_handler(&s->v17_rx, v17_rx_status_handler, s);
+ break;
+ case FAX_MODEM_V27TER_RX:
+ v27ter_rx_set_modem_status_handler(&s->v27ter_rx, v27ter_rx_status_handler, s);
+ break;
+ case FAX_MODEM_V29_RX:
+ v29_rx_set_modem_status_handler(&s->v29_rx, v29_rx_status_handler, s);
+ break;
+ }
+ fsk_rx_set_modem_status_handler(&s->v21_rx, v21_rx_status_handler, s);
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(void) fax_modems_set_tep_mode(fax_modems_state_t *s, int use_tep)
+{
+ s->use_tep = use_tep;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s,
+ int use_tep,
+ hdlc_frame_handler_t hdlc_accept,
+ hdlc_underflow_handler_t hdlc_tx_underflow,
+ put_bit_func_t non_ecm_put_bit,
+ get_bit_func_t non_ecm_get_bit,
+ tone_report_func_t tone_callback,
+ void *user_data)
+{
+ if (s == NULL)
+ {
+ if ((s = (fax_modems_state_t *) malloc(sizeof(*s))) == NULL)
+ return NULL;
+ }
+ memset(s, 0, sizeof(*s));
+ s->use_tep = use_tep;
+
+ hdlc_rx_init(&s->hdlc_rx, FALSE, FALSE, HDLC_FRAMING_OK_THRESHOLD, hdlc_accept, user_data);
+ hdlc_tx_init(&s->hdlc_tx, FALSE, 2, FALSE, hdlc_tx_underflow, user_data);
+ fsk_rx_init(&s->v21_rx, &preset_fsk_specs[FSK_V21CH2], TRUE, (put_bit_func_t) hdlc_rx_put_bit, &s->hdlc_rx);
+ fsk_rx_signal_cutoff(&s->v21_rx, -39.09f);
+ fsk_tx_init(&s->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &s->hdlc_tx);
+ v17_rx_init(&s->v17_rx, 14400, non_ecm_put_bit, user_data);
+ v17_tx_init(&s->v17_tx, 14400, s->use_tep, non_ecm_get_bit, user_data);
+ v29_rx_init(&s->v29_rx, 9600, non_ecm_put_bit, user_data);
+ v29_rx_signal_cutoff(&s->v29_rx, -45.5f);
+ v29_tx_init(&s->v29_tx, 9600, s->use_tep, non_ecm_get_bit, user_data);
+ v27ter_rx_init(&s->v27ter_rx, 4800, non_ecm_put_bit, user_data);
+ v27ter_tx_init(&s->v27ter_tx, 4800, s->use_tep, non_ecm_get_bit, user_data);
+ silence_gen_init(&s->silence_gen, 0);
+ modem_connect_tones_tx_init(&s->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
+ if (tone_callback)
+ {
+ modem_connect_tones_rx_init(&s->connect_rx,
+ MODEM_CONNECT_TONES_FAX_CNG,
+ tone_callback,
+ user_data);
+ }
+ dc_restore_init(&s->dc_restore);
+
+ s->rx_signal_present = FALSE;
+ s->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
+ s->rx_user_data = NULL;
+ s->tx_handler = (span_tx_handler_t *) &silence_gen;
+ s->tx_user_data = &s->silence_gen;
+ return s;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) fax_modems_release(fax_modems_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) fax_modems_free(fax_modems_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+/*- End of file ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/libspandsp.dsp
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/libspandsp.dsp (original)
+++ freeswitch/trunk/libs/spandsp/src/libspandsp.dsp Fri Feb 20 12:28:09 2009
@@ -161,6 +161,10 @@
# End Source File
# Begin Source File
+SOURCE=.\fax_modems.c
+# End Source File
+# Begin Source File
+
SOURCE=.\fsk.c
# End Source File
# Begin Source File
Modified: freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj (original)
+++ freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj Fri Feb 20 12:28:09 2009
@@ -105,6 +105,7 @@
<File RelativePath="dtmf.c"></File>
<File RelativePath="echo.c"></File>
<File RelativePath="fax.c"></File>
+<File RelativePath="fax_modems.c"></File>
<File RelativePath="fsk.c"></File>
<File RelativePath="g711.c"></File>
<File RelativePath="g722.c"></File>
Modified: freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c (original)
+++ freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c Fri Feb 20 12:28:09 2009
@@ -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.34 2009/02/10 13:06:46 steveu Exp $
+ * $Id: modem_connect_tones.c,v 1.35 2009/02/16 09:57:22 steveu Exp $
*/
/*! \file */
@@ -522,7 +522,7 @@
{
case MODEM_CONNECT_TONES_FAX_CED_OR_PREAMBLE:
fsk_rx_init(&(s->v21rx), &preset_fsk_specs[FSK_V21CH2], TRUE, v21_put_bit, s);
- fsk_rx_signal_cutoff(&(s->v21rx), -45.5);
+ fsk_rx_signal_cutoff(&(s->v21rx), -45.5f);
break;
case MODEM_CONNECT_TONES_ANS_PR:
case MODEM_CONNECT_TONES_ANSAM:
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h Fri Feb 20 12:28:09 2009
@@ -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.9 2009/02/10 13:06:47 steveu Exp $
+ * $Id: fax_modems.h,v 1.10 2009/02/14 15:21:14 steveu Exp $
*/
/*! \file */
@@ -30,6 +30,25 @@
#if !defined(_SPANDSP_FAX_MODEMS_H_)
#define _SPANDSP_FAX_MODEMS_H_
+enum
+{
+ FAX_MODEM_NONE = -1,
+ FAX_MODEM_FLUSH = 0,
+ FAX_MODEM_SILENCE_TX,
+ FAX_MODEM_SILENCE_RX,
+ FAX_MODEM_CED_TONE,
+ FAX_MODEM_CNG_TONE,
+ FAX_MODEM_NOCNG_TONE,
+ FAX_MODEM_V21_TX,
+ FAX_MODEM_V17_TX,
+ FAX_MODEM_V27TER_TX,
+ FAX_MODEM_V29_TX,
+ FAX_MODEM_V21_RX,
+ FAX_MODEM_V17_RX,
+ FAX_MODEM_V27TER_RX,
+ FAX_MODEM_V29_RX
+};
+
/*!
The set of modems needed for FAX, plus the auxilliary stuff, like tone generation.
*/
@@ -45,7 +64,16 @@
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(void) fax_modems_set_tep_mode(fax_modems_state_t *s, int use_tep);
+
+SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s,
+ int use_tep,
+ hdlc_frame_handler_t hdlc_accept,
+ hdlc_underflow_handler_t hdlc_tx_underflow,
+ put_bit_func_t non_ecm_put_bit,
+ get_bit_func_t non_ecm_get_bit,
+ tone_report_func_t tone_callback,
+ void *user_data);
SPAN_DECLARE(int) fax_modems_release(fax_modems_state_t *s);
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/private/fax_modems.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/private/fax_modems.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/private/fax_modems.h Fri Feb 20 12:28:09 2009
@@ -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.1 2008/10/13 13:14:01 steveu Exp $
+ * $Id: fax_modems.h,v 1.2 2009/02/14 15:21:14 steveu Exp $
*/
/*! \file */
@@ -90,6 +90,8 @@
int rx_signal_present;
/*! \brief TRUE if a modem has trained correctly. */
int rx_trained;
+ /*! \brief TRUE if an HDLC frame has been received correctly. */
+ int rx_frame_received;
/*! The current receive signal handler */
span_rx_handler_t *rx_handler;
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/private/t4.h Fri Feb 20 12:28:09 2009
@@ -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.2 2009/02/05 12:21:36 steveu Exp $
+ * $Id: t4.h,v 1.3 2009/02/16 09:57:22 steveu Exp $
*/
#if !defined(_SPANDSP_PRIVATE_T4_H_)
@@ -40,6 +40,10 @@
int output_compression;
/*! \brief The TIFF G3 FAX options. */
int output_t4_options;
+ /*! \brief The TIFF photometric setting for the current page. */
+ uint16_t photo_metric;
+ /*! \brief The TIFF fill order setting for the current page. */
+ uint16_t fill_order;
/* "Background" information about the FAX, which can be stored in the image file. */
/*! \brief The vendor of the machine which produced the file. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/version.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/version.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/version.h Fri Feb 20 12:28:09 2009
@@ -30,8 +30,8 @@
/* The date and time of the version are in UTC form. */
-#define SPANDSP_RELEASE_DATE 20090212
-#define SPANDSP_RELEASE_TIME 142337
+#define SPANDSP_RELEASE_DATE 20090216
+#define SPANDSP_RELEASE_TIME 100031
#endif
/*- End of file ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/t31.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t31.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t31.c Fri Feb 20 12:28:09 2009
@@ -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.142 2009/02/12 14:14:58 steveu Exp $
+ * $Id: t31.c,v 1.144 2009/02/16 09:57:22 steveu Exp $
*/
/*! \file */
@@ -1504,11 +1504,11 @@
static void t31_v21_rx(t31_state_t *s)
{
- hdlc_rx_init(&(s->audio.modems.hdlc_rx), FALSE, TRUE, HDLC_FRAMING_OK_THRESHOLD, hdlc_accept_frame, s);
s->at_state.ok_is_pending = FALSE;
s->hdlc_tx.final = FALSE;
s->hdlc_tx.len = 0;
s->dled = FALSE;
+ hdlc_rx_init(&(s->audio.modems.hdlc_rx), FALSE, TRUE, HDLC_FRAMING_OK_THRESHOLD, hdlc_accept_frame, s);
fsk_rx_init(&(s->audio.modems.v21_rx), &preset_fsk_specs[FSK_V21CH2], TRUE, (put_bit_func_t) hdlc_rx_put_bit, &(s->audio.modems.hdlc_rx));
fsk_rx_signal_cutoff(&(s->audio.modems.v21_rx), -39.09f);
s->at_state.transmit = TRUE;
@@ -2292,39 +2292,6 @@
}
/*- End of function --------------------------------------------------------*/
-static fax_modems_state_t *t31_fax_modems_init(fax_modems_state_t *s, int use_tep, void *user_data)
-{
- s->use_tep = use_tep;
-
- hdlc_rx_init(&s->hdlc_rx, FALSE, TRUE, HDLC_FRAMING_OK_THRESHOLD, hdlc_accept_frame, user_data);
- hdlc_tx_init(&s->hdlc_tx, FALSE, 2, FALSE, hdlc_tx_underflow, user_data);
- fsk_rx_init(&s->v21_rx, &preset_fsk_specs[FSK_V21CH2], TRUE, (put_bit_func_t) hdlc_rx_put_bit, &s->hdlc_rx);
- fsk_rx_signal_cutoff(&s->v21_rx, -39.09f);
- fsk_tx_init(&s->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &s->hdlc_tx);
- v17_rx_init(&s->v17_rx, 14400, non_ecm_put_bit, user_data);
- v17_tx_init(&s->v17_tx, 14400, s->use_tep, non_ecm_get_bit, user_data);
- v29_rx_init(&s->v29_rx, 9600, non_ecm_put_bit, user_data);
- v29_rx_signal_cutoff(&s->v29_rx, -45.5);
- v29_tx_init(&s->v29_tx, 9600, s->use_tep, non_ecm_get_bit, user_data);
- v27ter_rx_init(&s->v27ter_rx, 4800, non_ecm_put_bit, user_data);
- v27ter_tx_init(&s->v27ter_tx, 4800, s->use_tep, non_ecm_get_bit, user_data);
- silence_gen_init(&s->silence_gen, 0);
- modem_connect_tones_tx_init(&s->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
- modem_connect_tones_rx_init(&s->connect_rx,
- MODEM_CONNECT_TONES_FAX_CNG,
- tone_detected,
- user_data);
- dc_restore_init(&s->dc_restore);
-
- s->rx_signal_present = FALSE;
- s->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
- s->rx_user_data = NULL;
- s->tx_handler = (span_tx_handler_t *) &silence_gen;
- s->tx_user_data = &s->silence_gen;
- return s;
-}
-/*- End of function --------------------------------------------------------*/
-
SPAN_DECLARE(int) t31_rx(t31_state_t *s, int16_t amp[], int len)
{
int i;
@@ -2537,7 +2504,14 @@
s->modem_control_handler = modem_control_handler;
s->modem_control_user_data = modem_control_user_data;
- t31_fax_modems_init(&s->audio.modems, FALSE, s);
+ fax_modems_init(&s->audio.modems,
+ FALSE,
+ hdlc_accept_frame,
+ hdlc_tx_underflow,
+ non_ecm_put_bit,
+ non_ecm_get_bit,
+ tone_detected,
+ (void *) s);
power_meter_init(&(s->audio.rx_power), 4);
s->audio.last_sample = 0;
s->audio.silence_threshold_power = power_meter_level_dbm0(-36);
Modified: freeswitch/trunk/libs/spandsp/src/t38_gateway.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t38_gateway.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t38_gateway.c Fri Feb 20 12:28:09 2009
@@ -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.155 2009/02/12 12:38:39 steveu Exp $
+ * $Id: t38_gateway.c,v 1.157 2009/02/16 09:57:22 steveu Exp $
*/
/*! \file */
@@ -277,42 +277,6 @@
}
/*- End of function --------------------------------------------------------*/
-static void t38_fax_modems_init(fax_modems_state_t *s, int use_tep, void *user_data)
-{
- s->use_tep = use_tep;
-
- hdlc_rx_init(&s->hdlc_rx, FALSE, TRUE, HDLC_FRAMING_OK_THRESHOLD, NULL, user_data);
- hdlc_tx_init(&s->hdlc_tx, FALSE, 2, TRUE, hdlc_underflow_handler, user_data);
- fsk_rx_init(&s->v21_rx, &preset_fsk_specs[FSK_V21CH2], TRUE, (put_bit_func_t) t38_hdlc_rx_put_bit, &s->hdlc_rx);
-#if 0
- fsk_rx_signal_cutoff(&s->v21_rx, -45.5);
-#endif
- fsk_tx_init(&s->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &s->hdlc_tx);
- v17_rx_init(&s->v17_rx, 14400, non_ecm_put_bit, user_data);
- v17_tx_init(&s->v17_tx, 14400, s->use_tep, t38_non_ecm_buffer_get_bit, user_data);
- v29_rx_init(&s->v29_rx, 9600, non_ecm_put_bit, user_data);
-#if 0
- v29_rx_signal_cutoff(&s->v29_rx, -45.5);
-#endif
- v29_tx_init(&s->v29_tx, 9600, s->use_tep, t38_non_ecm_buffer_get_bit, user_data);
- v27ter_rx_init(&s->v27ter_rx, 4800, non_ecm_put_bit, user_data);
- v27ter_tx_init(&s->v27ter_tx, 4800, s->use_tep, t38_non_ecm_buffer_get_bit, user_data);
- silence_gen_init(&s->silence_gen, 0);
- modem_connect_tones_tx_init(&s->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
- modem_connect_tones_rx_init(&s->connect_rx,
- MODEM_CONNECT_TONES_FAX_CNG,
- tone_detected,
- user_data);
- dc_restore_init(&s->dc_restore);
-
- s->rx_signal_present = FALSE;
- s->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
- s->rx_user_data = NULL;
- s->tx_handler = (span_tx_handler_t *) &silence_gen;
- s->tx_user_data = &s->silence_gen;
-}
-/*- End of function --------------------------------------------------------*/
-
static void tone_detected(void *user_data, int on, int level, int delay)
{
t38_gateway_state_t *s;
@@ -1971,7 +1935,7 @@
s->t38x.current_tx_data_type = T38_DATA_V21;
fsk_rx_init(&(s->audio.modems.v21_rx), &preset_fsk_specs[FSK_V21CH2], TRUE, (put_bit_func_t) t38_hdlc_rx_put_bit, &(s->audio.modems.hdlc_rx));
#if 0
- fsk_rx_signal_cutoff(&(s->audio.modems.v21_rx), -45.5);
+ fsk_rx_signal_cutoff(&(s->audio.modems.v21_rx), -45.5f);
#endif
if (s->core.image_data_mode && s->core.ecm_mode)
{
@@ -2187,7 +2151,22 @@
static int t38_gateway_audio_init(t38_gateway_state_t *s)
{
- t38_fax_modems_init(&s->audio.modems, FALSE, s);
+ fax_modems_init(&s->audio.modems,
+ FALSE,
+ NULL,
+ hdlc_underflow_handler,
+ non_ecm_put_bit,
+ t38_non_ecm_buffer_get_bit,
+ tone_detected,
+ s);
+ /* We need to use progressive HDLC transmit, and a special HDLC receiver, which is different
+ from the other uses of FAX modems. */
+ hdlc_tx_init(&s->audio.modems.hdlc_tx, FALSE, 2, TRUE, hdlc_underflow_handler, s);
+ fsk_rx_set_put_bit(&s->audio.modems.v21_rx, (put_bit_func_t) t38_hdlc_rx_put_bit, &s->audio.modems.hdlc_rx);
+ /* TODO: Don't use the very low cutoff levels we would like to. We get some quirks if we do.
+ We need to sort this out. */
+ fsk_rx_signal_cutoff(&s->audio.modems.v21_rx, -30.0f);
+ v29_rx_signal_cutoff(&s->audio.modems.v29_rx, -28.5f);
return 0;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/t4.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t4.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t4.c Fri Feb 20 12:28:09 2009
@@ -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: t4.c,v 1.124 2009/02/10 13:06:46 steveu Exp $
+ * $Id: t4.c,v 1.125 2009/02/16 09:57:22 steveu Exp $
*/
/*
@@ -301,6 +301,8 @@
{ -1.00f, -1, -1}
};
uint16_t res_unit;
+ uint16_t photo_metric;
+ uint16_t fill_order;
uint32_t parm;
float x_resolution;
float y_resolution;
@@ -325,6 +327,16 @@
TIFFGetField(t->tiff_file, TIFFTAG_YRESOLUTION, &y_resolution);
res_unit = RESUNIT_INCH;
TIFFGetField(t->tiff_file, TIFFTAG_RESOLUTIONUNIT, &res_unit);
+ photo_metric = PHOTOMETRIC_MINISWHITE;
+ TIFFGetField(t->tiff_file, TIFFTAG_PHOTOMETRIC, &photo_metric);
+ if (photo_metric != PHOTOMETRIC_MINISWHITE)
+ span_log(&s->logging, SPAN_LOG_FLOW, "%s: Photometric needs swapping.\n", s->file);
+ t->photo_metric = photo_metric;
+ fill_order = FILLORDER_LSB2MSB;
+ TIFFGetField(t->tiff_file, TIFFTAG_FILLORDER, &fill_order);
+ if (fill_order != FILLORDER_LSB2MSB)
+ span_log(&s->logging, SPAN_LOG_FLOW, "%s: Fill order needs swapping.\n", s->file);
+ t->fill_order = fill_order;
/* Allow a little range for the X resolution in centimeters. The spec doesn't pin down the
precise value. The other value should be exact. */
@@ -384,6 +396,7 @@
{
int row;
int image_length;
+ int i;
image_length = 0;
TIFFGetField(s->tiff.tiff_file, TIFFTAG_IMAGELENGTH, &image_length);
@@ -394,6 +407,13 @@
span_log(&s->logging, SPAN_LOG_WARNING, "%s: Read error at row %d.\n", s->file, row);
break;
}
+ if (s->tiff.photo_metric != PHOTOMETRIC_MINISWHITE)
+ {
+ for (i = 0; i < s->bytes_per_row; i++)
+ s->row_buf[i] = ~s->row_buf[i];
+ }
+ if (s->tiff.fill_order != FILLORDER_LSB2MSB)
+ bit_reverse(s->row_buf, s->row_buf, s->bytes_per_row);
if (encode_row(s))
return -1;
}
1
0
[commit] r12187 - in freeswitch/trunk/libs/spandsp: spandsp-sim src src/msvc src/spandsp src/spandsp/private tests
by FreeSWITCH SVN 20 Feb '09
by FreeSWITCH SVN 20 Feb '09
20 Feb '09
Author: mikej
Date: Fri Feb 20 12:25:22 2009
New Revision: 12187
Log:
update to snapshot spandsp-20090212
Modified:
freeswitch/trunk/libs/spandsp/spandsp-sim/make_line_models.c
freeswitch/trunk/libs/spandsp/src/hdlc.c
freeswitch/trunk/libs/spandsp/src/logging.c
freeswitch/trunk/libs/spandsp/src/msvc/spandsp.h
freeswitch/trunk/libs/spandsp/src/spandsp.h.in
freeswitch/trunk/libs/spandsp/src/spandsp/async.h
freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h
freeswitch/trunk/libs/spandsp/src/spandsp/logging.h
freeswitch/trunk/libs/spandsp/src/spandsp/private/hdlc.h
freeswitch/trunk/libs/spandsp/src/spandsp/private/t31.h
freeswitch/trunk/libs/spandsp/src/spandsp/version.h
freeswitch/trunk/libs/spandsp/src/super_tone_tx.c
freeswitch/trunk/libs/spandsp/src/t31.c
freeswitch/trunk/libs/spandsp/src/t38_gateway.c
freeswitch/trunk/libs/spandsp/tests/fax_tester.c
freeswitch/trunk/libs/spandsp/tests/fsk_tests.c
freeswitch/trunk/libs/spandsp/tests/logging_tests.c
freeswitch/trunk/libs/spandsp/tests/make_g168_css.c
freeswitch/trunk/libs/spandsp/tests/super_tone_tx_tests.c
freeswitch/trunk/libs/spandsp/tests/v17_tests.c
freeswitch/trunk/libs/spandsp/tests/v27ter_tests.c
freeswitch/trunk/libs/spandsp/tests/v29_tests.c
Modified: freeswitch/trunk/libs/spandsp/spandsp-sim/make_line_models.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/spandsp-sim/make_line_models.c (original)
+++ freeswitch/trunk/libs/spandsp/spandsp-sim/make_line_models.c Fri Feb 20 12:25:22 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: make_line_models.c,v 1.8 2009/02/03 16:28:39 steveu Exp $
+ * $Id: make_line_models.c,v 1.9 2009/02/10 17:49:20 steveu Exp $
*/
/*! \page make_line_models_page Telephony line model construction
@@ -37,22 +37,23 @@
#include "config.h"
#endif
+#include <stdlib.h>
+#include <unistd.h>
#include <inttypes.h>
#include <string.h>
#include <stdio.h>
-#include <stdlib.h>
-#if defined(HAVE_TGMATH_H)
-#include <tgmath.h>
-#endif
-#if defined(HAVE_MATH_H)
-#include <math.h>
-#endif
#include "floating_fudge.h"
#if defined(HAVE_FFTW3_H)
#include <fftw3.h>
#else
#include <fftw.h>
#endif
+#if defined(HAVE_TGMATH_H)
+#include <tgmath.h>
+#endif
+#if defined(HAVE_MATH_H)
+#include <math.h>
+#endif
#include "spandsp.h"
Modified: freeswitch/trunk/libs/spandsp/src/hdlc.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/hdlc.c (original)
+++ freeswitch/trunk/libs/spandsp/src/hdlc.c Fri Feb 20 12:25:22 2009
@@ -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.70 2009/02/10 13:06:46 steveu Exp $
+ * $Id: hdlc.c,v 1.71 2009/02/12 12:38:39 steveu Exp $
*/
/*! \file */
@@ -43,10 +43,19 @@
#include "spandsp/hdlc.h"
#include "spandsp/private/hdlc.h"
-static void rx_special_condition(hdlc_rx_state_t *s, int condition)
+static void report_status_change(hdlc_rx_state_t *s, int status)
+{
+ if (s->status_handler)
+ s->status_handler(s->status_user_data, status);
+ else if (s->frame_handler)
+ s->frame_handler(s->frame_user_data, NULL, status, TRUE);
+}
+/*- End of function --------------------------------------------------------*/
+
+static void rx_special_condition(hdlc_rx_state_t *s, int status)
{
/* Special conditions */
- switch (condition)
+ switch (status)
{
case SIG_STATUS_CARRIER_UP:
case SIG_STATUS_TRAINING_SUCCEEDED:
@@ -61,7 +70,7 @@
case SIG_STATUS_TRAINING_FAILED:
case SIG_STATUS_CARRIER_DOWN:
case SIG_STATUS_END_OF_DATA:
- s->frame_handler(s->user_data, NULL, condition, TRUE);
+ report_status_change(s, status);
break;
default:
//printf("Eh!\n");
@@ -82,7 +91,7 @@
if (--s->octet_count <= 0)
{
s->octet_count = s->octet_count_report_interval;
- s->frame_handler(s->user_data, NULL, SIG_STATUS_OCTET_REPORT, TRUE);
+ report_status_change(s, SIG_STATUS_OCTET_REPORT);
}
}
else
@@ -105,7 +114,7 @@
if (--s->octet_count <= 0)
{
s->octet_count = s->octet_count_report_interval;
- s->frame_handler(s->user_data, NULL, SIG_STATUS_OCTET_REPORT, TRUE);
+ report_status_change(s, SIG_STATUS_OCTET_REPORT);
}
}
}
@@ -117,7 +126,7 @@
{
/* Hit HDLC abort */
s->rx_aborts++;
- s->frame_handler(s->user_data, NULL, SIG_STATUS_ABORT, TRUE);
+ report_status_change(s, SIG_STATUS_ABORT);
/* If we have not yet seen enough flags, restart the count. If we
are beyond that point, just back off one step, so we need to see
another flag before proceeding to collect frame octets. */
@@ -147,7 +156,7 @@
s->rx_frames++;
s->rx_bytes += s->len - s->crc_bytes;
s->len -= s->crc_bytes;
- s->frame_handler(s->user_data, s->buffer, s->len, TRUE);
+ s->frame_handler(s->frame_user_data, s->buffer, s->len, TRUE);
}
else
{
@@ -155,7 +164,7 @@
if (s->report_bad_frames)
{
s->len -= s->crc_bytes;
- s->frame_handler(s->user_data, s->buffer, s->len, FALSE);
+ s->frame_handler(s->frame_user_data, s->buffer, s->len, FALSE);
}
}
}
@@ -170,7 +179,7 @@
s->len -= s->crc_bytes;
else
s->len = 0;
- s->frame_handler(s->user_data, s->buffer, s->len, FALSE);
+ s->frame_handler(s->frame_user_data, s->buffer, s->len, FALSE);
}
s->rx_length_errors++;
}
@@ -194,7 +203,7 @@
}
if (++s->flags_seen >= s->framing_ok_threshold && !s->framing_ok_announced)
{
- s->frame_handler(s->user_data, NULL, SIG_STATUS_FRAMING_OK, TRUE);
+ report_status_change(s, SIG_STATUS_FRAMING_OK);
s->framing_ok_announced = TRUE;
}
}
@@ -309,7 +318,7 @@
}
memset(s, 0, sizeof(*s));
s->frame_handler = handler;
- s->user_data = user_data;
+ s->frame_user_data = user_data;
s->crc_bytes = (crc32) ? 4 : 2;
s->report_bad_frames = report_bad_frames;
s->framing_ok_threshold = (framing_ok_threshold < 1) ? 1 : framing_ok_threshold;
@@ -318,6 +327,20 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(void) hdlc_rx_set_frame_handler(hdlc_rx_state_t *s, hdlc_frame_handler_t handler, void *user_data)
+{
+ s->frame_handler = handler;
+ s->frame_user_data = user_data;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(void) hdlc_rx_set_status_handler(hdlc_rx_state_t *s, modem_rx_status_func_t handler, void *user_data)
+{
+ s->status_handler = handler;
+ s->status_user_data = user_data;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) hdlc_rx_release(hdlc_rx_state_t *s)
{
return 0;
Modified: freeswitch/trunk/libs/spandsp/src/logging.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/logging.c (original)
+++ freeswitch/trunk/libs/spandsp/src/logging.c Fri Feb 20 12:25:22 2009
@@ -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.31 2009/02/10 13:06:46 steveu Exp $
+ * $Id: logging.c,v 1.32 2009/02/10 17:44:18 steveu Exp $
*/
/*! \file */
@@ -241,7 +241,7 @@
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag)
+SPAN_DECLARE(logging_state_t *) span_log_init(logging_state_t *s, int level, const char *tag)
{
if (s == NULL)
{
@@ -256,7 +256,7 @@
s->samples_per_second = SAMPLE_RATE;
s->elapsed_samples = 0;
- return 0;
+ return s;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/msvc/spandsp.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/msvc/spandsp.h (original)
+++ freeswitch/trunk/libs/spandsp/src/msvc/spandsp.h Fri Feb 20 12:25:22 2009
@@ -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: spandsp.h.in,v 1.16 2009/02/03 16:28:40 steveu Exp $
+ * $Id: spandsp.h.in,v 1.17 2009/02/12 12:38:39 steveu Exp $
*/
/*! \file */
@@ -69,8 +69,8 @@
#include <spandsp/echo.h>
#include <spandsp/modem_echo.h>
#include <spandsp/crc.h>
-#include <spandsp/hdlc.h>
#include <spandsp/async.h>
+#include <spandsp/hdlc.h>
#include <spandsp/noise.h>
#include <spandsp/saturated.h>
#include <spandsp/time_scale.h>
Modified: freeswitch/trunk/libs/spandsp/src/spandsp.h.in
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp.h.in (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp.h.in Fri Feb 20 12:25:22 2009
@@ -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: spandsp.h.in,v 1.16 2009/02/03 16:28:40 steveu Exp $
+ * $Id: spandsp.h.in,v 1.17 2009/02/12 12:38:39 steveu Exp $
*/
/*! \file */
@@ -69,8 +69,8 @@
#include <spandsp/echo.h>
#include <spandsp/modem_echo.h>
#include <spandsp/crc.h>
-#include <spandsp/hdlc.h>
#include <spandsp/async.h>
+#include <spandsp/hdlc.h>
#include <spandsp/noise.h>
#include <spandsp/saturated.h>
#include <spandsp/time_scale.h>
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/async.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/async.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/async.h Fri Feb 20 12:25:22 2009
@@ -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.23 2009/02/10 13:06:47 steveu Exp $
+ * $Id: async.h,v 1.24 2009/02/12 12:38:39 steveu Exp $
*/
/*! \file */
@@ -100,10 +100,10 @@
typedef int (*get_bit_func_t)(void *user_data);
/*! Completion callback function for tx data pumps */
-typedef int (*modem_tx_status_func_t)(void *user_data, int status);
+typedef void (*modem_tx_status_func_t)(void *user_data, int status);
/*! Completion callback function for rx data pumps */
-typedef int (*modem_rx_status_func_t)(void *user_data, int status);
+typedef void (*modem_rx_status_func_t)(void *user_data, int status);
enum
{
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h Fri Feb 20 12:25:22 2009
@@ -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.43 2009/02/10 13:06:47 steveu Exp $
+ * $Id: hdlc.h,v 1.44 2009/02/12 12:38:39 steveu Exp $
*/
/*! \file */
@@ -101,8 +101,32 @@
hdlc_frame_handler_t handler,
void *user_data);
+/*! Change the put_bit function associated with an HDLC receiver context.
+ \brief Change the put_bit function associated with an HDLC receiver context.
+ \param s A pointer to an HDLC receiver context.
+ \param handler The function to be called when a good HDLC frame is received.
+ \param user_data An opaque parameter for the callback routine.
+*/
+SPAN_DECLARE(void) hdlc_rx_set_frame_handler(hdlc_rx_state_t *s, hdlc_frame_handler_t handler, void *user_data);
+
+/*! Change the status report function associated with an HDLC receiver context.
+ \brief Change the status report function associated with an HDLC receiver context.
+ \param s A pointer to an HDLC receiver context.
+ \param handler The callback routine used to report status changes.
+ \param user_data An opaque parameter for the callback routine.
+*/
+SPAN_DECLARE(void) hdlc_rx_set_status_handler(hdlc_rx_state_t *s, modem_rx_status_func_t handler, void *user_data);
+
+/*! Release an HDLC receiver context.
+ \brief Release an HDLC receiver context.
+ \param s A pointer to an HDLC receiver context.
+ \return 0 for OK */
SPAN_DECLARE(int) hdlc_rx_release(hdlc_rx_state_t *s);
+/*! Free an HDLC receiver context.
+ \brief Free an HDLC receiver context.
+ \param s A pointer to an HDLC receiver context.
+ \return 0 for OK */
SPAN_DECLARE(int) hdlc_rx_free(hdlc_rx_state_t *s);
/*! \brief Set the maximum frame length for an HDLC receiver context.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/logging.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/logging.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/logging.h Fri Feb 20 12:25:22 2009
@@ -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.19 2009/02/10 13:06:47 steveu Exp $
+ * $Id: logging.h,v 1.20 2009/02/10 17:44:18 steveu Exp $
*/
/*! \file */
@@ -127,7 +127,7 @@
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(logging_state_t *) span_log_init(logging_state_t *s, int level, const char *tag);
SPAN_DECLARE(int) span_log_release(logging_state_t *s);
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/private/hdlc.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/private/hdlc.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/private/hdlc.h Fri Feb 20 12:25:22 2009
@@ -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.2 2009/01/31 08:48:11 steveu Exp $
+ * $Id: hdlc.h,v 1.3 2009/02/12 12:38:39 steveu Exp $
*/
#if !defined(_SPANDSP_PRIVATE_HDLC_H_)
@@ -39,8 +39,12 @@
size_t max_frame_len;
/*! \brief The callback routine called to process each good received frame. */
hdlc_frame_handler_t frame_handler;
- /*! \brief An opaque parameter passed to the callback routine. */
- void *user_data;
+ /*! \brief An opaque parameter passed to the frame callback routine. */
+ void *frame_user_data;
+ /*! \brief The callback routine called to report status changes. */
+ modem_rx_status_func_t status_handler;
+ /*! \brief An opaque parameter passed to the status callback routine. */
+ void *status_user_data;
/*! \brief TRUE if bad frames are to be reported. */
int report_bad_frames;
/*! \brief The number of consecutive flags which must be seen before framing is
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/private/t31.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/private/t31.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/private/t31.h Fri Feb 20 12:25:22 2009
@@ -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.6 2009/01/16 15:13:16 steveu Exp $
+ * $Id: t31.h,v 1.7 2009/02/12 12:38:39 steveu Exp $
*/
#if !defined(_SPANDSP_PRIVATE_T31_H_)
@@ -103,6 +103,10 @@
int extra_bits;
} hdlc_tx;
+ /*! \brief TRUE if we are using ECM mode. This is used to select HDLC faking, necessary
+ with clunky class 1 modems. */
+ int ecm_mode;
+
/*! \brief Counter for trailing non-ECM bytes, used to flush out the far end's modem. */
int non_ecm_trailer_bytes;
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/version.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/version.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/version.h Fri Feb 20 12:25:22 2009
@@ -30,8 +30,8 @@
/* The date and time of the version are in UTC form. */
-#define SPANDSP_RELEASE_DATE 20090210
-#define SPANDSP_RELEASE_TIME 172413
+#define SPANDSP_RELEASE_DATE 20090212
+#define SPANDSP_RELEASE_TIME 142337
#endif
/*- End of file ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/super_tone_tx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/super_tone_tx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/super_tone_tx.c Fri Feb 20 12:25:22 2009
@@ -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.29 2009/02/10 13:06:46 steveu Exp $
+ * $Id: super_tone_tx.c,v 1.30 2009/02/10 17:44:18 steveu Exp $
*/
/*! \file */
@@ -120,7 +120,7 @@
{
/* Follow nesting... */
if (s->nest)
- super_tone_tx_free(s->nest);
+ super_tone_tx_free_tone(s->nest);
t = s;
s = s->next;
free(t);
Modified: freeswitch/trunk/libs/spandsp/src/t31.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t31.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t31.c Fri Feb 20 12:25:22 2009
@@ -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.140 2009/02/10 13:06:46 steveu Exp $
+ * $Id: t31.c,v 1.142 2009/02/12 14:14:58 steveu Exp $
*/
/*! \file */
@@ -82,6 +82,7 @@
#include "spandsp/at_interpreter.h"
#include "spandsp/fax_modems.h"
#include "spandsp/t31.h"
+#include "spandsp/t30_fcf.h"
#include "spandsp/private/logging.h"
#include "spandsp/private/t38_core.h"
@@ -115,9 +116,24 @@
typedef const char *(*at_cmd_service_t)(t31_state_t *s, const char *cmd);
-#define ETX 0x03
-#define DLE 0x10
-#define SUB 0x1A
+enum
+{
+ ETX = 0x03,
+ DLE = 0x10,
+ SUB = 0x1A
+};
+
+enum
+{
+ DISBIT1 = 0x01,
+ DISBIT2 = 0x02,
+ DISBIT3 = 0x04,
+ DISBIT4 = 0x08,
+ DISBIT5 = 0x10,
+ DISBIT6 = 0x20,
+ DISBIT7 = 0x40,
+ DISBIT8 = 0x80
+};
/* BEWARE: right now this must match up with a list in the AT interpreter code. */
enum
@@ -159,12 +175,17 @@
T38_TIMED_STEP_HDLC_MODEM_3 = 0x22,
T38_TIMED_STEP_HDLC_MODEM_4 = 0x23,
T38_TIMED_STEP_HDLC_MODEM_5 = 0x24,
- T38_TIMED_STEP_CED = 0x30,
- T38_TIMED_STEP_CED_2 = 0x31,
- T38_TIMED_STEP_CED_3 = 0x32,
- T38_TIMED_STEP_CNG = 0x40,
- T38_TIMED_STEP_CNG_2 = 0x41,
- T38_TIMED_STEP_PAUSE = 0x50
+ T38_TIMED_STEP_FAKE_HDLC_MODEM = 0x30,
+ T38_TIMED_STEP_FAKE_HDLC_MODEM_2 = 0x31,
+ T38_TIMED_STEP_FAKE_HDLC_MODEM_3 = 0x32,
+ T38_TIMED_STEP_FAKE_HDLC_MODEM_4 = 0x33,
+ T38_TIMED_STEP_FAKE_HDLC_MODEM_5 = 0x34,
+ T38_TIMED_STEP_CED = 0x40,
+ T38_TIMED_STEP_CED_2 = 0x41,
+ T38_TIMED_STEP_CED_3 = 0x42,
+ T38_TIMED_STEP_CNG = 0x50,
+ T38_TIMED_STEP_CNG_2 = 0x51,
+ T38_TIMED_STEP_PAUSE = 0x60
};
static int restart_modem(t31_state_t *s, int new_modem);
@@ -186,6 +207,30 @@
}
/*- End of function --------------------------------------------------------*/
+#if 0
+static void monitor_control_messages(t31_state_t *s, const uint8_t *buf, int len)
+{
+ /* Monitor the control messages, at the point where we have the whole message, so we can
+ see what is happening to things like training success/failure. */
+ span_log(&s->logging, SPAN_LOG_FLOW, "Monitoring %s\n", t30_frametype(buf[2]));
+ if (len < 3)
+ return;
+ /*endif*/
+ switch (buf[2])
+ {
+ case T30_DCS:
+ case T30_DCS | 1:
+ /* We need to know if ECM is about to be used, so we can fake HDLC stuff. */
+ s->t38_fe.ecm_mode = (len >= 7) && (buf[6] & DISBIT3);
+ break;
+ default:
+ break;
+ }
+ /*endswitch*/
+}
+/*- End of function --------------------------------------------------------*/
+#endif
+
static void front_end_status(t31_state_t *s, int status)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Front end status %d\n", status);
@@ -980,6 +1025,9 @@
case T38_TIMED_STEP_HDLC_MODEM:
delay = stream_hdlc(s);
break;
+ //case T38_TIMED_STEP_FAKE_HDLC_MODEM:
+ // delay = stream_fake_hdlc(s);
+ // break;
case T38_TIMED_STEP_CED:
delay = stream_ced(s);
break;
@@ -2244,7 +2292,7 @@
}
/*- End of function --------------------------------------------------------*/
-static void t31_fax_modems_init(fax_modems_state_t *s, int use_tep, void *user_data)
+static fax_modems_state_t *t31_fax_modems_init(fax_modems_state_t *s, int use_tep, void *user_data)
{
s->use_tep = use_tep;
@@ -2273,6 +2321,7 @@
s->rx_user_data = NULL;
s->tx_handler = (span_tx_handler_t *) &silence_gen;
s->tx_user_data = &s->silence_gen;
+ return s;
}
/*- End of function --------------------------------------------------------*/
@@ -2458,7 +2507,6 @@
2,
NULL,
NULL);
-
return 0;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/t38_gateway.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t38_gateway.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t38_gateway.c Fri Feb 20 12:25:22 2009
@@ -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.154 2009/02/10 13:06:46 steveu Exp $
+ * $Id: t38_gateway.c,v 1.155 2009/02/12 12:38:39 steveu Exp $
*/
/*! \file */
@@ -747,7 +747,10 @@
}
/*- End of function --------------------------------------------------------*/
-static void monitor_control_messages(t38_gateway_state_t *s, int from_modem, uint8_t *buf, int len)
+static void monitor_control_messages(t38_gateway_state_t *s,
+ int from_modem,
+ const uint8_t *buf,
+ int len)
{
static const struct
{
@@ -1704,7 +1707,7 @@
{
t38_gateway_state_t *s;
- s = (t38_gateway_state_t *) t->user_data;
+ s = (t38_gateway_state_t *) t->frame_user_data;
span_log(&s->logging, SPAN_LOG_FLOW, "HDLC signal status is %s (%d)\n", signal_status_to_str(status), status);
switch (status)
{
@@ -1761,7 +1764,7 @@
t38_gateway_state_t *s;
t38_gateway_to_t38_state_t *u;
- s = (t38_gateway_state_t *) t->user_data;
+ s = (t38_gateway_state_t *) t->frame_user_data;
u = &s->core.to_t38;
if ((t->raw_bit_stream & 0x80))
{
@@ -1916,7 +1919,7 @@
return;
}
/*endif*/
- s = (t38_gateway_state_t *) t->user_data;
+ s = (t38_gateway_state_t *) t->frame_user_data;
u = &s->core.to_t38;
t->buffer[t->len] = (uint8_t) t->byte_in_progress;
/* Calculate the CRC progressively, before we start altering the frame */
Modified: freeswitch/trunk/libs/spandsp/tests/fax_tester.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/fax_tester.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/fax_tester.c Fri Feb 20 12:25:22 2009
@@ -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_tester.c,v 1.21 2009/01/28 03:41:27 steveu Exp $
+ * $Id: fax_tester.c,v 1.22 2009/02/12 12:38:39 steveu Exp $
*/
/*! \file */
@@ -146,7 +146,7 @@
}
/*- End of function --------------------------------------------------------*/
-static int modem_tx_status(void *user_data, int status)
+static void modem_tx_status(void *user_data, int status)
{
faxtester_state_t *s;
@@ -158,7 +158,6 @@
front_end_step_complete(s);
break;
}
- return 0;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/fsk_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/fsk_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/fsk_tests.c Fri Feb 20 12:25:22 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fsk_tests.c,v 1.53 2008/11/30 10:17:31 steveu Exp $
+ * $Id: fsk_tests.c,v 1.55 2009/02/12 14:21:16 steveu Exp $
*/
/*! \page fsk_tests_page FSK modem tests
@@ -69,17 +69,15 @@
int rx_bits = 0;
int cutoff_test_carrier = FALSE;
-static int rx_status(void *user_data, int status)
+static void rx_status(void *user_data, int status)
{
printf("FSK rx status is %s (%d)\n", signal_status_to_str(status), status);
- return 0;
}
/*- End of function --------------------------------------------------------*/
-static int tx_status(void *user_data, int status)
+static void tx_status(void *user_data, int status)
{
printf("FSK tx status is %s (%d)\n", signal_status_to_str(status), status);
- return 0;
}
/*- End of function --------------------------------------------------------*/
@@ -95,7 +93,7 @@
}
/*- End of function --------------------------------------------------------*/
-static int cutoff_test_rx_status(void *user_data, int status)
+static void cutoff_test_rx_status(void *user_data, int status)
{
printf("FSK rx status is %s (%d)\n", signal_status_to_str(status), status);
switch (status)
@@ -107,7 +105,6 @@
cutoff_test_carrier = FALSE;
break;
}
- return 0;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/logging_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/logging_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/logging_tests.c Fri Feb 20 12:25:22 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: logging_tests.c,v 1.15 2008/11/30 13:44:35 steveu Exp $
+ * $Id: logging_tests.c,v 1.16 2009/02/12 12:38:39 steveu Exp $
*/
/*! \page logging_tests_page Logging tests
@@ -132,7 +132,7 @@
struct timespec delay;
/* Set up a logger */
- if (span_log_init(&log, 123, "TAG"))
+ if (span_log_init(&log, 123, "TAG") == NULL)
{
fprintf(stderr, "Failed to initialise log.\n");
exit(2);
Modified: freeswitch/trunk/libs/spandsp/tests/make_g168_css.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/make_g168_css.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/make_g168_css.c Fri Feb 20 12:25:22 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: make_g168_css.c,v 1.16 2008/11/30 12:38:27 steveu Exp $
+ * $Id: make_g168_css.c,v 1.17 2009/02/10 17:49:20 steveu Exp $
*/
/*! \page makecss_page CSS construction for G.168 testing
@@ -49,9 +49,6 @@
#else
#include <fftw.h>
#endif
-#if defined(HAVE_MATH_H)
-#define GEN_CONST
-#endif
//#if defined(WITH_SPANDSP_INTERNALS)
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
Modified: freeswitch/trunk/libs/spandsp/tests/super_tone_tx_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/super_tone_tx_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/super_tone_tx_tests.c Fri Feb 20 12:25:22 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: super_tone_tx_tests.c,v 1.24 2008/11/30 10:17:31 steveu Exp $
+ * $Id: super_tone_tx_tests.c,v 1.25 2009/02/10 17:44:18 steveu Exp $
*/
/*! \file */
@@ -202,7 +202,7 @@
super_tone_tx_init(&tone, tone_tree);
//printf("Len %p %p %d %d\n", (void *) tone.levels[0], (void *) tone_tree, tone_tree->length, tone_tree->tone);
play_tones(&tone, 99999999);
- super_tone_tx_free(tone_tree);
+ super_tone_tx_free_tone(tone_tree);
}
/*endif*/
cur = cur->next;
Modified: freeswitch/trunk/libs/spandsp/tests/v17_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/v17_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/v17_tests.c Fri Feb 20 12:25:22 2009
@@ -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: v17_tests.c,v 1.98 2009/01/12 17:20:59 steveu Exp $
+ * $Id: v17_tests.c,v 1.100 2009/02/12 14:21:16 steveu Exp $
*/
/*! \page v17_tests_page V.17 modem tests
@@ -114,7 +114,7 @@
}
/*- End of function --------------------------------------------------------*/
-static int v17_rx_status(void *user_data, int status)
+static void v17_rx_status(void *user_data, int status)
{
v17_rx_state_t *rx;
int i;
@@ -132,7 +132,6 @@
printf("%3d (%15.5f, %15.5f) -> %15.5f\n", i, coeffs[i].re, coeffs[i].im, powerf(&coeffs[i]));
break;
}
- return 0;
}
/*- End of function --------------------------------------------------------*/
@@ -154,10 +153,9 @@
}
/*- End of function --------------------------------------------------------*/
-static int v17_tx_status(void *user_data, int status)
+static void v17_tx_status(void *user_data, int status)
{
printf("V.17 tx status is %s (%d)\n", signal_status_to_str(status), status);
- return 0;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/v27ter_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/v27ter_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/v27ter_tests.c Fri Feb 20 12:25:22 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v27ter_tests.c,v 1.99 2009/01/12 17:20:59 steveu Exp $
+ * $Id: v27ter_tests.c,v 1.101 2009/02/12 14:21:16 steveu Exp $
*/
/*! \page v27ter_tests_page V.27ter modem tests
@@ -110,10 +110,9 @@
}
/*- End of function --------------------------------------------------------*/
-static int v27ter_rx_status(void *user_data, int status)
+static void v27ter_rx_status(void *user_data, int status)
{
printf("V.27ter rx status is %s (%d)\n", signal_status_to_str(status), status);
- return 0;
}
/*- End of function --------------------------------------------------------*/
@@ -131,10 +130,9 @@
}
/*- End of function --------------------------------------------------------*/
-static int v27ter_tx_status(void *user_data, int status)
+static void v27ter_tx_status(void *user_data, int status)
{
printf("V.27ter tx status is %s (%d)\n", signal_status_to_str(status), status);
- return 0;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/tests/v29_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/v29_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/v29_tests.c Fri Feb 20 12:25:22 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: v29_tests.c,v 1.113 2009/01/12 17:20:59 steveu Exp $
+ * $Id: v29_tests.c,v 1.115 2009/02/12 14:21:16 steveu Exp $
*/
/*! \page v29_tests_page V.29 modem tests
@@ -109,7 +109,7 @@
}
/*- End of function --------------------------------------------------------*/
-static int v29_rx_status(void *user_data, int status)
+static void v29_rx_status(void *user_data, int status)
{
v29_rx_state_t *rx;
int i;
@@ -139,7 +139,6 @@
#endif
break;
}
- return 0;
}
/*- End of function --------------------------------------------------------*/
@@ -161,10 +160,9 @@
}
/*- End of function --------------------------------------------------------*/
-static int v29_tx_status(void *user_data, int status)
+static void v29_tx_status(void *user_data, int status)
{
printf("V.29 tx status is %s (%d)\n", signal_status_to_str(status), status);
- return 0;
}
/*- End of function --------------------------------------------------------*/
1
0
[commit] r12186 - in freeswitch/trunk/libs/spandsp: . src src/msvc src/spandsp tests
by FreeSWITCH SVN 20 Feb '09
by FreeSWITCH SVN 20 Feb '09
20 Feb '09
Author: mikej
Date: Fri Feb 20 12:22:32 2009
New Revision: 12186
Log:
update to snapshot spandsp-20090211
Added:
freeswitch/trunk/libs/spandsp/src/msvc/getopt.c
freeswitch/trunk/libs/spandsp/src/msvc/make_at_dictionary.vcproj
freeswitch/trunk/libs/spandsp/src/msvc/make_headers.bat
freeswitch/trunk/libs/spandsp/src/msvc/make_modem_filter.vcproj
Modified:
freeswitch/trunk/libs/spandsp/configure.ac
freeswitch/trunk/libs/spandsp/src/Makefile.am
freeswitch/trunk/libs/spandsp/src/adsi.c
freeswitch/trunk/libs/spandsp/src/async.c
freeswitch/trunk/libs/spandsp/src/at_interpreter.c
freeswitch/trunk/libs/spandsp/src/awgn.c
freeswitch/trunk/libs/spandsp/src/bell_r2_mf.c
freeswitch/trunk/libs/spandsp/src/bert.c
freeswitch/trunk/libs/spandsp/src/bitstream.c
freeswitch/trunk/libs/spandsp/src/dtmf.c
freeswitch/trunk/libs/spandsp/src/echo.c
freeswitch/trunk/libs/spandsp/src/fax.c
freeswitch/trunk/libs/spandsp/src/filter_tools.c
freeswitch/trunk/libs/spandsp/src/fsk.c
freeswitch/trunk/libs/spandsp/src/g711.c
freeswitch/trunk/libs/spandsp/src/g722.c
freeswitch/trunk/libs/spandsp/src/g726.c
freeswitch/trunk/libs/spandsp/src/gsm0610_encode.c
freeswitch/trunk/libs/spandsp/src/gsm0610_lpc.c
freeswitch/trunk/libs/spandsp/src/hdlc.c
freeswitch/trunk/libs/spandsp/src/ima_adpcm.c
freeswitch/trunk/libs/spandsp/src/libspandsp.sln
freeswitch/trunk/libs/spandsp/src/logging.c
freeswitch/trunk/libs/spandsp/src/lpc10_decode.c
freeswitch/trunk/libs/spandsp/src/lpc10_encode.c
freeswitch/trunk/libs/spandsp/src/make_at_dictionary.c
freeswitch/trunk/libs/spandsp/src/make_modem_filter.c
freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c
freeswitch/trunk/libs/spandsp/src/msvc/config.h
freeswitch/trunk/libs/spandsp/src/msvc/unistd.h
freeswitch/trunk/libs/spandsp/src/noise.c
freeswitch/trunk/libs/spandsp/src/oki_adpcm.c
freeswitch/trunk/libs/spandsp/src/playout.c
freeswitch/trunk/libs/spandsp/src/plc.c
freeswitch/trunk/libs/spandsp/src/power_meter.c
freeswitch/trunk/libs/spandsp/src/queue.c
freeswitch/trunk/libs/spandsp/src/schedule.c
freeswitch/trunk/libs/spandsp/src/sig_tone.c
freeswitch/trunk/libs/spandsp/src/silence_gen.c
freeswitch/trunk/libs/spandsp/src/spandsp/adsi.h
freeswitch/trunk/libs/spandsp/src/spandsp/async.h
freeswitch/trunk/libs/spandsp/src/spandsp/at_interpreter.h
freeswitch/trunk/libs/spandsp/src/spandsp/awgn.h
freeswitch/trunk/libs/spandsp/src/spandsp/bell_r2_mf.h
freeswitch/trunk/libs/spandsp/src/spandsp/bert.h
freeswitch/trunk/libs/spandsp/src/spandsp/bitstream.h
freeswitch/trunk/libs/spandsp/src/spandsp/complex.h
freeswitch/trunk/libs/spandsp/src/spandsp/dtmf.h
freeswitch/trunk/libs/spandsp/src/spandsp/echo.h
freeswitch/trunk/libs/spandsp/src/spandsp/fast_convert.h
freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h
freeswitch/trunk/libs/spandsp/src/spandsp/fsk.h
freeswitch/trunk/libs/spandsp/src/spandsp/g711.h
freeswitch/trunk/libs/spandsp/src/spandsp/g722.h
freeswitch/trunk/libs/spandsp/src/spandsp/g726.h
freeswitch/trunk/libs/spandsp/src/spandsp/gsm0610.h
freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h
freeswitch/trunk/libs/spandsp/src/spandsp/ima_adpcm.h
freeswitch/trunk/libs/spandsp/src/spandsp/logging.h
freeswitch/trunk/libs/spandsp/src/spandsp/lpc10.h
freeswitch/trunk/libs/spandsp/src/spandsp/modem_connect_tones.h
freeswitch/trunk/libs/spandsp/src/spandsp/noise.h
freeswitch/trunk/libs/spandsp/src/spandsp/oki_adpcm.h
freeswitch/trunk/libs/spandsp/src/spandsp/playout.h
freeswitch/trunk/libs/spandsp/src/spandsp/plc.h
freeswitch/trunk/libs/spandsp/src/spandsp/power_meter.h
freeswitch/trunk/libs/spandsp/src/spandsp/queue.h
freeswitch/trunk/libs/spandsp/src/spandsp/schedule.h
freeswitch/trunk/libs/spandsp/src/spandsp/sig_tone.h
freeswitch/trunk/libs/spandsp/src/spandsp/silence_gen.h
freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_rx.h
freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_tx.h
freeswitch/trunk/libs/spandsp/src/spandsp/t31.h
freeswitch/trunk/libs/spandsp/src/spandsp/t38_core.h
freeswitch/trunk/libs/spandsp/src/spandsp/t38_gateway.h
freeswitch/trunk/libs/spandsp/src/spandsp/t38_non_ecm_buffer.h
freeswitch/trunk/libs/spandsp/src/spandsp/t4.h
freeswitch/trunk/libs/spandsp/src/spandsp/time_scale.h
freeswitch/trunk/libs/spandsp/src/spandsp/tone_detect.h
freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h
freeswitch/trunk/libs/spandsp/src/spandsp/v17rx.h
freeswitch/trunk/libs/spandsp/src/spandsp/v17tx.h
freeswitch/trunk/libs/spandsp/src/spandsp/v22bis.h
freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_rx.h
freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_tx.h
freeswitch/trunk/libs/spandsp/src/spandsp/v29rx.h
freeswitch/trunk/libs/spandsp/src/spandsp/v29tx.h
freeswitch/trunk/libs/spandsp/src/spandsp/v42.h
freeswitch/trunk/libs/spandsp/src/spandsp/v42bis.h
freeswitch/trunk/libs/spandsp/src/spandsp/version.h
freeswitch/trunk/libs/spandsp/src/super_tone_rx.c
freeswitch/trunk/libs/spandsp/src/super_tone_tx.c
freeswitch/trunk/libs/spandsp/src/t30.c
freeswitch/trunk/libs/spandsp/src/t31.c
freeswitch/trunk/libs/spandsp/src/t38_core.c
freeswitch/trunk/libs/spandsp/src/t38_gateway.c
freeswitch/trunk/libs/spandsp/src/t38_non_ecm_buffer.c
freeswitch/trunk/libs/spandsp/src/t38_terminal.c
freeswitch/trunk/libs/spandsp/src/t4.c
freeswitch/trunk/libs/spandsp/src/time_scale.c
freeswitch/trunk/libs/spandsp/src/tone_detect.c
freeswitch/trunk/libs/spandsp/src/tone_generate.c
freeswitch/trunk/libs/spandsp/src/v17rx.c
freeswitch/trunk/libs/spandsp/src/v17tx.c
freeswitch/trunk/libs/spandsp/src/v22bis_tx.c
freeswitch/trunk/libs/spandsp/src/v27ter_rx.c
freeswitch/trunk/libs/spandsp/src/v27ter_tx.c
freeswitch/trunk/libs/spandsp/src/v29rx.c
freeswitch/trunk/libs/spandsp/src/v29tx.c
freeswitch/trunk/libs/spandsp/src/v42.c
freeswitch/trunk/libs/spandsp/src/v42bis.c
freeswitch/trunk/libs/spandsp/src/vector_float.c
freeswitch/trunk/libs/spandsp/tests/echo_tests.c
freeswitch/trunk/libs/spandsp/tests/fax_decode.c
freeswitch/trunk/libs/spandsp/tests/playout_tests.c
freeswitch/trunk/libs/spandsp/tests/t4_tests.c
freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c
Modified: freeswitch/trunk/libs/spandsp/configure.ac
==============================================================================
--- freeswitch/trunk/libs/spandsp/configure.ac (original)
+++ freeswitch/trunk/libs/spandsp/configure.ac Fri Feb 20 12:22:32 2009
@@ -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_MINOR_VERSION=0
SPANDSP_MICRO_VERSION=6
-SPANDSP_LT_CURRENT=1
+SPANDSP_LT_CURRENT=2
SPANDSP_LT_REVISION=0
SPANDSP_LT_AGE=0
Modified: freeswitch/trunk/libs/spandsp/src/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/Makefile.am (original)
+++ freeswitch/trunk/libs/spandsp/src/Makefile.am Fri Feb 20 12:22:32 2009
@@ -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 @@
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
Modified: freeswitch/trunk/libs/spandsp/src/adsi.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/adsi.c (original)
+++ freeswitch/trunk/libs/spandsp/src/adsi.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/async.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/async.c (original)
+++ freeswitch/trunk/libs/spandsp/src/async.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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;
Modified: freeswitch/trunk/libs/spandsp/src/at_interpreter.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/at_interpreter.c (original)
+++ freeswitch/trunk/libs/spandsp/src/at_interpreter.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/awgn.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/awgn.c (original)
+++ freeswitch/trunk/libs/spandsp/src/awgn.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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;
Modified: freeswitch/trunk/libs/spandsp/src/bell_r2_mf.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/bell_r2_mf.c (original)
+++ freeswitch/trunk/libs/spandsp/src/bell_r2_mf.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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 @@
}
/*- 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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/bert.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/bert.c (original)
+++ freeswitch/trunk/libs/spandsp/src/bert.c Fri Feb 20 12:22:32 2009
@@ -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 @@
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 @@
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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/bitstream.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/bitstream.c (original)
+++ freeswitch/trunk/libs/spandsp/src/bitstream.c Fri Feb 20 12:22:32 2009
@@ -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(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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/dtmf.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/dtmf.c (original)
+++ freeswitch/trunk/libs/spandsp/src/dtmf.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/echo.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/echo.c (original)
+++ freeswitch/trunk/libs/spandsp/src/echo.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
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 @@
for (i = 0; i < 4; i++)
free(ec->fir_taps16[i]);
free(ec);
+ return 0;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/fax.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/fax.c (original)
+++ freeswitch/trunk/libs/spandsp/src/fax.c Fri Feb 20 12:22:32 2009
@@ -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 @@
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");
Modified: freeswitch/trunk/libs/spandsp/src/filter_tools.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/filter_tools.c (original)
+++ freeswitch/trunk/libs/spandsp/src/filter_tools.c Fri Feb 20 12:22:32 2009
@@ -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 @@
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);
}
Modified: freeswitch/trunk/libs/spandsp/src/fsk.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/fsk.c (original)
+++ freeswitch/trunk/libs/spandsp/src/fsk.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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)
Modified: freeswitch/trunk/libs/spandsp/src/g711.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/g711.c (original)
+++ freeswitch/trunk/libs/spandsp/src/g711.c Fri Feb 20 12:22:32 2009
@@ -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 */
@@ -183,6 +183,12 @@
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;
}
Modified: freeswitch/trunk/libs/spandsp/src/g722.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/g722.c (original)
+++ freeswitch/trunk/libs/spandsp/src/g722.c Fri Feb 20 12:22:32 2009
@@ -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 */
@@ -283,6 +283,12 @@
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;
}
@@ -455,6 +461,12 @@
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;
}
Modified: freeswitch/trunk/libs/spandsp/src/g726.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/g726.c (original)
+++ freeswitch/trunk/libs/spandsp/src/g726.c Fri Feb 20 12:22:32 2009
@@ -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 */
@@ -1059,6 +1059,12 @@
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;
}
Modified: freeswitch/trunk/libs/spandsp/src/gsm0610_encode.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/gsm0610_encode.c (original)
+++ freeswitch/trunk/libs/spandsp/src/gsm0610_encode.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/gsm0610_lpc.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/gsm0610_lpc.c (original)
+++ freeswitch/trunk/libs/spandsp/src/gsm0610_lpc.c Fri Feb 20 12:22:32 2009
@@ -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 */
Modified: freeswitch/trunk/libs/spandsp/src/hdlc.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/hdlc.c (original)
+++ freeswitch/trunk/libs/spandsp/src/hdlc.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/ima_adpcm.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/ima_adpcm.c (original)
+++ freeswitch/trunk/libs/spandsp/src/ima_adpcm.c Fri Feb 20 12:22:32 2009
@@ -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 */
@@ -294,6 +294,12 @@
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;
}
Modified: freeswitch/trunk/libs/spandsp/src/libspandsp.sln
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/libspandsp.sln (original)
+++ freeswitch/trunk/libs/spandsp/src/libspandsp.sln Fri Feb 20 12:22:32 2009
@@ -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}
Modified: freeswitch/trunk/libs/spandsp/src/logging.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/logging.c (original)
+++ freeswitch/trunk/libs/spandsp/src/logging.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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_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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/lpc10_decode.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/lpc10_decode.c (original)
+++ freeswitch/trunk/libs/spandsp/src/lpc10_decode.c Fri Feb 20 12:22:32 2009
@@ -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)
@@ -1077,6 +1077,12 @@
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;
}
Modified: freeswitch/trunk/libs/spandsp/src/lpc10_encode.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/lpc10_encode.c (original)
+++ freeswitch/trunk/libs/spandsp/src/lpc10_encode.c Fri Feb 20 12:22:32 2009
@@ -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)
@@ -365,6 +365,12 @@
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;
}
Modified: freeswitch/trunk/libs/spandsp/src/make_at_dictionary.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/make_at_dictionary.c (original)
+++ freeswitch/trunk/libs/spandsp/src/make_at_dictionary.c Fri Feb 20 12:22:32 2009
@@ -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_add(trie_t *s, const char *u, size_t len)
{
- int i;
+ size_t i;
int index;
trie_node_t *t;
Modified: freeswitch/trunk/libs/spandsp/src/make_modem_filter.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/make_modem_filter.c (original)
+++ freeswitch/trunk/libs/spandsp/src/make_modem_filter.c Fri Feb 20 12:22:32 2009
@@ -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
Modified: freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c (original)
+++ freeswitch/trunk/libs/spandsp/src/modem_connect_tones.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/msvc/config.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/msvc/config.h (original)
+++ freeswitch/trunk/libs/spandsp/src/msvc/config.h Fri Feb 20 12:22:32 2009
@@ -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
Added: freeswitch/trunk/libs/spandsp/src/msvc/getopt.c
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/spandsp/src/msvc/getopt.c Fri Feb 20 12:22:32 2009
@@ -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(a)bobblair.austin.ibm.com
+ *
+ * Extensively revised by:
+ * John Q. Walker II, Ph.D. (JOHHQ at RALVM6)
+ * Internet: johnq(a)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 */
+ }
+}
Added: freeswitch/trunk/libs/spandsp/src/msvc/make_at_dictionary.vcproj
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/spandsp/src/msvc/make_at_dictionary.vcproj Fri Feb 20 12:22:32 2009
@@ -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>
Added: freeswitch/trunk/libs/spandsp/src/msvc/make_headers.bat
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/spandsp/src/msvc/make_headers.bat Fri Feb 20 12:22:32 2009
@@ -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
+
Added: freeswitch/trunk/libs/spandsp/src/msvc/make_modem_filter.vcproj
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/spandsp/src/msvc/make_modem_filter.vcproj Fri Feb 20 12:22:32 2009
@@ -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>
Modified: freeswitch/trunk/libs/spandsp/src/msvc/unistd.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/msvc/unistd.h (original)
+++ freeswitch/trunk/libs/spandsp/src/msvc/unistd.h Fri Feb 20 12:22:32 2009
@@ -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 @@
#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
}
Modified: freeswitch/trunk/libs/spandsp/src/noise.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/noise.c (original)
+++ freeswitch/trunk/libs/spandsp/src/noise.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/oki_adpcm.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/oki_adpcm.c (original)
+++ freeswitch/trunk/libs/spandsp/src/oki_adpcm.c Fri Feb 20 12:22:32 2009
@@ -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 */
@@ -260,6 +260,12 @@
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;
}
Modified: freeswitch/trunk/libs/spandsp/src/playout.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/playout.c (original)
+++ freeswitch/trunk/libs/spandsp/src/playout.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
}
/*- 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 @@
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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/plc.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/plc.c (original)
+++ freeswitch/trunk/libs/spandsp/src/plc.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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)
Modified: freeswitch/trunk/libs/spandsp/src/power_meter.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/power_meter.c (original)
+++ freeswitch/trunk/libs/spandsp/src/power_meter.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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;
Modified: freeswitch/trunk/libs/spandsp/src/queue.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/queue.c (original)
+++ freeswitch/trunk/libs/spandsp/src/queue.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/schedule.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/schedule.c (original)
+++ freeswitch/trunk/libs/spandsp/src/schedule.c Fri Feb 20 12:22:32 2009
@@ -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 @@
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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/sig_tone.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/sig_tone.c (original)
+++ freeswitch/trunk/libs/spandsp/src/sig_tone.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/silence_gen.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/silence_gen.c (original)
+++ freeswitch/trunk/libs/spandsp/src/silence_gen.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/adsi.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/adsi.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/adsi.h Fri Feb 20 12:22:32 2009
@@ -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 @@
*/
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(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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/async.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/async.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/async.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/at_interpreter.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/at_interpreter.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/at_interpreter.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/awgn.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/awgn.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/awgn.h Fri Feb 20 12:22:32 2009
@@ -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_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)
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/bell_r2_mf.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/bell_r2_mf.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/bell_r2_mf.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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 @@
\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 @@
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 @@
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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/bert.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/bert.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/bert.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/bitstream.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/bitstream.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/bitstream.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/complex.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/complex.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/complex.h Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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;
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/dtmf.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/dtmf.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/dtmf.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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 @@
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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/echo.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/echo.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/echo.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/fast_convert.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/fast_convert.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/fast_convert.h Fri Feb 20 12:22:32 2009
@@ -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 @@
*/
#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 @@
);
return retval;
}
+#endif
/* The fastest way to convert is the equivalent of lrint() */
static __inline__ long int lfastrint(double x)
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/fax_modems.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/fsk.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/fsk.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/fsk.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/g711.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/g711.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/g711.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/g722.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/g722.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/g722.h Fri Feb 20 12:22:32 2009
@@ -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(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(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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/g726.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/g726.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/g726.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/gsm0610.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/gsm0610.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/gsm0610.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/hdlc.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/ima_adpcm.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/ima_adpcm.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/ima_adpcm.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/logging.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/logging.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/logging.h Fri Feb 20 12:22:32 2009
@@ -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_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_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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/lpc10.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/lpc10.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/lpc10.h Fri Feb 20 12:22:32 2009
@@ -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(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(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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/modem_connect_tones.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/modem_connect_tones.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/modem_connect_tones.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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 @@
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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/noise.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/noise.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/noise.h Fri Feb 20 12:22:32 2009
@@ -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_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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/oki_adpcm.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/oki_adpcm.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/oki_adpcm.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/playout.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/playout.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/playout.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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 @@
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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/plc.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/plc.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/plc.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/power_meter.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/power_meter.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/power_meter.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/queue.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/queue.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/queue.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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)
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/schedule.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/schedule.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/schedule.h Fri Feb 20 12:22:32 2009
@@ -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(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)
}
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/sig_tone.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/sig_tone.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/sig_tone.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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 @@
\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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/silence_gen.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/silence_gen.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/silence_gen.h Fri Feb 20 12:22:32 2009
@@ -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(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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_rx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_rx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_rx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_tx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_tx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/super_tone_tx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/t31.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/t31.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/t31.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/t38_core.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/t38_core.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/t38_core.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/t38_gateway.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/t38_gateway.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/t38_gateway.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/t38_non_ecm_buffer.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/t38_non_ecm_buffer.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/t38_non_ecm_buffer.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/t4.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/t4.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/t4.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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 @@
\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 @@
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 @@
\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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/time_scale.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/time_scale.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/time_scale.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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. */
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/tone_detect.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/tone_detect.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/tone_detect.h Fri Feb 20 12:22:32 2009
@@ -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(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);
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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)
}
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v17rx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v17rx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v17rx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v17tx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v17tx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v17tx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v22bis.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v22bis.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v22bis.h Fri Feb 20 12:22:32 2009
@@ -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 @@
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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_rx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_rx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_rx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_tx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_tx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v27ter_tx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v29rx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v29rx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v29rx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v29tx.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v29tx.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v29tx.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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.
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v42.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v42.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v42.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/v42bis.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/v42bis.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/v42bis.h Fri Feb 20 12:22:32 2009
@@ -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 @@
\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 @@
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
Modified: freeswitch/trunk/libs/spandsp/src/spandsp/version.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/version.h (original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/version.h Fri Feb 20 12:22:32 2009
@@ -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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/super_tone_rx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/super_tone_rx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/super_tone_rx.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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)
Modified: freeswitch/trunk/libs/spandsp/src/super_tone_tx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/super_tone_tx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/super_tone_tx.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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 @@
s = s->next;
free(t);
}
+ return 0;
}
/*- End of function --------------------------------------------------------*/
@@ -147,6 +148,20 @@
}
/*- 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;
Modified: freeswitch/trunk/libs/spandsp/src/t30.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t30.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t30.c Fri Feb 20 12:22:32 2009
@@ -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 @@
#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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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;
Modified: freeswitch/trunk/libs/spandsp/src/t31.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t31.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t31.c Fri Feb 20 12:22:32 2009
@@ -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(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;
}
Modified: freeswitch/trunk/libs/spandsp/src/t38_core.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t38_core.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t38_core.c Fri Feb 20 12:22:32 2009
@@ -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 @@
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 ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/t38_gateway.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t38_gateway.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t38_gateway.c Fri Feb 20 12:22:32 2009
@@ -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 @@
}
/*- 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);
Modified: freeswitch/trunk/libs/spandsp/src/t38_non_ecm_buffer.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t38_non_ecm_buffer.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t38_non_ecm_buffer.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.7 2009/02/04 13:18:53 steveu Exp $
+ * $Id: t38_non_ecm_buffer.c,v 1.8 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
@@ -261,6 +261,11 @@
SPAN_DECLARE(t38_non_ecm_buffer_state_t *) t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
{
+ if (s == NULL)
+ {
+ if ((s = (t38_non_ecm_buffer_state_t *) malloc(sizeof(*s))) == NULL)
+ return NULL;
+ }
memset(s, 0, sizeof(*s));
s->octet = 0xFF;
s->flow_control_fill_octet = 0xFF;
@@ -271,4 +276,18 @@
return s;
}
/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) t38_non_ecm_buffer_release(t38_non_ecm_buffer_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) t38_non_ecm_buffer_free(t38_non_ecm_buffer_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
/*- End of file ------------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/t38_terminal.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t38_terminal.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t38_terminal.c Fri Feb 20 12:22:32 2009
@@ -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_terminal.c,v 1.122 2009/02/03 16:28:40 steveu Exp $
+ * $Id: t38_terminal.c,v 1.123 2009/02/10 13:06:46 steveu Exp $
*/
/*! \file */
@@ -1160,7 +1160,7 @@
SPAN_DECLARE(int) t38_terminal_free(t38_terminal_state_t *s)
{
- t30_release(&s->t30);
+ t38_terminal_release(s);
free(s);
return 0;
}
Modified: freeswitch/trunk/libs/spandsp/src/t4.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t4.c (original)
+++ freeswitch/trunk/libs/spandsp/src/t4.c Fri Feb 20 12:22:32 2009
@@ -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: t4.c,v 1.123 2009/02/05 12:21:36 steveu Exp $
+ * $Id: t4.c,v 1.124 2009/02/10 13:06:46 steveu Exp $
*/
/*
@@ -150,6 +150,7 @@
#include "t4_states.h"
+#if defined(HAVE_LIBTIFF)
static int set_tiff_directory_info(t4_state_t *s)
{
time_t now;
@@ -354,6 +355,23 @@
}
/*- End of function --------------------------------------------------------*/
+static int get_tiff_total_pages(t4_state_t *s)
+{
+ int max;
+
+ /* Each page *should* contain the total number of pages, but can this be
+ trusted? Some files say 0. Actually searching for the last page is
+ more reliable. */
+ max = 0;
+ while (TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) max))
+ max++;
+ /* Back to the previous page */
+ if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
+ return -1;
+ return max;
+}
+/*- End of function --------------------------------------------------------*/
+
static int open_tiff_input_file(t4_state_t *s, const char *file)
{
if ((s->tiff.tiff_file = TIFFOpen(file, "r")) == NULL)
@@ -449,6 +467,57 @@
}
/*- End of function --------------------------------------------------------*/
+#else
+
+static int set_tiff_directory_info(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int get_tiff_directory_info(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int open_tiff_input_file(t4_state_t *s, const char *file)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int read_tiff_image(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int close_tiff_input_file(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int open_tiff_output_file(t4_state_t *s, const char *file)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static void write_tiff_image(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+static int close_tiff_output_file(t4_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+#endif
+
static void update_row_bit_info(t4_state_t *s)
{
if (s->row_bits > s->max_row_bits)
@@ -1327,7 +1396,7 @@
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) t4_rx_end(t4_state_t *s)
+SPAN_DECLARE(int) t4_rx_release(t4_state_t *s)
{
if (!s->rx)
return -1;
@@ -1340,10 +1409,11 @@
SPAN_DECLARE(int) t4_rx_free(t4_state_t *s)
{
- if (t4_rx_end(s))
- return -1;
+ int ret;
+
+ ret = t4_rx_release(s);
free(s);
- return 0;
+ return ret;
}
/*- End of function --------------------------------------------------------*/
@@ -1874,9 +1944,11 @@
this_image_width = 0;
if (s->row_read_handler == NULL)
{
+#if defined(HAVE_LIBTIFF)
if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
return -1;
TIFFGetField(s->tiff.tiff_file, TIFFTAG_IMAGEWIDTH, &this_image_width);
+#endif
}
s->image_size = 0;
s->tx_bitstream = 0;
@@ -2019,8 +2091,10 @@
{
if (s->row_read_handler == NULL)
{
+#if defined(HAVE_LIBTIFF)
if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred + 1))
return -1;
+#endif
}
}
return 0;
@@ -2089,7 +2163,7 @@
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(int) t4_tx_end(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_release(t4_state_t *s)
{
if (s->rx)
return -1;
@@ -2102,10 +2176,11 @@
SPAN_DECLARE(int) t4_tx_free(t4_state_t *s)
{
- if (t4_tx_end(s))
- return -1;
+ int ret;
+
+ ret = t4_tx_release(s);
free(s);
- return 0;
+ return ret;
}
/*- End of function --------------------------------------------------------*/
@@ -2157,19 +2232,11 @@
{
int max;
- /* Each page *should* contain the total number of pages, but can this be
- trusted? Some files say 0. Actually searching for the last page is
- more reliable. */
max = 0;
if (s->row_write_handler == NULL)
- {
- while (TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) max))
- max++;
- /* Back to the previous page */
- if (!TIFFSetDirectory(s->tiff.tiff_file, (tdir_t) s->pages_transferred))
- return -1;
- }
- s->pages_in_file = max;
+ max = get_tiff_total_pages(s);
+ if (max >= 0)
+ s->pages_in_file = max;
return max;
}
/*- End of function --------------------------------------------------------*/
Modified: freeswitch/trunk/libs/spandsp/src/time_scale.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/time_scale.c (original)
+++ freeswitch/trunk/libs/spandsp/src/time_scale.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.29 2009/02/03 16:28:40 steveu Exp $
+ * $Id: time_scale.c,v 1.30 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -158,6 +158,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) time_scale_release(time_scale_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) time_scale_free(time_scale_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/tone_detect.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/tone_detect.c (original)
+++ freeswitch/trunk/libs/spandsp/src/tone_detect.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.50 2009/02/03 16:28:40 steveu Exp $
+ * $Id: tone_detect.c,v 1.51 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file tone_detect.h */
@@ -91,6 +91,20 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) goertzel_release(goertzel_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) goertzel_free(goertzel_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(void) goertzel_reset(goertzel_state_t *s)
{
#if defined(SPANDSP_USE_FIXED_POINT)
Modified: freeswitch/trunk/libs/spandsp/src/tone_generate.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/tone_generate.c (original)
+++ freeswitch/trunk/libs/spandsp/src/tone_generate.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.49 2009/02/03 16:28:40 steveu Exp $
+ * $Id: tone_generate.c,v 1.50 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -129,6 +129,20 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) tone_gen_release(tone_gen_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) tone_gen_free(tone_gen_state_t *s)
+{
+ if (s)
+ free(s);
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples)
{
int samples;
Modified: freeswitch/trunk/libs/spandsp/src/v17rx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v17rx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v17rx.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.132 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v17rx.c,v 1.133 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -1263,6 +1263,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v17_rx_release(v17_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v17_rx_free(v17_rx_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/v17tx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v17tx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v17tx.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.70 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v17tx.c,v 1.71 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -407,6 +407,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v17_tx_release(v17_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v17_tx_free(v17_tx_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/v22bis_tx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v22bis_tx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v22bis_tx.c Fri Feb 20 12:22:32 2009
@@ -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_tx.c,v 1.50 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v22bis_tx.c,v 1.51 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -673,6 +673,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v22bis_release(v22bis_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v22bis_free(v22bis_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/v27ter_rx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v27ter_rx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v27ter_rx.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.116 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v27ter_rx.c,v 1.117 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -1115,6 +1115,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v27ter_rx_release(v27ter_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v27ter_rx_free(v27ter_rx_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/v27ter_tx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v27ter_tx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v27ter_tx.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.72 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v27ter_tx.c,v 1.73 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -421,6 +421,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v27ter_tx_release(v27ter_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v27ter_tx_free(v27ter_tx_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/v29rx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v29rx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v29rx.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.153 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v29rx.c,v 1.154 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -1141,6 +1141,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v29_rx_release(v29_rx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v29_rx_free(v29_rx_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/v29tx.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v29tx.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v29tx.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.85 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v29tx.c,v 1.86 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -377,6 +377,12 @@
}
/*- End of function --------------------------------------------------------*/
+SPAN_DECLARE(int) v29_tx_release(v29_tx_state_t *s)
+{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
SPAN_DECLARE(int) v29_tx_free(v29_tx_state_t *s)
{
free(s);
Modified: freeswitch/trunk/libs/spandsp/src/v42.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v42.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v42.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.49 2009/02/04 13:18:53 steveu Exp $
+ * $Id: v42.c,v 1.50 2009/02/10 13:06:47 steveu Exp $
*/
/* THIS IS A WORK IN PROGRESS. IT IS NOT FINISHED. */
@@ -1419,6 +1419,12 @@
SPAN_DECLARE(int) v42_release(v42_state_t *s)
{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) v42_free(v42_state_t *s)
+{
free(s);
return 0;
}
Modified: freeswitch/trunk/libs/spandsp/src/v42bis.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/v42bis.c (original)
+++ freeswitch/trunk/libs/spandsp/src/v42bis.c Fri Feb 20 12:22:32 2009
@@ -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.c,v 1.36 2009/02/03 16:28:40 steveu Exp $
+ * $Id: v42bis.c,v 1.37 2009/02/10 13:06:47 steveu Exp $
*/
/* THIS IS A WORK IN PROGRESS. IT IS NOT FINISHED.
@@ -689,6 +689,12 @@
SPAN_DECLARE(int) v42bis_release(v42bis_state_t *s)
{
+ return 0;
+}
+/*- End of function --------------------------------------------------------*/
+
+SPAN_DECLARE(int) v42bis_free(v42bis_state_t *s)
+{
free(s);
return 0;
}
Modified: freeswitch/trunk/libs/spandsp/src/vector_float.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/vector_float.c (original)
+++ freeswitch/trunk/libs/spandsp/src/vector_float.c Fri Feb 20 12:22:32 2009
@@ -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: vector_float.c,v 1.20 2009/02/03 16:28:40 steveu Exp $
+ * $Id: vector_float.c,v 1.21 2009/02/05 15:57:27 steveu Exp $
*/
/*! \file */
@@ -132,8 +132,8 @@
SPAN_DECLARE(void) vec_negatef(float z[], const float x[], int n)
{
int i;
- static const uint32_t mask = 0x80000000;
- static const float *fmask = (float *)&mask;
+ static const uint32_t mask = 0x80000000;
+ static const float *fmask = (float *) &mask;
__m128 n1;
__m128 n2;
Modified: freeswitch/trunk/libs/spandsp/tests/echo_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/echo_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/echo_tests.c Fri Feb 20 12:22:32 2009
@@ -25,7 +25,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: echo_tests.c,v 1.37 2008/11/30 10:17:31 steveu Exp $
+ * $Id: echo_tests.c,v 1.38 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page echo_can_tests_page Line echo cancellation for voice tests
@@ -654,7 +654,7 @@
//int coeff_index;
print_test_title("Performing basic sanity test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
local_cur = 0;
far_cur = 0;
@@ -779,7 +779,7 @@
/* Test 2 - Convergence and steady state residual and returned echo level test */
/* Test 2A - Convergence and reconvergence test with NLP enabled */
print_test_title("Performing test 2A - Convergence and reconvergence test with NLP enabled\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION | ECHO_CAN_USE_NLP);
@@ -828,7 +828,7 @@
/* Test 2 - Convergence and steady state residual and returned echo level test */
/* Test 2B - Convergence and reconverge with NLP disabled */
print_test_title("Performing test 2B - Convergence and reconverge with NLP disabled\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -882,7 +882,7 @@
/* Test 2 - Convergence and steady state residual and returned echo level test */
/* Test 2C(a) - Convergence with background noise present */
print_test_title("Performing test 2C(a) - Convergence with background noise present\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
awgn_init_dbm0(&far_noise_source, 7162534, -50.0f);
echo_can_flush(ctx);
@@ -918,7 +918,7 @@
/* Test 3 - Performance under double talk conditions */
/* Test 3A - Double talk test with low cancelled-end levels */
print_test_title("Performing test 3A - Double talk test with low cancelled-end levels\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -956,7 +956,7 @@
/* Test 3 - Performance under double talk conditions */
/* Test 3B(a) - Double talk stability test with high cancelled-end levels */
print_test_title("Performing test 3B(b) - Double talk stability test with high cancelled-end levels\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -996,7 +996,7 @@
/* Test 3 - Performance under double talk conditions */
/* Test 3B(b) - Double talk stability test with low cancelled-end levels */
print_test_title("Performing test 3B(b) - Double talk stability test with low cancelled-end levels\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -1036,7 +1036,7 @@
/* Test 3 - Performance under double talk conditions */
/* Test 3C - Double talk test with simulated conversation */
print_test_title("Performing test 3C - Double talk test with simulated conversation\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -1074,7 +1074,7 @@
/* Test 4 - Leak rate test */
print_test_title("Performing test 4 - Leak rate test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -1106,7 +1106,7 @@
/* Test 5 - Infinite return loss convergence test */
print_test_title("Performing test 5 - Infinite return loss convergence test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -1141,7 +1141,7 @@
/* Test 6 - Non-divergence on narrow-band signals */
print_test_title("Performing test 6 - Non-divergence on narrow-band signals\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_flush(ctx);
echo_can_adaption_mode(ctx, ECHO_CAN_USE_ADAPTION);
@@ -1210,7 +1210,7 @@
/* Test 7 - Stability */
print_test_title("Performing test 7 - Stability\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
/* Put tones through an unconverged canceller, and check nothing unpleasant
happens. */
@@ -1262,7 +1262,7 @@
/* Test 8 - Non-convergence on No 5, 6, and 7 in-band signalling */
print_test_title("Performing test 8 - Non-convergence on No 5, 6, and 7 in-band signalling\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 8 not yet implemented\n");
@@ -1279,7 +1279,7 @@
/* Test 9 - Comfort noise test */
print_test_title("Performing test 9 - Comfort noise test\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
awgn_init_dbm0(&far_noise_source, 7162534, -50.0f);
echo_can_flush(ctx);
@@ -1317,7 +1317,7 @@
/* Test 10 - FAX test during call establishment phase */
/* Test 10A - Canceller operation on the calling station side */
print_test_title("Performing test 10A - Canceller operation on the calling station side\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 10A not yet implemented\n");
@@ -1333,7 +1333,7 @@
/* Test 10 - FAX test during call establishment phase */
/* Test 10B - Canceller operation on the called station side */
print_test_title("Performing test 10B - Canceller operation on the called station side\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 10B not yet implemented\n");
@@ -1351,7 +1351,7 @@
transmission and page breaks (for further study) */
print_test_title("Performing test 10C - Canceller operation on the calling station side during page\n"
"transmission and page breaks (for further study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 10C not yet implemented\n");
@@ -1366,7 +1366,7 @@
/* Test 11 - Tandem echo canceller test (for further study) */
print_test_title("Performing test 11 - Tandem echo canceller test (for further study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 11 not yet implemented\n");
@@ -1381,7 +1381,7 @@
/* Test 12 - Residual acoustic echo test (for further study) */
print_test_title("Performing test 12 - Residual acoustic echo test (for further study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 12 not yet implemented\n");
@@ -1397,7 +1397,7 @@
/* Test 13 - Performance with ITU-T low-bit rate coders in echo path
(Optional, under study) */
print_test_title("Performing test 13 - Performance with ITU-T low-bit rate coders in echo path (Optional, under study)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 13 not yet implemented\n");
@@ -1412,7 +1412,7 @@
/* Test 14 - Performance with V-series low-speed data modems */
print_test_title("Performing test 14 - Performance with V-series low-speed data modems\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 14 not yet implemented\n");
@@ -1427,7 +1427,7 @@
/* Test 15 - PCM offset test (Optional) */
print_test_title("Performing test 15 - PCM offset test (Optional)\n");
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
fprintf(stderr, "Test 15 not yet implemented\n");
@@ -1525,7 +1525,7 @@
ecfile = afOpenFile_telephony_write(argv[1], 1);
}
- ctx = echo_can_create(TEST_EC_TAPS, 0);
+ ctx = echo_can_init(TEST_EC_TAPS, 0);
echo_can_adaption_mode(ctx, mode);
samples = 0;
do
Modified: freeswitch/trunk/libs/spandsp/tests/fax_decode.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/fax_decode.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/fax_decode.c Fri Feb 20 12:22:32 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: fax_decode.c,v 1.53 2009/01/27 05:13:12 steveu Exp $
+ * $Id: fax_decode.c,v 1.54 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page fax_decode_page FAX decoder
@@ -525,7 +525,7 @@
v29_rx(v29, amp, len);
//v27ter_rx(v27ter, amp, len);
}
- t4_rx_end(&t4_state);
+ t4_rx_release(&t4_state);
if (afCloseFile(inhandle) != 0)
{
Modified: freeswitch/trunk/libs/spandsp/tests/playout_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/playout_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/playout_tests.c Fri Feb 20 12:22:32 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: playout_tests.c,v 1.27 2008/11/15 14:27:29 steveu Exp $
+ * $Id: playout_tests.c,v 1.28 2009/02/10 13:06:47 steveu Exp $
*/
/*! \page playout_tests_page Playout (jitter buffering) tests
@@ -106,7 +106,7 @@
for (i = 0; i < BLOCK_LEN; i++)
fill[i] = 32767;
- if ((s = playout_new(2*BLOCK_LEN, 15*BLOCK_LEN)) == NULL)
+ if ((s = playout_init(2*BLOCK_LEN, 15*BLOCK_LEN)) == NULL)
return;
plc_init(&plc);
time_scale_init(&ts, SAMPLE_RATE, 1.0);
@@ -270,7 +270,7 @@
type = PLAYOUT_TYPE_SPEECH;
len = BLOCK_LEN;
- if ((s = playout_new(2*BLOCK_LEN, 2*BLOCK_LEN)) == NULL)
+ if ((s = playout_init(2*BLOCK_LEN, 2*BLOCK_LEN)) == NULL)
return;
for (i = 0; i < 1000000; i++)
{
Modified: freeswitch/trunk/libs/spandsp/tests/t4_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/t4_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/t4_tests.c Fri Feb 20 12:22:32 2009
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: t4_tests.c,v 1.65 2009/01/05 13:48:32 steveu Exp $
+ * $Id: t4_tests.c,v 1.66 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -354,7 +354,7 @@
dump_image_as_xxx(&receive_state);
t4_rx_end_page(&receive_state);
display_page_stats(&receive_state);
- t4_rx_end(&receive_state);
+ t4_rx_release(&receive_state);
}
else
{
@@ -501,8 +501,8 @@
t4_rx_end_page(&receive_state);
sends++;
}
- t4_tx_end(&send_state);
- t4_rx_end(&receive_state);
+ t4_tx_release(&send_state);
+ t4_rx_release(&receive_state);
/* And we should now have a matching received TIFF file. Note this will only match
at the image level. TIFF files allow a lot of ways to express the same thing,
so bit matching of the files is not the normal case. */
@@ -588,8 +588,8 @@
t4_rx_end_page(&receive_state);
break;
}
- t4_tx_end(&send_state);
- t4_rx_end(&receive_state);
+ t4_tx_release(&send_state);
+ t4_rx_release(&receive_state);
#endif
printf("Tests passed\n");
Modified: freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c (original)
+++ freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c Fri Feb 20 12:22:32 2009
@@ -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: tsb85_tests.c,v 1.28 2009/01/28 03:41:27 steveu Exp $
+ * $Id: tsb85_tests.c,v 1.29 2009/02/10 13:06:47 steveu Exp $
*/
/*! \file */
@@ -1019,7 +1019,7 @@
span_log(&s->logging, SPAN_LOG_FLOW, "We need to corrupt the image\n");
corrupt_image(s, image, len, (const char *) bad_rows);
}
- t4_tx_end(&t4_state);
+ t4_tx_release(&t4_state);
span_log(&s->logging, SPAN_LOG_FLOW, "Non-ECM image is %d bytes\n", len);
faxtester_set_non_ecm_image_buffer(s, image, len);
}
@@ -1059,7 +1059,7 @@
corrupt_image(s, image, len, (const char *) bad_rows);
}
/*endif*/
- t4_tx_end(&t4_state);
+ t4_tx_release(&t4_state);
span_log(&s->logging, SPAN_LOG_FLOW, "ECM image is %d bytes\n", len);
faxtester_set_ecm_image_buffer(s, image, len, ecm_block, ecm_frame_size, i);
}
1
0
Author: mikej
Date: Fri Feb 20 12:08:55 2009
New Revision: 12185
Log:
revert 12212
Added:
freeswitch/trunk/libs/spandsp/src/libtiff.vcproj
- copied unchanged from r12121, /freeswitch/trunk/libs/spandsp/src/libtiff.vcproj
Removed:
freeswitch/trunk/libs/spandsp/src/libspandsp.2008.vcproj
freeswitch/trunk/libs/spandsp/src/libtiff.2008.vcproj
Modified:
freeswitch/trunk/Freeswitch.2008.express.sln
freeswitch/trunk/Freeswitch.2008.sln
freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj
Modified: freeswitch/trunk/Freeswitch.2008.express.sln
==============================================================================
--- freeswitch/trunk/Freeswitch.2008.express.sln (original)
+++ freeswitch/trunk/Freeswitch.2008.express.sln Fri Feb 20 12:08:55 2009
@@ -573,12 +573,12 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download TIFF", "libs\win32\Download TIFF.2008.vcproj", "{2B8A45C9-FEB4-4734-AB37-8DB9DB899917}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2008.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
ProjectSection(ProjectDependencies) = postProject
{401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.2008.vcproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.vcproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"
ProjectSection(ProjectDependencies) = postProject
{2B8A45C9-FEB4-4734-AB37-8DB9DB899917} = {2B8A45C9-FEB4-4734-AB37-8DB9DB899917}
EndProjectSection
Modified: freeswitch/trunk/Freeswitch.2008.sln
==============================================================================
--- freeswitch/trunk/Freeswitch.2008.sln (original)
+++ freeswitch/trunk/Freeswitch.2008.sln Fri Feb 20 12:08:55 2009
@@ -951,12 +951,12 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download TIFF", "libs\win32\Download TIFF.2008.vcproj", "{2B8A45C9-FEB4-4734-AB37-8DB9DB899917}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.2008.vcproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtiff", "libs\spandsp\src\libtiff.vcproj", "{401A40CD-5DB4-4E34-AC68-FA99E9FAC014}"
ProjectSection(ProjectDependencies) = postProject
{2B8A45C9-FEB4-4734-AB37-8DB9DB899917} = {2B8A45C9-FEB4-4734-AB37-8DB9DB899917}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.2008.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspandsp", "libs\spandsp\src\libspandsp.vcproj", "{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
ProjectSection(ProjectDependencies) = postProject
{401A40CD-5DB4-4E34-AC68-FA99E9FAC014} = {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}
EndProjectSection
Modified: freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj (original)
+++ freeswitch/trunk/libs/spandsp/src/libspandsp.vcproj Fri Feb 20 12:08:55 2009
@@ -1,864 +1,304 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="8.00"
+ Version="9.00"
Name="libspandsp"
- ProjectGUID="{CF70F278-3364-4395-A2E1-23501C9B8AD2}"
+ ProjectGUID="{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"
RootNamespace="libspandsp"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
>
- <Platforms>
- <Platform
+ <Platforms>
+ <Platform
Name="Win32"
/>
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(SolutionDir)$(ConfigurationName)"
- ConfigurationType="4"
+ OutputDirectory="$(SolutionDir)Debug"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="1"
>
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
+ <Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="src; src\spandsp; src\msvc;..\libtiff\include"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;HAVE_CONFIG_H"
+ AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H"
+ MinimalRebuild="true"
BasicRuntimeChecks="3"
- ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
WarningLevel="4"
DebugInformationFormat="4"
+ CompileAs="1"
+ DisableSpecificWarnings="4127"
/>
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="./Debug\spandsp.lib"
+ TargetMachine="1"
/>
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
+ </Configuration>
+ <Configuration
Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(SolutionDir)$(ConfigurationName)"
- ConfigurationType="4"
+ OutputDirectory="$(SolutionDir)Release"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
>
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
+ <Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="src; src\spandsp; src\msvc;..\libtiff\include"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;HAVE_CONFIG_H"
- ProgramDataBaseFileName="$(OutDir)\$(ProjectName).pdb"
+ AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
WarningLevel="4"
DebugInformationFormat="3"
+ DisableSpecificWarnings="4127"
/>
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="./Release\spandsp.lib"
+ TargetMachine="1"
+ />
+ </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="adsi.c"
- >
- </File>
- <File
- RelativePath="async.c"
- >
- </File>
- <File
- RelativePath="at_interpreter.c"
- >
- </File>
- <File
- RelativePath="awgn.c"
- >
- </File>
- <File
- RelativePath="bell_r2_mf.c"
- >
- </File>
- <File
- RelativePath="bert.c"
- >
- </File>
- <File
- RelativePath="bit_operations.c"
- >
- </File>
- <File
- RelativePath="bitstream.c"
- >
- </File>
- <File
- RelativePath="complex_filters.c"
- >
- </File>
- <File
- RelativePath="complex_vector_float.c"
- >
- </File>
- <File
- RelativePath="complex_vector_int.c"
- >
- </File>
- <File
- RelativePath="crc.c"
- >
- </File>
- <File
- RelativePath="dds_float.c"
- >
- </File>
- <File
- RelativePath="dds_int.c"
- >
- </File>
- <File
- RelativePath="dtmf.c"
- >
- </File>
- <File
- RelativePath="echo.c"
- >
- </File>
- <File
- RelativePath="fax.c"
- >
- </File>
- <File
- RelativePath="fsk.c"
- >
- </File>
- <File
- RelativePath="g711.c"
- >
- </File>
- <File
- RelativePath="g722.c"
- >
- </File>
- <File
- RelativePath="g726.c"
- >
- </File>
- <File
- RelativePath="gsm0610_decode.c"
- >
- </File>
- <File
- RelativePath="gsm0610_encode.c"
- >
- </File>
- <File
- RelativePath="gsm0610_long_term.c"
- >
- </File>
- <File
- RelativePath="gsm0610_lpc.c"
- >
- </File>
- <File
- RelativePath="gsm0610_preprocess.c"
- >
- </File>
- <File
- RelativePath="gsm0610_rpe.c"
- >
- </File>
- <File
- RelativePath="gsm0610_short_term.c"
- >
- </File>
- <File
- RelativePath="hdlc.c"
- >
- </File>
- <File
- RelativePath="ima_adpcm.c"
- >
- </File>
- <File
- RelativePath="logging.c"
- >
- </File>
- <File
- RelativePath="lpc10_analyse.c"
- >
- </File>
- <File
- RelativePath="lpc10_decode.c"
- >
- </File>
- <File
- RelativePath="lpc10_encode.c"
- >
- </File>
- <File
- RelativePath="lpc10_placev.c"
- >
- </File>
- <File
- RelativePath="lpc10_voicing.c"
- >
- </File>
- <File
- RelativePath="modem_connect_tones.c"
- >
- </File>
- <File
- RelativePath="modem_echo.c"
- >
- </File>
- <File
- RelativePath="msvc/gettimeofday.c"
- >
- </File>
- <File
- RelativePath="noise.c"
- >
- </File>
- <File
- RelativePath="oki_adpcm.c"
- >
- </File>
- <File
- RelativePath="playout.c"
- >
- </File>
- <File
- RelativePath="plc.c"
- >
- </File>
- <File
- RelativePath="power_meter.c"
- >
- </File>
- <File
- RelativePath="queue.c"
- >
- </File>
- <File
- RelativePath="schedule.c"
- >
- </File>
- <File
- RelativePath="sig_tone.c"
- >
- </File>
- <File
- RelativePath="silence_gen.c"
- >
- </File>
- <File
- RelativePath="super_tone_rx.c"
- >
- </File>
- <File
- RelativePath="super_tone_tx.c"
- >
- </File>
- <File
- RelativePath="t30.c"
- >
- </File>
- <File
- RelativePath="t30_api.c"
- >
- </File>
- <File
- RelativePath="t30_logging.c"
- >
- </File>
- <File
- RelativePath="t31.c"
- >
- </File>
- <File
- RelativePath="t35.c"
- >
- </File>
- <File
- RelativePath="t38_core.c"
- >
- </File>
- <File
- RelativePath="t38_gateway.c"
- >
- </File>
- <File
- RelativePath="t38_non_ecm_buffer.c"
- >
- </File>
- <File
- RelativePath="t38_terminal.c"
- >
- </File>
- <File
- RelativePath="t4.c"
- >
- </File>
- <File
- RelativePath="testcpuid.c"
- >
- </File>
- <File
- RelativePath="time_scale.c"
- >
- </File>
- <File
- RelativePath="tone_detect.c"
- >
- </File>
- <File
- RelativePath="tone_generate.c"
- >
- </File>
- <File
- RelativePath="v17rx.c"
- >
- </File>
- <File
- RelativePath="v17tx.c"
- >
- </File>
- <File
- RelativePath="v22bis_rx.c"
- >
- </File>
- <File
- RelativePath="v22bis_tx.c"
- >
- </File>
- <File
- RelativePath="v27ter_rx.c"
- >
- </File>
- <File
- RelativePath="v27ter_tx.c"
- >
- </File>
- <File
- RelativePath="v29rx.c"
- >
- </File>
- <File
- RelativePath="v29tx.c"
- >
- </File>
- <File
- RelativePath="v42.c"
- >
- </File>
- <File
- RelativePath="v42bis.c"
- >
- </File>
- <File
- RelativePath="v8.c"
- >
- </File>
- <File
- RelativePath="vector_float.c"
- >
- </File>
- <File
- RelativePath="vector_int.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- >
- <File
- RelativePath="spandsp.h"
- >
- </File>
- <File
- RelativePath="spandsp/adsi.h"
- >
- </File>
- <File
- RelativePath="spandsp/arctan2.h"
- >
- </File>
- <File
- RelativePath="spandsp/async.h"
- >
- </File>
- <File
- RelativePath="spandsp/at_interpreter.h"
- >
- </File>
- <File
- RelativePath="spandsp/awgn.h"
- >
- </File>
- <File
- RelativePath="spandsp/bell_r2_mf.h"
- >
- </File>
- <File
- RelativePath="spandsp/bert.h"
- >
- </File>
- <File
- RelativePath="spandsp/biquad.h"
- >
- </File>
- <File
- RelativePath="spandsp/bit_operations.h"
- >
- </File>
- <File
- RelativePath="spandsp/bitstream.h"
- >
- </File>
- <File
- RelativePath="spandsp/complex.h"
- >
- </File>
- <File
- RelativePath="spandsp/complex_filters.h"
- >
- </File>
- <File
- RelativePath="spandsp/complex_vector_float.h"
- >
- </File>
- <File
- RelativePath="spandsp/complex_vector_int.h"
- >
- </File>
- <File
- RelativePath="spandsp/crc.h"
- >
- </File>
- <File
- RelativePath="spandsp/dc_restore.h"
- >
- </File>
- <File
- RelativePath="spandsp/dds.h"
- >
- </File>
- <File
- RelativePath="spandsp/dtmf.h"
- >
- </File>
- <File
- RelativePath="spandsp/echo.h"
- >
- </File>
- <File
- RelativePath="spandsp/expose.h"
- >
- </File>
- <File
- RelativePath="spandsp/fax.h"
- >
- </File>
- <File
- RelativePath="spandsp/fax_modems.h"
- >
- </File>
- <File
- RelativePath="spandsp/fir.h"
- >
- </File>
- <File
- RelativePath="spandsp/fsk.h"
- >
- </File>
- <File
- RelativePath="spandsp/g168models.h"
- >
- </File>
- <File
- RelativePath="spandsp/g711.h"
- >
- </File>
- <File
- RelativePath="spandsp/g722.h"
- >
- </File>
- <File
- RelativePath="spandsp/g726.h"
- >
- </File>
- <File
- RelativePath="spandsp/gsm0610.h"
- >
- </File>
- <File
- RelativePath="spandsp/hdlc.h"
- >
- </File>
- <File
- RelativePath="spandsp/ima_adpcm.h"
- >
- </File>
- <File
- RelativePath="spandsp/logging.h"
- >
- </File>
- <File
- RelativePath="spandsp/lpc10.h"
- >
- </File>
- <File
- RelativePath="spandsp/modem_connect_tones.h"
- >
- </File>
- <File
- RelativePath="spandsp/modem_echo.h"
- >
- </File>
- <File
- RelativePath="spandsp/noise.h"
- >
- </File>
- <File
- RelativePath="spandsp/oki_adpcm.h"
- >
- </File>
- <File
- RelativePath="spandsp/playout.h"
- >
- </File>
- <File
- RelativePath="spandsp/plc.h"
- >
- </File>
- <File
- RelativePath="spandsp/power_meter.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/adsi.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/bell_r2_mf.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/dtmf.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/fax.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/fax_modems.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/fsk.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/g722.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/g726.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/modem_connect_tones.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/t30.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/t31.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/t38_gateway.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/t38_non_ecm_buffer.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/t38_terminal.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/t4.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/v17rx.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/v17tx.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/v27ter_rx.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/v27ter_tx.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/v29rx.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/v29tx.h"
- >
- </File>
- <File
- RelativePath="spandsp/private/v8.h"
- >
- </File>
- <File
- RelativePath="spandsp/queue.h"
- >
- </File>
- <File
- RelativePath="spandsp/saturated.h"
- >
- </File>
- <File
- RelativePath="spandsp/schedule.h"
- >
- </File>
- <File
- RelativePath="spandsp/sig_tone.h"
- >
- </File>
- <File
- RelativePath="spandsp/silence_gen.h"
- >
- </File>
- <File
- RelativePath="spandsp/super_tone_rx.h"
- >
- </File>
- <File
- RelativePath="spandsp/super_tone_tx.h"
- >
- </File>
- <File
- RelativePath="spandsp/t30.h"
- >
- </File>
- <File
- RelativePath="spandsp/t30_api.h"
- >
- </File>
- <File
- RelativePath="spandsp/t30_fcf.h"
- >
- </File>
- <File
- RelativePath="spandsp/t30_logging.h"
- >
- </File>
- <File
- RelativePath="spandsp/t31.h"
- >
- </File>
- <File
- RelativePath="spandsp/t35.h"
- >
- </File>
- <File
- RelativePath="spandsp/t38_core.h"
- >
- </File>
- <File
- RelativePath="spandsp/t38_gateway.h"
- >
- </File>
- <File
- RelativePath="spandsp/t38_non_ecm_buffer.h"
- >
- </File>
- <File
- RelativePath="spandsp/t38_terminal.h"
- >
- </File>
- <File
- RelativePath="spandsp/t4.h"
- >
- </File>
- <File
- RelativePath="spandsp/telephony.h"
- >
- </File>
- <File
- RelativePath="spandsp/time_scale.h"
- >
- </File>
- <File
- RelativePath="spandsp/timing.h"
- >
- </File>
- <File
- RelativePath="spandsp/tone_detect.h"
- >
- </File>
- <File
- RelativePath="spandsp/tone_generate.h"
- >
- </File>
- <File
- RelativePath="spandsp/v17rx.h"
- >
- </File>
- <File
- RelativePath="spandsp/v17tx.h"
- >
- </File>
- <File
- RelativePath="spandsp/v22bis.h"
- >
- </File>
- <File
- RelativePath="spandsp/v27ter_rx.h"
- >
- </File>
- <File
- RelativePath="spandsp/v27ter_tx.h"
- >
- </File>
- <File
- RelativePath="spandsp/v29rx.h"
- >
- </File>
- <File
- RelativePath="spandsp/v29tx.h"
- >
- </File>
- <File
- RelativePath="spandsp/v42.h"
- >
- </File>
- <File
- RelativePath="spandsp/v42bis.h"
- >
- </File>
- <File
- RelativePath="spandsp/v8.h"
- >
- </File>
- <File
- RelativePath="spandsp/vector_float.h"
- >
- </File>
- <File
- RelativePath="spandsp/vector_int.h"
- >
- </File>
- <File
- RelativePath="spandsp/version.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>
- <File
- RelativePath=".\src\msvc\spandsp.def"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<File RelativePath="adsi.c"></File>
+<File RelativePath="async.c"></File>
+<File RelativePath="at_interpreter.c"></File>
+<File RelativePath="awgn.c"></File>
+<File RelativePath="bell_r2_mf.c"></File>
+<File RelativePath="bert.c"></File>
+<File RelativePath="bit_operations.c"></File>
+<File RelativePath="bitstream.c"></File>
+<File RelativePath="complex_filters.c"></File>
+<File RelativePath="complex_vector_float.c"></File>
+<File RelativePath="complex_vector_int.c"></File>
+<File RelativePath="crc.c"></File>
+<File RelativePath="dds_float.c"></File>
+<File RelativePath="dds_int.c"></File>
+<File RelativePath="dtmf.c"></File>
+<File RelativePath="echo.c"></File>
+<File RelativePath="fax.c"></File>
+<File RelativePath="fsk.c"></File>
+<File RelativePath="g711.c"></File>
+<File RelativePath="g722.c"></File>
+<File RelativePath="g726.c"></File>
+<File RelativePath="gsm0610_decode.c"></File>
+<File RelativePath="gsm0610_encode.c"></File>
+<File RelativePath="gsm0610_long_term.c"></File>
+<File RelativePath="gsm0610_lpc.c"></File>
+<File RelativePath="gsm0610_preprocess.c"></File>
+<File RelativePath="gsm0610_rpe.c"></File>
+<File RelativePath="gsm0610_short_term.c"></File>
+<File RelativePath="hdlc.c"></File>
+<File RelativePath="ima_adpcm.c"></File>
+<File RelativePath="logging.c"></File>
+<File RelativePath="lpc10_analyse.c"></File>
+<File RelativePath="lpc10_decode.c"></File>
+<File RelativePath="lpc10_encode.c"></File>
+<File RelativePath="lpc10_placev.c"></File>
+<File RelativePath="lpc10_voicing.c"></File>
+<File RelativePath="modem_echo.c"></File>
+<File RelativePath="modem_connect_tones.c"></File>
+<File RelativePath="noise.c"></File>
+<File RelativePath="oki_adpcm.c"></File>
+<File RelativePath="playout.c"></File>
+<File RelativePath="plc.c"></File>
+<File RelativePath="power_meter.c"></File>
+<File RelativePath="queue.c"></File>
+<File RelativePath="schedule.c"></File>
+<File RelativePath="sig_tone.c"></File>
+<File RelativePath="silence_gen.c"></File>
+<File RelativePath="super_tone_rx.c"></File>
+<File RelativePath="super_tone_tx.c"></File>
+<File RelativePath="t4.c"></File>
+<File RelativePath="t30.c"></File>
+<File RelativePath="t30_api.c"></File>
+<File RelativePath="t30_logging.c"></File>
+<File RelativePath="t31.c"></File>
+<File RelativePath="t35.c"></File>
+<File RelativePath="t38_core.c"></File>
+<File RelativePath="t38_gateway.c"></File>
+<File RelativePath="t38_non_ecm_buffer.c"></File>
+<File RelativePath="t38_terminal.c"></File>
+<File RelativePath="testcpuid.c"></File>
+<File RelativePath="time_scale.c"></File>
+<File RelativePath="tone_detect.c"></File>
+<File RelativePath="tone_generate.c"></File>
+<File RelativePath="v17rx.c"></File>
+<File RelativePath="v17tx.c"></File>
+<File RelativePath="v22bis_rx.c"></File>
+<File RelativePath="v22bis_tx.c"></File>
+<File RelativePath="v27ter_rx.c"></File>
+<File RelativePath="v27ter_tx.c"></File>
+<File RelativePath="v29rx.c"></File>
+<File RelativePath="v29tx.c"></File>
+<File RelativePath="v42.c"></File>
+<File RelativePath="v42bis.c"></File>
+<File RelativePath="v8.c"></File>
+<File RelativePath="vector_float.c"></File>
+<File RelativePath="vector_int.c"></File>
+<File RelativePath=".\msvc\gettimeofday.c"></File>
+</Filter><Filter Name="Header Files">
+<File RelativePath="spandsp/adsi.h"></File>
+<File RelativePath="spandsp/async.h"></File>
+<File RelativePath="spandsp/arctan2.h"></File>
+<File RelativePath="spandsp/at_interpreter.h"></File>
+<File RelativePath="spandsp/awgn.h"></File>
+<File RelativePath="spandsp/bell_r2_mf.h"></File>
+<File RelativePath="spandsp/bert.h"></File>
+<File RelativePath="spandsp/biquad.h"></File>
+<File RelativePath="spandsp/bit_operations.h"></File>
+<File RelativePath="spandsp/bitstream.h"></File>
+<File RelativePath="spandsp/crc.h"></File>
+<File RelativePath="spandsp/complex.h"></File>
+<File RelativePath="spandsp/complex_filters.h"></File>
+<File RelativePath="spandsp/complex_vector_float.h"></File>
+<File RelativePath="spandsp/complex_vector_int.h"></File>
+<File RelativePath="spandsp/dc_restore.h"></File>
+<File RelativePath="spandsp/dds.h"></File>
+<File RelativePath="spandsp/dtmf.h"></File>
+<File RelativePath="spandsp/echo.h"></File>
+<File RelativePath="spandsp/fast_convert.h"></File>
+<File RelativePath="spandsp/fax.h"></File>
+<File RelativePath="spandsp/fax_modems.h"></File>
+<File RelativePath="spandsp/fir.h"></File>
+<File RelativePath="spandsp/fsk.h"></File>
+<File RelativePath="spandsp/g168models.h"></File>
+<File RelativePath="spandsp/g711.h"></File>
+<File RelativePath="spandsp/g722.h"></File>
+<File RelativePath="spandsp/g726.h"></File>
+<File RelativePath="spandsp/gsm0610.h"></File>
+<File RelativePath="spandsp/hdlc.h"></File>
+<File RelativePath="spandsp/ima_adpcm.h"></File>
+<File RelativePath="spandsp/logging.h"></File>
+<File RelativePath="spandsp/lpc10.h"></File>
+<File RelativePath="spandsp/modem_echo.h"></File>
+<File RelativePath="spandsp/modem_connect_tones.h"></File>
+<File RelativePath="spandsp/noise.h"></File>
+<File RelativePath="spandsp/oki_adpcm.h"></File>
+<File RelativePath="spandsp/playout.h"></File>
+<File RelativePath="spandsp/plc.h"></File>
+<File RelativePath="spandsp/power_meter.h"></File>
+<File RelativePath="spandsp/queue.h"></File>
+<File RelativePath="spandsp/saturated.h"></File>
+<File RelativePath="spandsp/schedule.h"></File>
+<File RelativePath="spandsp/sig_tone.h"></File>
+<File RelativePath="spandsp/silence_gen.h"></File>
+<File RelativePath="spandsp/super_tone_rx.h"></File>
+<File RelativePath="spandsp/super_tone_tx.h"></File>
+<File RelativePath="spandsp/t4.h"></File>
+<File RelativePath="spandsp/t30.h"></File>
+<File RelativePath="spandsp/t30_api.h"></File>
+<File RelativePath="spandsp/t30_fcf.h"></File>
+<File RelativePath="spandsp/t30_logging.h"></File>
+<File RelativePath="spandsp/t31.h"></File>
+<File RelativePath="spandsp/t35.h"></File>
+<File RelativePath="spandsp/t38_core.h"></File>
+<File RelativePath="spandsp/t38_gateway.h"></File>
+<File RelativePath="spandsp/t38_non_ecm_buffer.h"></File>
+<File RelativePath="spandsp/t38_terminal.h"></File>
+<File RelativePath="spandsp/telephony.h"></File>
+<File RelativePath="spandsp/time_scale.h"></File>
+<File RelativePath="spandsp/timing.h"></File>
+<File RelativePath="spandsp/tone_detect.h"></File>
+<File RelativePath="spandsp/tone_generate.h"></File>
+<File RelativePath="spandsp/v17rx.h"></File>
+<File RelativePath="spandsp/v17tx.h"></File>
+<File RelativePath="spandsp/v22bis.h"></File>
+<File RelativePath="spandsp/v27ter_rx.h"></File>
+<File RelativePath="spandsp/v27ter_tx.h"></File>
+<File RelativePath="spandsp/v29rx.h"></File>
+<File RelativePath="spandsp/v29tx.h"></File>
+<File RelativePath="spandsp/v42.h"></File>
+<File RelativePath="spandsp/v42bis.h"></File>
+<File RelativePath="spandsp/v8.h"></File>
+<File RelativePath="spandsp/vector_float.h"></File>
+<File RelativePath="spandsp/vector_int.h"></File>
+<File RelativePath="spandsp/version.h"></File>
+<File RelativePath="spandsp/private/adsi.h"></File>
+<File RelativePath="spandsp/private/async.h"></File>
+<File RelativePath="spandsp/private/at_interpreter.h"></File>
+<File RelativePath="spandsp/private/awgn.h"></File>
+<File RelativePath="spandsp/private/bell_r2_mf.h"></File>
+<File RelativePath="spandsp/private/bert.h"></File>
+<File RelativePath="spandsp/private/bitstream.h"></File>
+<File RelativePath="spandsp/private/dtmf.h"></File>
+<File RelativePath="spandsp/private/fax.h"></File>
+<File RelativePath="spandsp/private/fax_modems.h"></File>
+<File RelativePath="spandsp/private/fsk.h"></File>
+<File RelativePath="spandsp/private/g711.h"></File>
+<File RelativePath="spandsp/private/g722.h"></File>
+<File RelativePath="spandsp/private/g726.h"></File>
+<File RelativePath="spandsp/private/gsm0610.h"></File>
+<File RelativePath="spandsp/private/hdlc.h"></File>
+<File RelativePath="spandsp/private/ima_adpcm.h"></File>
+<File RelativePath="spandsp/private/logging.h"></File>
+<File RelativePath="spandsp/private/lpc10.h"></File>
+<File RelativePath="spandsp/private/modem_connect_tones.h"></File>
+<File RelativePath="spandsp/private/noise.h"></File>
+<File RelativePath="spandsp/private/oki_adpcm.h"></File>
+<File RelativePath="spandsp/private/queue.h"></File>
+<File RelativePath="spandsp/private/schedule.h"></File>
+<File RelativePath="spandsp/private/sig_tone.h"></File>
+<File RelativePath="spandsp/private/super_tone_rx.h"></File>
+<File RelativePath="spandsp/private/super_tone_tx.h"></File>
+<File RelativePath="spandsp/private/t30.h"></File>
+<File RelativePath="spandsp/private/t31.h"></File>
+<File RelativePath="spandsp/private/t38_core.h"></File>
+<File RelativePath="spandsp/private/t38_gateway.h"></File>
+<File RelativePath="spandsp/private/t38_non_ecm_buffer.h"></File>
+<File RelativePath="spandsp/private/t38_terminal.h"></File>
+<File RelativePath="spandsp/private/t4.h"></File>
+<File RelativePath="spandsp/private/time_scale.h"></File>
+<File RelativePath="spandsp/private/tone_detect.h"></File>
+<File RelativePath="spandsp/private/tone_generate.h"></File>
+<File RelativePath="spandsp/private/v17rx.h"></File>
+<File RelativePath="spandsp/private/v17tx.h"></File>
+<File RelativePath="spandsp/private/v22bis.h"></File>
+<File RelativePath="spandsp/private/v27ter_rx.h"></File>
+<File RelativePath="spandsp/private/v27ter_tx.h"></File>
+<File RelativePath="spandsp/private/v29rx.h"></File>
+<File RelativePath="spandsp/private/v29tx.h"></File>
+<File RelativePath="spandsp/private/v42.h"></File>
+<File RelativePath="spandsp/private/v42bis.h"></File>
+<File RelativePath="spandsp/private/v8.h"></File>
+<File RelativePath="spandsp/expose.h"></File>
+<File RelativePath="spandsp.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>
1
0
Author: brian
Date: Fri Feb 20 12:07:35 2009
New Revision: 12184
Log:
fix python and commit an python example.
Added:
freeswitch/trunk/libs/esl/python/single_command.py
Modified:
freeswitch/trunk/libs/esl/python/Makefile
Modified: freeswitch/trunk/libs/esl/python/Makefile
==============================================================================
--- freeswitch/trunk/libs/esl/python/Makefile (original)
+++ freeswitch/trunk/libs/esl/python/Makefile Fri Feb 20 12:07:35 2009
@@ -1,7 +1,7 @@
LOCAL_CFLAGS=-I/usr/include/python2.4
LOCAL_LDFLAGS=-lpython2.4
-all: ESL.so
+all: _ESL.so
esl_wrap.cpp:
swig -module ESL -classic -python -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
@@ -9,8 +9,8 @@
esl_wrap.o: esl_wrap.cpp
$(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) -c esl_wrap.cpp -o esl_wrap.o
-ESL.so: esl_wrap.o
- $(CXX) $(SOLINK) esl_wrap.o $(MYLIB) $(LOCAL_LDFLAGS) -o ESL.so -L. $(LIBS)
+_ESL.so: esl_wrap.o
+ $(CXX) $(SOLINK) esl_wrap.o $(MYLIB) $(LOCAL_LDFLAGS) -o _ESL.so -L. $(LIBS)
clean:
rm -f *.o *.so *~
Added: freeswitch/trunk/libs/esl/python/single_command.py
==============================================================================
--- (empty file)
+++ freeswitch/trunk/libs/esl/python/single_command.py Fri Feb 20 12:07:35 2009
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+
+import string
+import sys
+from ESL import *
+
+con = ESLconnection("localhost","8021","ClueCon")
+#are we connected?
+
+if con.connected:
+
+ #get argument passed to script
+ command = string.join(sys.argv[1:])
+
+ #run command
+ e=con.sendRecv("api "+ command)
+ print e.getBody()
+
+else:
+
+ print "Not Connected"
+
1
0
Author: mikej
Date: Fri Feb 20 12:04:57 2009
New Revision: 12183
Log:
clean msvc build warning
Modified:
freeswitch/trunk/src/switch_log.c
Modified: freeswitch/trunk/src/switch_log.c
==============================================================================
--- freeswitch/trunk/src/switch_log.c (original)
+++ freeswitch/trunk/src/switch_log.c Fri Feb 20 12:04:57 2009
@@ -195,7 +195,7 @@
static switch_thread_t *thread;
-static void *SWITCH_THREAD_FUNC log_thread(switch_thread_t *thread, void *obj)
+static void *SWITCH_THREAD_FUNC log_thread(switch_thread_t *t, void *obj)
{
if (!obj) {
1
0
[commit] r12182 - in freeswitch/trunk/libs/esl: lua perl php python ruby src src/include
by FreeSWITCH SVN 20 Feb '09
by FreeSWITCH SVN 20 Feb '09
20 Feb '09
Author: anthm
Date: Fri Feb 20 11:16:36 2009
New Revision: 12182
Log:
allow null arg to api and bgapi method
Modified:
freeswitch/trunk/libs/esl/lua/esl_wrap.cpp
freeswitch/trunk/libs/esl/perl/esl_wrap.cpp
freeswitch/trunk/libs/esl/php/ESL.php
freeswitch/trunk/libs/esl/php/esl_wrap.cpp
freeswitch/trunk/libs/esl/python/esl_wrap.cpp
freeswitch/trunk/libs/esl/ruby/esl_wrap.cpp
freeswitch/trunk/libs/esl/src/esl_oop.cpp
freeswitch/trunk/libs/esl/src/include/esl_oop.h
Modified: freeswitch/trunk/libs/esl/lua/esl_wrap.cpp
==============================================================================
--- freeswitch/trunk/libs/esl/lua/esl_wrap.cpp (original)
+++ freeswitch/trunk/libs/esl/lua/esl_wrap.cpp Fri Feb 20 11:16:36 2009
@@ -2337,20 +2337,22 @@
int SWIG_arg = -1;
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
- SWIG_check_num_args("api",3,3)
+ SWIG_check_num_args("api",2,3)
if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("api",1,"ESLconnection *");
if(!lua_isstring(L,2)) SWIG_fail_arg("api",2,"char const *");
- if(!lua_isstring(L,3)) SWIG_fail_arg("api",3,"char const *");
+ if(lua_gettop(L)>=3 && !lua_isstring(L,3)) SWIG_fail_arg("api",3,"char const *");
if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
SWIG_fail_ptr("ESLconnection_api",1,SWIGTYPE_p_ESLconnection);
}
arg2 = (char *)lua_tostring(L, 2);
- arg3 = (char *)lua_tostring(L, 3);
+ if(lua_gettop(L)>=3){
+ arg3 = (char *)lua_tostring(L, 3);
+ }
result = (ESLevent *)(arg1)->api((char const *)arg2,(char const *)arg3);
SWIG_arg=0;
SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,0); SWIG_arg++;
@@ -2368,20 +2370,22 @@
int SWIG_arg = -1;
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
- SWIG_check_num_args("bgapi",3,3)
+ SWIG_check_num_args("bgapi",2,3)
if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("bgapi",1,"ESLconnection *");
if(!lua_isstring(L,2)) SWIG_fail_arg("bgapi",2,"char const *");
- if(!lua_isstring(L,3)) SWIG_fail_arg("bgapi",3,"char const *");
+ if(lua_gettop(L)>=3 && !lua_isstring(L,3)) SWIG_fail_arg("bgapi",3,"char const *");
if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
SWIG_fail_ptr("ESLconnection_bgapi",1,SWIGTYPE_p_ESLconnection);
}
arg2 = (char *)lua_tostring(L, 2);
- arg3 = (char *)lua_tostring(L, 3);
+ if(lua_gettop(L)>=3){
+ arg3 = (char *)lua_tostring(L, 3);
+ }
result = (ESLevent *)(arg1)->bgapi((char const *)arg2,(char const *)arg3);
SWIG_arg=0;
SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,0); SWIG_arg++;
Modified: freeswitch/trunk/libs/esl/perl/esl_wrap.cpp
==============================================================================
--- freeswitch/trunk/libs/esl/perl/esl_wrap.cpp (original)
+++ freeswitch/trunk/libs/esl/perl/esl_wrap.cpp Fri Feb 20 11:16:36 2009
@@ -2828,7 +2828,7 @@
{
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -2841,7 +2841,7 @@
int argvi = 0;
dXSARGS;
- if ((items < 3) || (items > 3)) {
+ if ((items < 2) || (items > 3)) {
SWIG_croak("Usage: ESLconnection_api(self,cmd,arg);");
}
res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_ESLconnection, 0 | 0 );
@@ -2854,11 +2854,13 @@
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ESLconnection_api" "', argument " "2"" of type '" "char const *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_api" "', argument " "3"" of type '" "char const *""'");
+ if (items > 2) {
+ res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_api" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
}
- arg3 = reinterpret_cast< char * >(buf3);
result = (ESLevent *)(arg1)->api((char const *)arg2,(char const *)arg3);
ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, 0 | SWIG_SHADOW); argvi++ ;
@@ -2878,7 +2880,7 @@
{
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -2891,7 +2893,7 @@
int argvi = 0;
dXSARGS;
- if ((items < 3) || (items > 3)) {
+ if ((items < 2) || (items > 3)) {
SWIG_croak("Usage: ESLconnection_bgapi(self,cmd,arg);");
}
res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_ESLconnection, 0 | 0 );
@@ -2904,11 +2906,13 @@
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ESLconnection_bgapi" "', argument " "2"" of type '" "char const *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_bgapi" "', argument " "3"" of type '" "char const *""'");
+ if (items > 2) {
+ res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_bgapi" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
}
- arg3 = reinterpret_cast< char * >(buf3);
result = (ESLevent *)(arg1)->bgapi((char const *)arg2,(char const *)arg3);
ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, 0 | SWIG_SHADOW); argvi++ ;
Modified: freeswitch/trunk/libs/esl/php/ESL.php
==============================================================================
--- freeswitch/trunk/libs/esl/php/ESL.php (original)
+++ freeswitch/trunk/libs/esl/php/ESL.php Fri Feb 20 11:16:36 2009
@@ -131,13 +131,19 @@
return is_resource($r) ? new ESLevent($r) : $r;
}
- function api($cmd,$arg) {
- $r=ESLconnection_api($this->_cPtr,$cmd,$arg);
+ function api($cmd,$arg=null) {
+ switch (func_num_args()) {
+ case 1: $r=ESLconnection_api($this->_cPtr,$cmd); break;
+ default: $r=ESLconnection_api($this->_cPtr,$cmd,$arg);
+ }
return is_resource($r) ? new ESLevent($r) : $r;
}
- function bgapi($cmd,$arg) {
- $r=ESLconnection_bgapi($this->_cPtr,$cmd,$arg);
+ function bgapi($cmd,$arg=null) {
+ switch (func_num_args()) {
+ case 1: $r=ESLconnection_bgapi($this->_cPtr,$cmd); break;
+ default: $r=ESLconnection_bgapi($this->_cPtr,$cmd,$arg);
+ }
return is_resource($r) ? new ESLevent($r) : $r;
}
Modified: freeswitch/trunk/libs/esl/php/esl_wrap.cpp
==============================================================================
--- freeswitch/trunk/libs/esl/php/esl_wrap.cpp (original)
+++ freeswitch/trunk/libs/esl/php/esl_wrap.cpp Fri Feb 20 11:16:36 2009
@@ -1889,14 +1889,16 @@
ZEND_NAMED_FUNCTION(_wrap_ESLconnection_api) {
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
zval **args[3];
+ int arg_count;
SWIG_ResetError();
- if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_array_ex(3, args) != SUCCESS) {
- WRONG_PARAM_COUNT;
- }
+ arg_count = ZEND_NUM_ARGS();
+ if(arg_count<2 || arg_count>3 ||
+ zend_get_parameters_array_ex(arg_count,args)!=SUCCESS)
+ WRONG_PARAM_COUNT;
{
if(SWIG_ConvertPtr(*args[0], (void **) &arg1, SWIGTYPE_p_ESLconnection, 0) < 0) {
@@ -1910,12 +1912,13 @@
arg2 = (char *) Z_STRVAL_PP(args[1]);
/*@SWIG@*/;
-
- /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
- convert_to_string_ex(args[2]);
- arg3 = (char *) Z_STRVAL_PP(args[2]);
- /*@SWIG@*/;
-
+ if(arg_count > 2) {
+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
+ convert_to_string_ex(args[2]);
+ arg3 = (char *) Z_STRVAL_PP(args[2]);
+ /*@SWIG@*/;
+
+ }
result = (ESLevent *)(arg1)->api((char const *)arg2,(char const *)arg3);
{
SWIG_SetPointerZval(return_value, (void *)result, SWIGTYPE_p_ESLevent, 0);
@@ -1929,14 +1932,16 @@
ZEND_NAMED_FUNCTION(_wrap_ESLconnection_bgapi) {
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
zval **args[3];
+ int arg_count;
SWIG_ResetError();
- if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_array_ex(3, args) != SUCCESS) {
- WRONG_PARAM_COUNT;
- }
+ arg_count = ZEND_NUM_ARGS();
+ if(arg_count<2 || arg_count>3 ||
+ zend_get_parameters_array_ex(arg_count,args)!=SUCCESS)
+ WRONG_PARAM_COUNT;
{
if(SWIG_ConvertPtr(*args[0], (void **) &arg1, SWIGTYPE_p_ESLconnection, 0) < 0) {
@@ -1950,12 +1955,13 @@
arg2 = (char *) Z_STRVAL_PP(args[1]);
/*@SWIG@*/;
-
- /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
- convert_to_string_ex(args[2]);
- arg3 = (char *) Z_STRVAL_PP(args[2]);
- /*@SWIG@*/;
-
+ if(arg_count > 2) {
+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
+ convert_to_string_ex(args[2]);
+ arg3 = (char *) Z_STRVAL_PP(args[2]);
+ /*@SWIG@*/;
+
+ }
result = (ESLevent *)(arg1)->bgapi((char const *)arg2,(char const *)arg3);
{
SWIG_SetPointerZval(return_value, (void *)result, SWIGTYPE_p_ESLevent, 0);
Modified: freeswitch/trunk/libs/esl/python/esl_wrap.cpp
==============================================================================
--- freeswitch/trunk/libs/esl/python/esl_wrap.cpp (original)
+++ freeswitch/trunk/libs/esl/python/esl_wrap.cpp Fri Feb 20 11:16:36 2009
@@ -3732,7 +3732,7 @@
PyObject *resultobj = 0;
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -3746,7 +3746,7 @@
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OOO:ESLconnection_api",&obj0,&obj1,&obj2)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OO|O:ESLconnection_api",&obj0,&obj1,&obj2)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ESLconnection, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ESLconnection_api" "', argument " "1"" of type '" "ESLconnection *""'");
@@ -3757,11 +3757,13 @@
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ESLconnection_api" "', argument " "2"" of type '" "char const *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_api" "', argument " "3"" of type '" "char const *""'");
+ if (obj2) {
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_api" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
}
- arg3 = reinterpret_cast< char * >(buf3);
result = (ESLevent *)(arg1)->api((char const *)arg2,(char const *)arg3);
resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, 0 | 0 );
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
@@ -3778,7 +3780,7 @@
PyObject *resultobj = 0;
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -3792,7 +3794,7 @@
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OOO:ESLconnection_bgapi",&obj0,&obj1,&obj2)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OO|O:ESLconnection_bgapi",&obj0,&obj1,&obj2)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ESLconnection, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ESLconnection_bgapi" "', argument " "1"" of type '" "ESLconnection *""'");
@@ -3803,11 +3805,13 @@
SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ESLconnection_bgapi" "', argument " "2"" of type '" "char const *""'");
}
arg2 = reinterpret_cast< char * >(buf2);
- res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_bgapi" "', argument " "3"" of type '" "char const *""'");
+ if (obj2) {
+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ESLconnection_bgapi" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
}
- arg3 = reinterpret_cast< char * >(buf3);
result = (ESLevent *)(arg1)->bgapi((char const *)arg2,(char const *)arg3);
resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, 0 | 0 );
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
Modified: freeswitch/trunk/libs/esl/ruby/esl_wrap.cpp
==============================================================================
--- freeswitch/trunk/libs/esl/ruby/esl_wrap.cpp (original)
+++ freeswitch/trunk/libs/esl/ruby/esl_wrap.cpp Fri Feb 20 11:16:36 2009
@@ -2855,7 +2855,7 @@
_wrap_ESLconnection_api(int argc, VALUE *argv, VALUE self) {
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -2867,8 +2867,8 @@
int alloc3 = 0 ;
VALUE vresult = Qnil;
- if ((argc < 2) || (argc > 2)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ if ((argc < 1) || (argc > 2)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_ESLconnection, 0 | 0 );
if (!SWIG_IsOK(res1)) {
@@ -2880,11 +2880,13 @@
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","api", 2, argv[0] ));
}
arg2 = reinterpret_cast< char * >(buf2);
- res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","api", 3, argv[1] ));
+ if (argc > 1) {
+ res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","api", 3, argv[1] ));
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
}
- arg3 = reinterpret_cast< char * >(buf3);
result = (ESLevent *)(arg1)->api((char const *)arg2,(char const *)arg3);
vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, 0 | 0 );
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
@@ -2901,7 +2903,7 @@
_wrap_ESLconnection_bgapi(int argc, VALUE *argv, VALUE self) {
ESLconnection *arg1 = (ESLconnection *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
+ char *arg3 = (char *) NULL ;
ESLevent *result = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
@@ -2913,8 +2915,8 @@
int alloc3 = 0 ;
VALUE vresult = Qnil;
- if ((argc < 2) || (argc > 2)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ if ((argc < 1) || (argc > 2)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_ESLconnection, 0 | 0 );
if (!SWIG_IsOK(res1)) {
@@ -2926,11 +2928,13 @@
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","bgapi", 2, argv[0] ));
}
arg2 = reinterpret_cast< char * >(buf2);
- res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","bgapi", 3, argv[1] ));
+ if (argc > 1) {
+ res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","bgapi", 3, argv[1] ));
+ }
+ arg3 = reinterpret_cast< char * >(buf3);
}
- arg3 = reinterpret_cast< char * >(buf3);
result = (ESLevent *)(arg1)->bgapi((char const *)arg2,(char const *)arg3);
vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, 0 | 0 );
if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
Modified: freeswitch/trunk/libs/esl/src/esl_oop.cpp
==============================================================================
--- freeswitch/trunk/libs/esl/src/esl_oop.cpp (original)
+++ freeswitch/trunk/libs/esl/src/esl_oop.cpp Fri Feb 20 11:16:36 2009
@@ -56,13 +56,19 @@
ESLevent *ESLconnection::api(const char *cmd, const char *arg)
{
- size_t len = strlen(cmd) + strlen(arg) + 5;
+ size_t len;
char *cmd_buf;
+ if (!cmd) {
+ return NULL;
+ }
+
+ len = strlen(cmd) + (arg ? strlen(arg) : 0) + 5;
+
cmd_buf = (char *) malloc(len);
assert(cmd_buf);
- snprintf(cmd_buf, len, "api %s %s", cmd, arg);
+ snprintf(cmd_buf, len, "api %s %s", cmd, arg ? arg : "");
*(cmd_buf + len) = '\0';
if (esl_send_recv(&handle, cmd_buf) == ESL_SUCCESS) {
@@ -78,13 +84,19 @@
ESLevent *ESLconnection::bgapi(const char *cmd, const char *arg)
{
- size_t len = strlen(cmd) + strlen(arg) + 5;
+ size_t len;
char *cmd_buf;
+ if (!cmd) {
+ return NULL;
+ }
+
+ len = strlen(cmd) + (arg ? strlen(arg) : 0) + 5;
+
cmd_buf = (char *) malloc(len);
assert(cmd_buf);
- snprintf(cmd_buf, len, "bgapi %s %s", cmd, arg);
+ snprintf(cmd_buf, len, "bgapi %s %s", cmd, arg ? arg : "");
*(cmd_buf + len) = '\0';
if (esl_send_recv(&handle, cmd_buf) == ESL_SUCCESS) {
Modified: freeswitch/trunk/libs/esl/src/include/esl_oop.h
==============================================================================
--- freeswitch/trunk/libs/esl/src/include/esl_oop.h (original)
+++ freeswitch/trunk/libs/esl/src/include/esl_oop.h Fri Feb 20 11:16:36 2009
@@ -77,8 +77,8 @@
ESLevent *getInfo();
esl_status_t send(const char *cmd);
ESLevent *sendRecv(const char *cmd);
- ESLevent *api(const char *cmd, const char *arg);
- ESLevent *bgapi(const char *cmd, const char *arg);
+ ESLevent *api(const char *cmd, const char *arg = NULL);
+ ESLevent *bgapi(const char *cmd, const char *arg = NULL);
esl_status_t sendEvent(ESLevent *send_me);
ESLevent *recvEvent();
ESLevent *recvEventTimed(int ms);
1
0
Author: anthm
Date: Fri Feb 20 10:54:08 2009
New Revision: 12181
Log:
change example
Modified:
freeswitch/trunk/libs/esl/perl/single_command.pl
Modified: freeswitch/trunk/libs/esl/perl/single_command.pl
==============================================================================
--- freeswitch/trunk/libs/esl/perl/single_command.pl (original)
+++ freeswitch/trunk/libs/esl/perl/single_command.pl Fri Feb 20 10:54:08 2009
@@ -1,6 +1,8 @@
require ESL;
-my $command = join(" ", @ARGV);
+my $command = shift;
+my $args = join(" ", @ARGV);
+
my $con = new ESL::ESLconnection("localhost", "8021", "ClueCon");
-my $e = $con->sendRecv("api $command");
+my $e = $con->api($command, $args);
print $e->getBody();
1
0