diff --git a/libs/openzap/src/include/libteletone.h b/libs/openzap/src/include/libteletone.h index aaf7b0ed47..5c9616cb2a 100644 --- a/libs/openzap/src/include/libteletone.h +++ b/libs/openzap/src/include/libteletone.h @@ -78,7 +78,7 @@ extern "C" { #define TELETONE_MAX_TONES 6 #define TELETONE_TONE_RANGE 127 -typedef double teletone_process_t; +typedef float teletone_process_t; /*! \file libteletone.h \brief Top level include file @@ -94,7 +94,7 @@ typedef struct { #if !defined(M_PI) /* C99 systems may not define M_PI */ -#define M_PI 3.14159265358979323846264338327 +#define M_PI 3.14159265358979323846264338327f #endif #ifdef _MSC_VER diff --git a/libs/openzap/src/include/libteletone_detect.h b/libs/openzap/src/include/libteletone_detect.h index 15d5e9ddfb..10fece6cc7 100644 --- a/libs/openzap/src/include/libteletone_detect.h +++ b/libs/openzap/src/include/libteletone_detect.h @@ -132,7 +132,7 @@ extern "C" { #define DTMF_2ND_HARMONIC_COL 63.1 /* 18dB */ #define GRID_FACTOR 4 #define BLOCK_LEN 102 -#define M_TWO_PI 2.0*M_PI +#define M_TWO_PI 2.0f*M_PI /*! \brief A continer for the elements of a Goertzel Algorithm (The names are from his formula) */ typedef struct { diff --git a/libs/openzap/src/include/libteletone_generate.h b/libs/openzap/src/include/libteletone_generate.h index be791555bd..fb2d06b0d7 100644 --- a/libs/openzap/src/include/libteletone_generate.h +++ b/libs/openzap/src/include/libteletone_generate.h @@ -79,7 +79,23 @@ extern "C" { #include #include +#ifdef WIN32 +#ifdef _MSC_VER +#ifndef __inline__ +#define __inline__ __inline +#endif +#endif +typedef unsigned __int64 uint64_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int8 uint8_t; +typedef __int64 int64_t; +typedef __int32 int32_t; +typedef __int16 int16_t; +typedef __int8 int8_t; +#else #include +#endif #include #include #include @@ -89,17 +105,9 @@ extern float powf (float, float); #endif #include #include - -#include -#include -#include #ifndef _MSC_VER #include -#include #endif -#include -#include -#include #include #include #include @@ -112,7 +120,7 @@ struct teletone_dds_state { uint32_t scale_factor; uint32_t phase_accumulator; int16_t sample; - float tx_level; + teletone_process_t tx_level; }; typedef struct teletone_dds_state teletone_dds_state_t; @@ -145,7 +153,7 @@ static __inline__ int16_t teletone_dds_modulate_sample(teletone_dds_state_t *dds return (int16_t) (sample * dds->scale_factor >> 15); } -static __inline__ void teletone_dds_state_set_tone(teletone_dds_state_t *dds, float tone, uint32_t rate, float tx_level) +static __inline__ void teletone_dds_state_set_tone(teletone_dds_state_t *dds, teletone_process_t tone, uint32_t rate, teletone_process_t tx_level) { dds->phase_accumulator = 0; dds->phase_rate = (int32_t) ((tone * MAX_PHASE_ACCUMULATOR) / rate); @@ -158,7 +166,7 @@ static __inline__ void teletone_dds_state_set_tone(teletone_dds_state_t *dds, fl dds->tx_level = tx_level; } -static __inline__ void teletone_dds_state_set_tx_level(teletone_dds_state_t *dds, float tx_level) +static __inline__ void teletone_dds_state_set_tx_level(teletone_dds_state_t *dds, teletone_process_t tx_level) { dds->scale_factor = (int) (powf(10.0f, (tx_level - DBM0_MAX_POWER) / 20.0f) * (32767.0f * 1.414214f)); } @@ -196,13 +204,13 @@ struct teletone_generation_session { /*! Number of loops to repeat the entire set of instructions*/ int LOOPS; /*! Number to mutiply total samples by to determine when to begin ascent or decent e.g. 0=beginning 4=(last 25%) */ - float decay_factor; + teletone_process_t decay_factor; /*! Direction to perform volume increase/decrease 1/-1*/ int decay_direction; /*! Number of samples between increase/decrease of volume */ int decay_step; /*! Volume factor of the tone */ - float volume; + teletone_process_t volume; /*! Debug on/off */ int debug; /*! FILE stream to write debug data to */ diff --git a/libs/openzap/src/include/openzap.h b/libs/openzap/src/include/openzap.h index 01eb7e75ba..e1dc74c649 100644 --- a/libs/openzap/src/include/openzap.h +++ b/libs/openzap/src/include/openzap.h @@ -53,6 +53,9 @@ #endif #ifdef _MSC_VER +#ifndef __inline__ +#define __inline__ __inline +#endif #if (_MSC_VER >= 1400) /* VC8+ */ #ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE diff --git a/libs/openzap/src/libteletone_detect.c b/libs/openzap/src/libteletone_detect.c index a089f8fc48..4148751172 100644 --- a/libs/openzap/src/libteletone_detect.c +++ b/libs/openzap/src/libteletone_detect.c @@ -145,16 +145,16 @@ void teletone_dtmf_detect_init (teletone_dtmf_detect_state_t *dtmf_detect_state, for (i = 0; i < GRID_FACTOR; i++) { theta = M_TWO_PI*(dtmf_row[i]/(teletone_process_t)sample_rate); - dtmf_detect_row[i].fac = 2.0*cos(theta); + dtmf_detect_row[i].fac = (teletone_process_t)(2.0f*cos(theta)); theta = M_TWO_PI*(dtmf_col[i]/(teletone_process_t)sample_rate); - dtmf_detect_col[i].fac = 2.0*cos(theta); + dtmf_detect_col[i].fac = (teletone_process_t)(2.0f*cos(theta)); - theta = M_TWO_PI*(dtmf_row[i]*2.0/(teletone_process_t)sample_rate); - dtmf_detect_row_2nd[i].fac = 2.0*cos(theta); + theta = M_TWO_PI*(dtmf_row[i]*2.0f/(teletone_process_t)sample_rate); + dtmf_detect_row_2nd[i].fac = (teletone_process_t)(2.0f*cos(theta)); - theta = M_TWO_PI*(dtmf_col[i]*2.0/(teletone_process_t)sample_rate); - dtmf_detect_col_2nd[i].fac = 2.0*cos(theta); + theta = M_TWO_PI*(dtmf_col[i]*2.0f/(teletone_process_t)sample_rate); + dtmf_detect_col_2nd[i].fac = (teletone_process_t)(2.0f*cos(theta)); goertzel_init (&dtmf_detect_state->row_out[i], &dtmf_detect_row[i]); goertzel_init (&dtmf_detect_state->col_out[i], &dtmf_detect_col[i]); @@ -201,7 +201,7 @@ void teletone_multi_tone_init(teletone_multi_tone_t *mt, teletone_tone_map_t *ma } mt->tone_count++; theta = M_TWO_PI*(map->freqs[x]/(teletone_process_t)mt->sample_rate); - mt->tdd[x].fac = 2.0 * cos(theta); + mt->tdd[x].fac = (teletone_process_t)(2.0f * cos(theta)); goertzel_init (&mt->gs[x], &mt->tdd[x]); goertzel_init (&mt->gs2[x], &mt->tdd[x]); } diff --git a/libs/openzap/src/libteletone_generate.c b/libs/openzap/src/libteletone_generate.c index 5c46b1afd1..131f795c1e 100644 --- a/libs/openzap/src/libteletone_generate.c +++ b/libs/openzap/src/libteletone_generate.c @@ -211,7 +211,7 @@ int teletone_mux_tones(teletone_generation_session_t *ts, teletone_tone_map_t *m int wait = 0; int32_t sample; int32_t dc = 0; - float vol = ts->volume; + teletone_process_t vol = ts->volume; ts->samples = 0; memset(tones, 0, sizeof(tones[0]) * TELETONE_MAX_TONES); duration = (ts->tmp_duration > -1) ? ts->tmp_duration : ts->duration; @@ -234,7 +234,7 @@ int teletone_mux_tones(teletone_generation_session_t *ts, teletone_tone_map_t *m for (ts->samples = 0; ts->samples < ts->datalen && ts->samples < duration; ts->samples++) { if (ts->decay_direction && ++dc >= ts->decay_step) { - float nvol = vol + ts->decay_direction * ts->decay_factor; + teletone_process_t nvol = vol + ts->decay_direction * ts->decay_factor; int j; if (nvol <= TELETONE_VOL_DB_MAX && nvol >= TELETONE_VOL_DB_MIN) { @@ -355,7 +355,7 @@ int teletone_run(teletone_generation_session_t *ts, char *cmd) break; case 'v': { - float vol = atof(cur + 2); + teletone_process_t vol = (teletone_process_t)atof(cur + 2); if (vol <= TELETONE_VOL_DB_MAX && vol >= TELETONE_VOL_DB_MIN) { ts->volume = vol; } @@ -370,7 +370,7 @@ int teletone_run(teletone_generation_session_t *ts, char *cmd) ts->decay_direction = 1; break; case '+': - ts->decay_factor = atof(cur + 2); + ts->decay_factor = (teletone_process_t)atof(cur + 2); break; case 'w': ts->wait = atoi(cur + 2) * (ts->rate / 1000); @@ -419,7 +419,7 @@ int teletone_run(teletone_generation_session_t *ts, char *cmd) ts->tmp_wait = atoi(p) * (ts->rate / 1000); i++; } else { - mymap.freqs[i++ - 2] = atof(p); + mymap.freqs[i++ - 2] = (teletone_process_t)atof(p); } p = next; diff --git a/libs/openzap/src/zap_io.c b/libs/openzap/src/zap_io.c index d0da23752f..d4df53f3ce 100644 --- a/libs/openzap/src/zap_io.c +++ b/libs/openzap/src/zap_io.c @@ -306,7 +306,7 @@ zap_status_t zap_span_load_tones(zap_span_t *span, char *mapname) do { teletone_process_t this; next = strchr(p, ','); - this = atof(p); + this = (teletone_process_t)atof(p); span->tone_detect_map[index].freqs[i++] = this; if (next) { p = next + 1;