]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm - ISDN:Fix for windows compilation issues
authorDavid Yat Sin <dyatsin@sangoma.com>
Tue, 30 Nov 2010 21:45:05 +0000 (16:45 -0500)
committerDavid Yat Sin <dyatsin@sangoma.com>
Tue, 30 Nov 2010 21:45:05 +0000 (16:45 -0500)
libs/freetdm/src/ftdm_call_utils.c
libs/freetdm/src/ftdm_io.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c

index 52d2557a01b7e481f401d8e4e061be8b1115c2e3..69f2fb4fff42ece6bf89bd8f2b719d87ec847a73 100644 (file)
@@ -38,7 +38,7 @@
 
 FT_DECLARE(ftdm_status_t) ftdm_set_npi(const char *string, uint8_t *target)
 {
-       int val;
+       uint8_t val;
        ftdm_status_t status = FTDM_SUCCESS;
 
        val = ftdm_str2ftdm_npi(string);
@@ -53,7 +53,7 @@ FT_DECLARE(ftdm_status_t) ftdm_set_npi(const char *string, uint8_t *target)
 
 FT_DECLARE(ftdm_status_t) ftdm_set_ton(const char *string, uint8_t *target)
 {
-       int val;
+       uint8_t val;
        ftdm_status_t status = FTDM_SUCCESS;
 
        val = ftdm_str2ftdm_ton(string);
@@ -68,7 +68,7 @@ FT_DECLARE(ftdm_status_t) ftdm_set_ton(const char *string, uint8_t *target)
 
 FT_DECLARE(ftdm_status_t) ftdm_set_bearer_capability(const char *string, uint8_t *target)
 {
-       int val;
+       uint8_t val;
        ftdm_status_t status = FTDM_SUCCESS;
 
        val = ftdm_str2ftdm_bearer_cap(string);
@@ -84,7 +84,7 @@ FT_DECLARE(ftdm_status_t) ftdm_set_bearer_capability(const char *string, uint8_t
 
 FT_DECLARE(ftdm_status_t) ftdm_set_bearer_layer1(const char *string, uint8_t *target)
 {
-       int val;
+       uint8_t val;
        ftdm_status_t status = FTDM_SUCCESS;
 
        val = ftdm_str2ftdm_usr_layer1_prot(string);
@@ -100,7 +100,7 @@ FT_DECLARE(ftdm_status_t) ftdm_set_bearer_layer1(const char *string, uint8_t *ta
 
 FT_DECLARE(ftdm_status_t) ftdm_set_screening_ind(const char *string, uint8_t *target)
 {
-       int val;
+       uint8_t val;
        ftdm_status_t status = FTDM_SUCCESS;
 
        val = ftdm_str2ftdm_screening(string);
@@ -116,7 +116,7 @@ FT_DECLARE(ftdm_status_t) ftdm_set_screening_ind(const char *string, uint8_t *ta
 
 FT_DECLARE(ftdm_status_t) ftdm_set_presentation_ind(const char *string, uint8_t *target)
 {
-       int val;
+       uint8_t val;
        ftdm_status_t status = FTDM_SUCCESS;
 
        val = ftdm_str2ftdm_presentation(string);
index 33f987c5b9a6352ab3dda616c1886d094699b5c3..528e983646629051b55d98c34e71d5584300fb13 100644 (file)
@@ -38,8 +38,6 @@
  */
 
 #define _GNU_SOURCE
-#ifndef WIN32
-#endif
 #include "private/ftdm_core.h"
 #include <stdarg.h>
 #ifdef WIN32
index 02927d7c889e88a751c7872e84fbba4414ffcd85..03b5a5fb1d5ca4ff22815fd2b38f82b479b18c76 100644 (file)
@@ -799,9 +799,7 @@ static void ftdm_sangoma_isdn_process_state_change(ftdm_channel_t *ftdmchan)
                break;
        case FTDM_CHANNEL_STATE_DOWN: /* the call is finished and removed */
                {
-                       uint8_t glare = 0;
-
-                       glare = sngisdn_test_flag(sngisdn_info, FLAG_GLARE);
+                       uint8_t glare = sngisdn_test_flag(sngisdn_info, FLAG_GLARE);
                        /* clear all of the call specific data store in the channel structure */
                        clear_call_data(sngisdn_info);
 
index 6957f9925e860900008e85e5e275718c50108c65..eb00b1f6770068c5d7cf436d613b68dbf7d03593 100644 (file)
 
 /* TODO: rename all *_cc_* to *_an_*  */
 
+#define SNGISDN_ENUM_NAMES(_NAME, _STRINGS) static const char * _NAME [] = { _STRINGS , NULL };
+#define SNGISDN_STR2ENUM_P(_FUNC1, _FUNC2, _TYPE) _TYPE _FUNC1 (const char *name); const char * _FUNC2 (_TYPE type);
+#define SNGISDN_STR2ENUM(_FUNC1, _FUNC2, _TYPE, _STRINGS, _MAX)    \
+        _TYPE _FUNC1 (const char *name)                                                         \
+{                                                                                                               \
+                int i;                                                                                          \
+                _TYPE t = _MAX ;                                                                        \
+                                                                                                                        \
+                for (i = 0; i < _MAX ; i++) {                                           \
+                        if (!strcasecmp(name, _STRINGS[i])) {                   \
+                                t = (_TYPE) i;                                                          \
+                                break;                                                                          \
+}                                                                                               \
+}                                                                                                       \
+                                                                                                                        \
+                return t;                                                                                       \
+}                                                                                                               \
+        const char * _FUNC2 (_TYPE type)                                                \
+{                                                                                                               \
+                if (type > _MAX) {                                                                      \
+                        type = _MAX;                                                                    \
+}                                                                                                       \
+                return _STRINGS[(int)type];                                                     \
+}                                                                                                               \
+
+
+
 typedef enum {
        FLAG_RESET_RX           = (1 << 0),
        FLAG_RESET_TX           = (1 << 1),
@@ -153,7 +180,7 @@ typedef enum {
        SNGISDN_PROGIND_DESCR_INVALID,
 } ftdm_sngisdn_progind_descr_t;
 #define SNGISDN_PROGIND_DESCR_STRINGS "not-end-to-end-isdn", "destination-is-non-isdn", "origination-is-non-isdn", "call-returned-to-isdn", "service-change", "inband-info-available", "invalid"
-FTDM_STR2ENUM_P(ftdm_str2ftdm_sngisdn_progind_descr, ftdm_sngisdn_progind_descr2str, ftdm_sngisdn_progind_descr_t);
+SNGISDN_STR2ENUM_P(ftdm_str2ftdm_sngisdn_progind_descr, ftdm_sngisdn_progind_descr2str, ftdm_sngisdn_progind_descr_t);
 
 typedef enum {
        /* User */
@@ -174,7 +201,7 @@ typedef enum {
        SNGISDN_PROGIND_LOC_INVALID,
 } ftdm_sngisdn_progind_loc_t;
 #define SNGISDN_PROGIND_LOC_STRINGS "user", "private-net-local-user", "public-net-local-user", "transit-network", "public-net-remote-user", "private-net-remote-user", "beyond-interworking", "invalid"
-FTDM_STR2ENUM_P(ftdm_str2ftdm_sngisdn_progind_loc, ftdm_sngisdn_progind_loc2str, ftdm_sngisdn_progind_loc_t);
+SNGISDN_STR2ENUM_P(ftdm_str2ftdm_sngisdn_progind_loc, ftdm_sngisdn_progind_loc2str, ftdm_sngisdn_progind_loc_t);
 
 typedef struct ftdm_sngisdn_prog_ind {
        ftdm_sngisdn_progind_loc_t loc;         /* location */
index 865f49809483e2daca9fc0741a0c90af2a66ac60..a7c111e905a29bd7d19e913740bfd7c143101406 100644 (file)
@@ -255,10 +255,9 @@ void sngisdn_process_con_cfm (sngisdn_event_data_t *sngisdn_event)
        uint8_t ces = sngisdn_event->ces;
        sngisdn_chan_data_t *sngisdn_info = sngisdn_event->sngisdn_info;
        ftdm_channel_t *ftdmchan = sngisdn_info->ftdmchan;
-       
-       ISDN_FUNC_TRACE_ENTER(__FUNCTION__);
-
        CnStEvnt *cnStEvnt = &sngisdn_event->event.cnStEvnt;
+
+       ISDN_FUNC_TRACE_ENTER(__FUNCTION__);
                                
        ftdm_assert(!ftdm_test_flag(ftdmchan, FTDM_CHANNEL_STATE_CHANGE), "State change flag pending\n");
        
index 964d06caafa13fe2e3fed01d3fc0a25023bee41d..42bcd1e20ad7e7e06068164c09e33f60d1b525a6 100644 (file)
 
 /* ftmod_sangoma_isdn specific enum look-up functions */
 
-FTDM_ENUM_NAMES(SNGISDN_PROGIND_DESCR_NAMES, SNGISDN_PROGIND_DESCR_STRINGS)
-FTDM_STR2ENUM(ftdm_str2ftdm_sngisdn_progind_descr, ftdm_sngisdn_progind_descr2str, ftdm_sngisdn_progind_descr_t, SNGISDN_PROGIND_DESCR_NAMES, SNGISDN_PROGIND_DESCR_INVALID)
+SNGISDN_ENUM_NAMES(SNGISDN_PROGIND_DESCR_NAMES, SNGISDN_PROGIND_DESCR_STRINGS)
+SNGISDN_STR2ENUM(ftdm_str2ftdm_sngisdn_progind_descr, ftdm_sngisdn_progind_descr2str, ftdm_sngisdn_progind_descr_t, SNGISDN_PROGIND_DESCR_NAMES, SNGISDN_PROGIND_DESCR_INVALID)
 
-FTDM_ENUM_NAMES(SNGISDN_PROGIND_LOC_NAMES, SNGISDN_PROGIND_LOC_STRINGS)
-FTDM_STR2ENUM(ftdm_str2ftdm_sngisdn_progind_loc, ftdm_sngisdn_progind_loc2str, ftdm_sngisdn_progind_loc_t, SNGISDN_PROGIND_LOC_NAMES, SNGISDN_PROGIND_LOC_INVALID)
+SNGISDN_ENUM_NAMES(SNGISDN_PROGIND_LOC_NAMES, SNGISDN_PROGIND_LOC_STRINGS)
+SNGISDN_STR2ENUM(ftdm_str2ftdm_sngisdn_progind_loc, ftdm_sngisdn_progind_loc2str, ftdm_sngisdn_progind_loc_t, SNGISDN_PROGIND_LOC_NAMES, SNGISDN_PROGIND_LOC_INVALID)
 
 ftdm_status_t sngisdn_check_free_ids(void);