]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
update to snapshot spandsp-20090212
authorMichael Jerris <mike@jerris.com>
Fri, 20 Feb 2009 18:25:22 +0000 (18:25 +0000)
committerMichael Jerris <mike@jerris.com>
Fri, 20 Feb 2009 18:25:22 +0000 (18:25 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12187 d0543943-73ff-0310-b7d9-9358b9ac24b2

22 files changed:
libs/spandsp/spandsp-sim/make_line_models.c
libs/spandsp/src/hdlc.c
libs/spandsp/src/logging.c
libs/spandsp/src/msvc/spandsp.h
libs/spandsp/src/spandsp.h.in
libs/spandsp/src/spandsp/async.h
libs/spandsp/src/spandsp/hdlc.h
libs/spandsp/src/spandsp/logging.h
libs/spandsp/src/spandsp/private/hdlc.h
libs/spandsp/src/spandsp/private/t31.h
libs/spandsp/src/spandsp/version.h
libs/spandsp/src/super_tone_tx.c
libs/spandsp/src/t31.c
libs/spandsp/src/t38_gateway.c
libs/spandsp/tests/fax_tester.c
libs/spandsp/tests/fsk_tests.c
libs/spandsp/tests/logging_tests.c
libs/spandsp/tests/make_g168_css.c
libs/spandsp/tests/super_tone_tx_tests.c
libs/spandsp/tests/v17_tests.c
libs/spandsp/tests/v27ter_tests.c
libs/spandsp/tests/v29_tests.c

index 62a46f38b3629fccfca14c6e8a757df1473665b5..aabbfd2602ded7287db45f7006502fa837e9efe5 100644 (file)
@@ -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
 #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"
 
index 328838dd4ed78dd6f1c790a1fa98cffaa3a6c918..221debb5e6048e083fd35d0aa279603eb0af5f71 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: hdlc.c,v 1.70 2009/02/10 13:06:46 steveu Exp $
+ * $Id: hdlc.c,v 1.71 2009/02/12 12:38:39 steveu Exp $
  */
 
 /*! \file */
 #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 @@ static void rx_special_condition(hdlc_rx_state_t *s, int condition)
     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 @@ static __inline__ void octet_set_and_count(hdlc_rx_state_t *s)
         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 @@ static __inline__ void octet_count(hdlc_rx_state_t *s)
         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 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
     {
         /* 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 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
                         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 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
                         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 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
                             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 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
             }
             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 @@ SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
     }
     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 @@ SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
 }
 /*- 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;
index 9017a0c2265c048c7be4ba30a2dda17b5a0ab55f..2ca54a1d269694194b5ac0617b322b0583326045 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: 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 @@ SPAN_DECLARE(void) span_set_error_handler(error_handler_func_t func)
 }
 /*- 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 @@ SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag)
     s->samples_per_second = SAMPLE_RATE;
     s->elapsed_samples = 0;
 
-    return  0;
+    return s;
 }
 /*- End of function --------------------------------------------------------*/
 
index c454e38d97cf168cdba49e4bc97a2bc0b89f7f44..c46a5257a2bb40c8b2b211a4789296a245d9f6fd 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: 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>
index 0744559ab0214a9ccc718ee7ef4d54caf4ee8290..f0be865e25a77f92a0f3027f12ed619828e0fa12 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: 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>
index a167618b377b6e9a9665eb31040553d4414f77ef..4584e13181adb177ad191a88cfec5bfb2555f9fd 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: 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 void (*put_bit_func_t)(void *user_data, int bit);
 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
 {
index 145234ec57d899ab4a947672435a8e1e17862633..47ae1ca164976ced0b39fd55188b5c741ffd23c9 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: hdlc.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 @@ SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
                                              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.
index db36fdbf745fd34e9be0c7b26c4a68d9b00c4bdc..9a93f823946f6eeaf68023df55622a150e6170e5 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: 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_message_handler(message_handler_func_t func);
 
 SPAN_DECLARE(void) span_set_error_handler(error_handler_func_t func);
 
-SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag);
+SPAN_DECLARE(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);
 
index 17c9955fecb860e09c4de4dbf37015bf30cca64b..f3ffb6c2904c9ac2e455572111b5a503cb0db14b 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: hdlc.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 @@ struct hdlc_rx_state_s
     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
index 0d349d7f73c7d784d8e3a580ba36ec1ba5cbfd9f..c061e0121aa60f0afc7385a3e236078da1e400d0 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: 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 @@ typedef struct
         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;
 
index 3c83ec56343195495bb9b5e0254fc01a0f5a2b06..a2f63979daac75ee62b2538548ec983849808327 100644 (file)
@@ -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 ------------------------------------------------------------*/
index a54d3fdd69da9c0250637f9dfe46b6f48defdfab..1d1beee28092ea69560dff8417d9432743c56412 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: super_tone_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 @@ SPAN_DECLARE(int) super_tone_tx_free_tone(super_tone_tx_step_t *s)
     {
         /* 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);
index ce048e656253e4031f692f01996e190deb41ebdc..be2390614cfe13ff53c78cce7fb7388f10da1a12 100644 (file)
@@ -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"
 
 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 @@ enum
     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 @@ static __inline__ void t31_set_at_rx_mode(t31_state_t *s, int new_mode)
 }
 /*- 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 @@ SPAN_DECLARE(int) t31_t38_send_timeout(t31_state_t *s, int samples)
     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 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
 }
 /*- 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 @@ static void t31_fax_modems_init(fax_modems_state_t *s, int use_tep, void *user_d
     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 @@ static int t31_t38_fe_init(t31_state_t *t,
                  2,
                  NULL,
                  NULL);
-
     return 0;
 }
 /*- End of function --------------------------------------------------------*/
index f47fa4c69bbefa6bae5e30ac766b0b9f4f770872..d591c26422f0b18c4fbe07a20e6c456f0c3e75f5 100644 (file)
@@ -23,7 +23,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: t38_gateway.c,v 1.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 @@ static void edit_control_messages(t38_gateway_state_t *s, int from_modem, uint8_
 }
 /*- 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 @@ static void hdlc_rx_status(hdlc_rx_state_t *t, int status)
 {
     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 @@ static void rx_flag_or_abort(hdlc_rx_state_t *t)
     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 @@ static void t38_hdlc_rx_put_bit(hdlc_rx_state_t *t, int new_bit)
         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 */
index b2491d0929a5148e5fa124a494c67fa967cb49a8..4ce830a32b3184e64b777a55af61e1aae92cc9cc 100644 (file)
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: 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 @@ static void hdlc_underflow_handler(void *user_data)
 }
 /*- 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 @@ static int modem_tx_status(void *user_data, int status)
         front_end_step_complete(s);
         break;
     }
-    return 0;
 }
 /*- End of function --------------------------------------------------------*/
 
index cb05e9a98846cc297b62faab8bd0ccd68f9e7ef8..c100aa5c8df21934e8d2aa2ce231bd4d2196d15d 100644 (file)
@@ -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 @@ both_ways_line_model_state_t *model;
 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 @@ static void put_bit(void *user_data, int bit)
 }
 /*- 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 @@ static int cutoff_test_rx_status(void *user_data, int status)
         cutoff_test_carrier = FALSE;
         break;
     }
-    return 0;
 }
 /*- End of function --------------------------------------------------------*/
 
index 2a7aba60d54558b7009a80ff442e51f19218992a..18351ad0910ce081c4babb0fa0157217e04f9f24 100644 (file)
@@ -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 @@ int main(int argc, char *argv[])
     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);
