]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Removal of some pointless callback parameters in the spandsp AT command
authorSteve Underwood <steveu@coppice.org>
Wed, 15 Jan 2014 16:47:29 +0000 (00:47 +0800)
committerSteve Underwood <steveu@coppice.org>
Wed, 15 Jan 2014 16:47:29 +0000 (00:47 +0800)
interpreter, and fixes for my congential inability to reliably spell psuedo,
er, pseudo, er, whatever.

libs/spandsp/src/ademco_contactid.c
libs/spandsp/src/at_interpreter.c
libs/spandsp/src/spandsp/at_interpreter.h
libs/spandsp/src/t31.c
libs/spandsp/tests/at_interpreter_tests.c
libs/spandsp/tests/pseudo_terminal_tests.c
libs/spandsp/tests/pseudo_terminals.c
libs/spandsp/tests/pseudo_terminals.h
libs/spandsp/tests/t31_pseudo_terminal_tests.c
libs/spandsp/tests/t31_tests.c
src/mod/applications/mod_spandsp/mod_spandsp_modem.c

index 453ccc039411dc65f9c044f651f290c4335cf2e4..f497106d2f855123867fea18749a757cf1f73dff 100644 (file)
@@ -504,7 +504,7 @@ SPAN_DECLARE(int) decode_msg(ademco_contactid_report_t *report, const char buf[]
     int x;
     char buf2[20];
 
-    /* We need to remap normal DTMF (0-0, *, #, A-D) to Ademco's psuedo-hex (0-0, B-F, nothing for A)
+    /* We need to remap normal DTMF (0-0, *, #, A-D) to Ademco's pseudo-hex (0-0, B-F, nothing for A)
        and calculate the checksum */
     for (sum = 0, s = buf, t = buf2;  *s;  s++, t++)
     {
index d43ffb3671f2b46ac4e300f1fd865a2e79f5ce80..73cdf879a0fe5ff2e76008aeee114262599f3b14 100644 (file)
@@ -222,9 +222,9 @@ SPAN_DECLARE(void) at_put_response(at_state_t *s, const char *t)
     buf[1] = s->p.s_regs[4];
     buf[2] = '\0';
     if (s->p.result_code_format == ASCII_RESULT_CODES)
-        s->at_tx_handler(s, s->at_tx_user_data, buf, 2);
-    s->at_tx_handler(s, s->at_tx_user_data, (uint8_t *) t, strlen(t));
-    s->at_tx_handler(s, s->at_tx_user_data, buf, 2);
+        s->at_tx_handler(s->at_tx_user_data, buf, 2);
+    s->at_tx_handler(s->at_tx_user_data, (uint8_t *) t, strlen(t));
+    s->at_tx_handler(s->at_tx_user_data, buf, 2);
 }
 /*- End of function --------------------------------------------------------*/
 
@@ -249,7 +249,7 @@ SPAN_DECLARE(void) at_put_response_code(at_state_t *s, int code)
         break;
     case NUMERIC_RESULT_CODES:
         snprintf((char *) buf, sizeof(buf), "%d%c", code, s->p.s_regs[3]);
-        s->at_tx_handler(s, s->at_tx_user_data, buf, strlen((char *) buf));
+        s->at_tx_handler(s->at_tx_user_data, buf, strlen((char *) buf));
         break;
     default:
         /* No result codes */
@@ -361,7 +361,7 @@ SPAN_DECLARE(void) at_call_event(at_state_t *s, int event)
         {
             s->rx_data[s->rx_data_bytes++] = DLE;
             s->rx_data[s->rx_data_bytes++] = ETX;
-            s->at_tx_handler(s, s->at_tx_user_data, s->rx_data, s->rx_data_bytes);
+            s->at_tx_handler(s->at_tx_user_data, s->rx_data, s->rx_data_bytes);
             s->rx_data_bytes = 0;
         }
         if (s->at_rx_mode != AT_MODE_OFFHOOK_COMMAND  &&  s->at_rx_mode != AT_MODE_ONHOOK_COMMAND)
@@ -881,7 +881,7 @@ static int process_class1_cmd(at_state_t *s, const char **t)
 
     result = true;
     if (s->class1_handler)
-        result = s->class1_handler(s, s->class1_user_data, direction, operation, val);
+        result = s->class1_handler(s->class1_user_data, direction, operation, val);
     switch (result)
     {
     case 0:
@@ -5461,7 +5461,7 @@ SPAN_DECLARE(int) at_modem_control(at_state_t *s, int op, const char *num)
         break;
     }
     /*endswitch*/
-    return s->modem_control_handler(s, s->modem_control_user_data, op, num);
+    return s->modem_control_handler(s->modem_control_user_data, op, num);
 }
 /*- End of function --------------------------------------------------------*/
 