index 41c9bf4920a8278df1d35bddbcfd00b175f7cd9d..b65024c0afb0e0a475d88d74b6aab2d4a5936514 100644 (file)
@@ -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
index 541e56950fc665b2f96aa8e9d6f09b2d1239caee..8a82b11d92a06cbb79415c8501c1f8e286db7c75 100644 (file)
@@ -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 @@ static void parse_tone_set(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur)
             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;
index d26bd466548f0d2f33127de9f01f7b5bfbf1aa15..1bcf6e7241d0f18fb8b213467bbe86a6282ef1a2 100644 (file)
@@ -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 @@ static void reporter(void *user_data, int reason, bert_results_t *results)
 }
 /*- 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 @@ static int v17_rx_status(void *user_data, int status)
             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 @@ static void v17putbit(void *user_data, int bit)
 }
 /*- 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 --------------------------------------------------------*/
 
index 388b398d5012c944e33d05e0c8e5b0cea1769e2a..23eb6954f396b644a4d836023e434b11989269ea 100644 (file)
@@ -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 @@ static void reporter(void *user_data, int reason, bert_results_t *results)
 }
 /*- 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 @@ static void v27terputbit(void *user_data, int bit)
 }
 /*- 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 --------------------------------------------------------*/
 
index 9b51a5b5b6f705791655f1c1015f3fcabb378508..344e4cef31b98b50fd77957a954dc5824f144896 100644 (file)
@@ -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 @@ static void reporter(void *user_data, int reason, bert_results_t *results)
 }
 /*- 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 @@ static int v29_rx_status(void *user_data, int status)
 #endif
         break;
     }
-    return 0;
 }
 /*- End of function --------------------------------------------------------*/
 
@@ -161,10 +160,9 @@ static void v29putbit(void *user_data, int bit)
 }
 /*- 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 --------------------------------------------------------*/