@@ -5474,7 +5474,7 @@ SPAN_DECLARE(void) at_interpreter(at_state_t *s, const char *cmd, int len)
     const char *t;
 
     if (s->p.echo)
-        s->at_tx_handler(s, s->at_tx_user_data, (uint8_t *) cmd, len);
+        s->at_tx_handler(s->at_tx_user_data, (uint8_t *) cmd, len);
 
     for (i = 0;  i < len;  i++)
     {
@@ -5582,6 +5582,15 @@ SPAN_DECLARE(void) at_set_class1_handler(at_state_t *s, at_class1_handler_t hand
 }
 /*- End of function --------------------------------------------------------*/
 
+SPAN_DECLARE(void) at_set_modem_control_handler(at_state_t *s,
+                                                at_modem_control_handler_t modem_control_handler,
+                                                void *modem_control_user_data)
+{
+    s->modem_control_handler = modem_control_handler;
+    s->modem_control_user_data = modem_control_user_data;
+}
+/*- End of function --------------------------------------------------------*/
+
 SPAN_DECLARE(logging_state_t *) at_get_logging_state(at_state_t *s)
 {
     return &s->logging;
index aa390d509ba97c60fd9462fd28debe85f88f9a09..1b6e1f77713fe4b093a6d25627d0ee56cf94549d 100644 (file)
@@ -38,9 +38,9 @@ modem control commands.
 
 typedef struct at_state_s at_state_t;
 
-typedef int (*at_modem_control_handler_t)(at_state_t *s, void *user_data, int op, const char *num);
-typedef int (*at_tx_handler_t)(at_state_t *s, void *user_data, const uint8_t *buf, size_t len);
-typedef int (*at_class1_handler_t)(at_state_t *s, void *user_data, int direction, int operation, int val);
+typedef int (*at_modem_control_handler_t)(void *user_data, int op, const char *num);
+typedef int (*at_tx_handler_t)(void *user_data, const uint8_t *buf, size_t len);
+typedef int (*at_class1_handler_t)(void *user_data, int direction, int operation, int val);
 
 enum at_rx_mode_e
 {
@@ -173,6 +173,11 @@ SPAN_DECLARE(void) at_set_class1_handler(at_state_t *s, at_class1_handler_t hand
     \return A pointer to the logging context */
 SPAN_DECLARE(logging_state_t *) at_get_logging_state(at_state_t *s);
 
+
+SPAN_DECLARE(void) at_set_modem_control_handler(at_state_t *s,
+                                                at_modem_control_handler_t modem_control_handler,
+                                                void *modem_control_user_data);
+
 /*! Initialise an AT interpreter context.
     \brief Initialise an AT interpreter context.
     \param s The AT context.
index 76aa7e56ab7888b6747d99799e66e1345b4af5a1..978d09994595e02805be711373694612b3fa67b0 100644 (file)
@@ -1358,55 +1358,54 @@ SPAN_DECLARE(int) t31_t38_send_timeout(t31_state_t *s, int samples)
 }
 /*- End of function --------------------------------------------------------*/
 
-static int t31_modem_control_handler(at_state_t *s, void *user_data, int op, const char *num)
+static int t31_modem_control_handler(void *user_data, int op, const char *num)
 {
-    t31_state_t *t;
+    t31_state_t *s;
 
-    t = (t31_state_t *) user_data;
+    s = (t31_state_t *) user_data;
     switch (op)
     {
     case AT_MODEM_CONTROL_CALL:
-        t->call_samples = 0;
-        t38_core_restart(&t->t38_fe.t38);
+        s->call_samples = 0;
+        t38_core_restart(&s->t38_fe.t38);
         break;
     case AT_MODEM_CONTROL_ANSWER:
-        t->call_samples = 0;
-        t38_core_restart(&t->t38_fe.t38);
+        s->call_samples = 0;
+        t38_core_restart(&s->t38_fe.t38);
         break;
     case AT_MODEM_CONTROL_ONHOOK:
-        if (t->non_ecm_tx.holding)
+        if (s->non_ecm_tx.holding)
         {
-            t->non_ecm_tx.holding = false;
+            s->non_ecm_tx.holding = false;
             /* Tell the application to release further data */
-            at_modem_control(&t->at_state, AT_MODEM_CONTROL_CTS, (void *) 1);
+            at_modem_control(&s->at_state, AT_MODEM_CONTROL_CTS, (void *) 1);
         }
         /*endif*/
-        if (t->at_state.rx_signal_present)
+        if (s->at_state.rx_signal_present)
         {
-            t->at_state.rx_data[t->at_state.rx_data_bytes++] = DLE;
-            t->at_state.rx_data[t->at_state.rx_data_bytes++] = ETX;
-            t->at_state.at_tx_handler(&t->at_state,
-                                      t->at_state.at_tx_user_data,
-                                      t->at_state.rx_data,
-                                      t->at_state.rx_data_bytes);
-            t->at_state.rx_data_bytes = 0;
+            s->at_state.rx_data[s->at_state.rx_data_bytes++] = DLE;
+            s->at_state.rx_data[s->at_state.rx_data_bytes++] = ETX;
+            s->at_state.at_tx_handler(s->at_state.at_tx_user_data,
+                                      s->at_state.rx_data,
+                                      s->at_state.rx_data_bytes);
+            s->at_state.rx_data_bytes = 0;
         }
         /*endif*/
-        restart_modem(t, FAX_MODEM_SILENCE_TX);
+        restart_modem(s, FAX_MODEM_SILENCE_TX);
         break;
     case AT_MODEM_CONTROL_RESTART:
-        restart_modem(t, (int) (intptr_t) num);
+        restart_modem(s, (int) (intptr_t) num);
         return 0;
     case AT_MODEM_CONTROL_DTE_TIMEOUT:
         if (num)
-            t->dte_data_timeout = t->call_samples + ms_to_samples((intptr_t) num);
+            s->dte_data_timeout = s->call_samples + ms_to_samples((intptr_t) num);
         else
-            t->dte_data_timeout = 0;
+            s->dte_data_timeout = 0;
         /*endif*/
         return 0;
     }
     /*endswitch*/
-    return t->modem_control_handler(t, t->modem_control_user_data, op, num);
+    return s->modem_control_handler(s, s->modem_control_user_data, op, num);
 }
 /*- End of function --------------------------------------------------------*/
 
@@ -1437,8 +1436,7 @@ static void non_ecm_rx_status(void *user_data, int status)
         {
             s->at_state.rx_data[s->at_state.rx_data_bytes++] = DLE;
             s->at_state.rx_data[s->at_state.rx_data_bytes++] = ETX;
-            s->at_state.at_tx_handler(&s->at_state,
-                                      s->at_state.at_tx_user_data,
+            s->at_state.at_tx_handler(s->at_state.at_tx_user_data,
                                       s->at_state.rx_data,
                                       s->at_state.rx_data_bytes);
             s->at_state.rx_data_bytes = 0;
@@ -1480,8 +1478,7 @@ static void non_ecm_put_bit(void *user_data, int bit)
         s->at_state.rx_data[s->at_state.rx_data_bytes++] = (uint8_t) s->audio.current_byte;
         if (s->at_state.rx_data_bytes >= 250)
         {
-            s->at_state.at_tx_handler(&s->at_state,
-                                      s->at_state.at_tx_user_data,
+            s->at_state.at_tx_handler(s->at_state.at_tx_user_data,
                                       s->at_state.rx_data,
                                       s->at_state.rx_data_bytes);
             s->at_state.rx_data_bytes = 0;
@@ -1515,8 +1512,7 @@ static void non_ecm_put(void *user_data, const uint8_t buf[], int len)
         s->at_state.rx_data[s->at_state.rx_data_bytes++] = buf[i];
         if (s->at_state.rx_data_bytes >= 250)
         {
-            s->at_state.at_tx_handler(&s->at_state,
-                                      s->at_state.at_tx_user_data,
+            s->at_state.at_tx_handler(s->at_state.at_tx_user_data,
                                       s->at_state.rx_data,
                                       s->at_state.rx_data_bytes);
             s->at_state.rx_data_bytes = 0;
@@ -1860,7 +1856,7 @@ static void hdlc_accept_frame(void *user_data, const uint8_t *msg, int len, int
             /*endfor*/
             s->at_state.rx_data[s->at_state.rx_data_bytes++] = DLE;
             s->at_state.rx_data[s->at_state.rx_data_bytes++] = ETX;
-            s->at_state.at_tx_handler(&s->at_state, s->at_state.at_tx_user_data, s->at_state.rx_data, s->at_state.rx_data_bytes);
+            s->at_state.at_tx_handler(s->at_state.at_tx_user_data, s->at_state.rx_data, s->at_state.rx_data_bytes);
             s->at_state.rx_data_bytes = 0;
             if (msg[1] == 0x13  &&  ok)
             {
@@ -2025,8 +2021,8 @@ static void t31_v21_rx(t31_state_t *s)
     s->hdlc_tx.len = 0;
     s->hdlc_tx.final = false;
     s->dled = false;
-    hdlc_rx_init(&s->audio.modems.hdlc_rx, false, true, HDLC_FRAMING_OK_THRESHOLD, hdlc_accept_frame, s);
     fax_modems_start_slow_modem(&s->audio.modems, FAX_MODEM_V21_RX);
+    hdlc_rx_init(&s->audio.modems.hdlc_rx, false, true, HDLC_FRAMING_OK_THRESHOLD, hdlc_accept_frame, s);
     s->at_state.transmit = true;
 }
 /*- End of function --------------------------------------------------------*/
@@ -2447,7 +2443,7 @@ static __inline__ void dle_unstuff(t31_state_t *s, const char *stuffed, int len)
 }
 /*- End of function --------------------------------------------------------*/
 
-static int process_class1_cmd(at_state_t *t, void *user_data, int direction, int operation, int val)
+static int process_class1_cmd(void *user_data, int direction, int operation, int val)
 {
     int new_modem;
     int new_transmit;
@@ -2549,7 +2545,7 @@ static int process_class1_cmd(at_state_t *t, void *user_data, int direction, int
                         /*endfor*/
                         s->at_state.rx_data[s->at_state.rx_data_bytes++] = DLE;
                         s->at_state.rx_data[s->at_state.rx_data_bytes++] = ETX;
-                        s->at_state.at_tx_handler(&s->at_state, s->at_state.at_tx_user_data, s->at_state.rx_data, s->at_state.rx_data_bytes);
+                        s->at_state.at_tx_handler(s->at_state.at_tx_user_data, s->at_state.rx_data, s->at_state.rx_data_bytes);
                         s->at_state.rx_data_bytes = 0;
                     }
                     /*endif*/
@@ -2710,7 +2706,7 @@ SPAN_DECLARE(int) t31_at_rx(t31_state_t *s, const char *t, int len)
             {
                 s->at_state.rx_data[s->at_state.rx_data_bytes++] = DLE;
                 s->at_state.rx_data[s->at_state.rx_data_bytes++] = ETX;
-                s->at_state.at_tx_handler(&s->at_state, s->at_state.at_tx_user_data, s->at_state.rx_data, s->at_state.rx_data_bytes);
+                s->at_state.at_tx_handler(s->at_state.at_tx_user_data, s->at_state.rx_data, s->at_state.rx_data_bytes);
             }
             /*endif*/
             s->at_state.rx_data_bytes = 0;
@@ -2983,6 +2979,7 @@ static int t31_t38_fe_init(t31_state_t *t,
 
     t->hdlc_tx.ptr = 0;
 
+    /* Prepare the non-ecm HDLC bit stream -> T.38 HDLC -> non-ecm HDLC bit stream path */
     hdlc_tx_init(&s->hdlc_tx_non_ecm, false, 1, false, hdlc_tx_underflow2, s);
     hdlc_rx_init(&s->hdlc_rx_non_ecm, false, true, 2, hdlc_accept_non_ecm_frame, t);
     return 0;
index bdb26e1becb3a14c6484c2dd1b0bddec2829b7d4..6826e030dbb759d1c7bd613e543c0f37ff1bd81b 100644 (file)
@@ -478,7 +478,7 @@ static int general_test(at_state_t *s)
 }
 /*- End of function --------------------------------------------------------*/
 
-static int modem_call_control(at_state_t *s, void *user_data, int op, const char *num)
+static int modem_call_control(void *user_data, int op, const char *num)
 {
     switch (op)
     {
@@ -534,7 +534,7 @@ static int modem_call_control(at_state_t *s, void *user_data, int op, const char
 }
 /*- End of function --------------------------------------------------------*/
 
-static int at_tx_handler(at_state_t *s, void *user_data, const uint8_t *buf, size_t len)
+static int at_tx_handler(void *user_data, const uint8_t *buf, size_t len)
 {
     int i;
 
index b6d28d2b26e93b1fa5e9ccb5e563e225ce5879e5..f9f0ed55f6cd5def85ccaad816b29c977bfb8b61 100644 (file)
@@ -66,7 +66,7 @@ static int master(void)
 
     for (i = 0;  i < 10;  i++)
     {
-        if (psuedo_terminal_create(&modem[i]))
+        if (pseudo_terminal_create(&modem[i]))
         {
             printf("Failure\n");
             exit(2);
@@ -89,7 +89,7 @@ static int master(void)
 
     for (i = 0;  i < 10;  i++)
     {
-        if (psuedo_terminal_close(&modem[i]))
+        if (pseudo_terminal_close(&modem[i]))
         {
             printf("Failure\n");
             exit(2);
index 1f042be8b9bf9f6b9738f3f73aee38d15614be8b..f651bbc8473fc775af3df13a4fe84bcf734983af 100644 (file)
@@ -53,7 +53,7 @@
 int next_id = 0;
 const char *device_root_name = "/dev/spandsp";
 
-int psuedo_terminal_close(modem_t *modem)
+int pseudo_terminal_close(modem_t *modem)
 {
 #if defined(WIN32)
     if (modem->master)
@@ -84,7 +84,7 @@ int psuedo_terminal_close(modem_t *modem)
 }
 /*- End of function --------------------------------------------------------*/
 
-int psuedo_terminal_create(modem_t *modem)
+int pseudo_terminal_create(modem_t *modem)
 {
 #if defined(WIN32)
     COMMTIMEOUTS timeouts = {0};
@@ -170,7 +170,7 @@ int psuedo_terminal_create(modem_t *modem)
     if (!SetCommTimeouts(modem->master, &timeouts))
     {
         span_log(&modem->logging, SPAN_LOG_ERROR, "Cannot set up non-blocking read on %s\n", modem->devlink);
-        psuedo_terminal_close(modem);
+        pseudo_terminal_close(modem);
         return -1;
     }
     modem->threadAbort = CreateEvent(NULL, true, false, NULL);
@@ -184,14 +184,14 @@ int psuedo_terminal_create(modem_t *modem)
     if (symlink(modem->stty, modem->devlink))
     {
         span_log(&modem->logging, SPAN_LOG_ERROR, "Fatal error: failed to create %s symbolic link\n", modem->devlink);
-        psuedo_terminal_close(modem);
+        pseudo_terminal_close(modem);
         return -1;
     }
 
     if (fcntl(modem->master, F_SETFL, fcntl(modem->master, F_GETFL, 0) | O_NONBLOCK))
     {
         span_log(&modem->logging, SPAN_LOG_ERROR, "Cannot set up non-blocking read on %s\n", ttyname(modem->master));
-        psuedo_terminal_close(modem);
+        pseudo_terminal_close(modem);
         return -1;
     }
 #endif
index b64fd1bd76499f2f7ada766037b8d0aa6ee7098f..481530d8758a008a0273600a68d8b17a725ac8de 100644 (file)
@@ -41,6 +41,6 @@ struct modem_s
 
 typedef struct modem_s modem_t;
 
-int psuedo_terminal_close(modem_t *modem);
+int pseudo_terminal_close(modem_t *modem);
 
-int psuedo_terminal_create(modem_t *modem);
+int pseudo_terminal_create(modem_t *modem);
index d4fc01efc3c6b935352d5d6134c63a867f51298a..e03fbed9b5e6179d43abb3f47ed63307f6d43c86 100644 (file)
@@ -134,7 +134,7 @@ static void phase_e_handler(t30_state_t *s, void *user_data, int result)
 }
 /*- End of function --------------------------------------------------------*/
 
-static int at_tx_handler(at_state_t *s, void *user_data, const uint8_t *buf, size_t len)
+static int at_tx_handler(void *user_data, const uint8_t *buf, size_t len)
 {
 #if defined(WIN32)
     DWORD res;
@@ -220,7 +220,7 @@ static int t31_call_control(t31_state_t *s, void *user_data, int op, const char
         {
         case 1:
             x[0] = (num)  ?  0x11  :  0x13;
-            at_tx_handler(&t31_state->at_state, user_data, x, 1);
+            at_tx_handler(user_data, x, 1);
             break;
         case 2:
             break;
@@ -815,7 +815,7 @@ int main(int argc, char *argv[])
         }
     }
 
-    if (psuedo_terminal_create(&modem[0]))
+    if (pseudo_terminal_create(&modem[0]))
         printf("Failure\n");
 
 #if !defined(WIN32)
@@ -825,7 +825,7 @@ int main(int argc, char *argv[])
 #endif
 
     t30_tests(t38_mode, use_ecm, use_gui, log_audio, test_sending, g1050_model_no, g1050_speed_pattern_no);
-    if (psuedo_terminal_close(&modem[0]))
+    if (pseudo_terminal_close(&modem[0]))
         printf("Failure\n");
     printf("Tests passed\n");
     return 0;
index 12c3426b4d8b8694350cd34c7145cff7e172f398..9228eb9ea31c4fd02c033cca46c93f1e8d60ec0d 100644 (file)
@@ -374,7 +374,7 @@ static int modem_call_control(t31_state_t *s, void *user_data, int op, const cha
 }
 /*- End of function --------------------------------------------------------*/
 
-static int at_tx_handler(at_state_t *s, void *user_data, const uint8_t *buf, size_t len)
+static int at_tx_handler(void *user_data, const uint8_t *buf, size_t len)
 {
     size_t i;
 
index 64218c1b31f625a55f7a9de98382f0ebf2eac5c2..32d043327ac6c199a1ec028481b4de1a3185c74b 100644 (file)
@@ -81,7 +81,7 @@ static int t38_tx_packet_handler(t38_core_state_t *s, void *user_data, const uin
        return 0;
 }
 
-static int t31_at_tx_handler(at_state_t *s, void *user_data, const uint8_t *buf, size_t len)
+static int t31_at_tx_handler(void *user_data, const uint8_t *buf, size_t len)
 {
        modem_t *modem = user_data;
 
@@ -1024,7 +1024,6 @@ static void wake_modem_thread(modem_t *modem)
 static int control_handler(modem_t *modem, const char *num, int op)
 {
        switch_core_session_t *session = NULL;
-       at_state_t *at_state;
 
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "Control Handler op:%d state:[%s] %s\n", 
                                          op, modem_state2name(modem_get_state(modem)), modem->devlink);
@@ -1103,16 +1102,14 @@ static int control_handler(modem_t *modem, const char *num, int op)
                        u_char x[1];
                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1,
                                                          "Modem %s [%s] - CTS %s\n", modem->devlink, modem_state2name(modem_get_state(modem)), (int) (intptr_t) num ? "XON" : "XOFF");
-
-                       at_state = t31_get_at_state(modem->t31_state);
                        if (num) {
                                x[0] = 0x11;
-                               t31_at_tx_handler(at_state, modem, x, 1);
+                               t31_at_tx_handler(modem, x, 1);
                                switch_clear_flag(modem, MODEM_FLAG_XOFF);
                                wake_modem_thread(modem);
                        } else {
                                x[0] = 0x13;
-                               t31_at_tx_handler(at_state, modem, x, 1);
+                               t31_at_tx_handler(modem, x, 1);
                                switch_set_flag(modem, MODEM_FLAG_XOFF);
                        }
                }