Changed spandsp from using TRUE and FALSE to using C99 true and false. It seems

like the quirks we used to get using those with C++ have gone away.
This commit is contained in:
Steve Underwood 2013-08-08 21:40:28 +08:00
parent bf9809c10c
commit 365fc08719
212 changed files with 3152 additions and 2664 deletions

View File

@ -187,6 +187,9 @@ AC_HEADER_TIME
AC_CHECK_HEADERS([socket.h])
AC_CHECK_HEADERS([inttypes.h], [INSERT_INTTYPES_HEADER="#include <inttypes.h>"])
AC_CHECK_HEADERS([stdint.h], [INSERT_STDINT_HEADER="#include <stdint.h>"])
AC_CHECK_HEADERS([stdatomic.h])
AC_CHECK_HEADERS([stdbool.h], [INSERT_STDBOOL_HEADER="#include <stdbool.h>"], [INSERT_STDBOOL_HEADER="#include <spandsp/stdbool.h>"])
AC_CHECK_HEADERS([stdfix.h])
AC_CHECK_HEADERS([unistd.h])
AC_CHECK_HEADERS([stdlib.h])
AC_CHECK_HEADERS([string.h])
@ -592,6 +595,7 @@ AC_SUBST(INSERT_INTTYPES_HEADER)
AC_SUBST(INSERT_STDINT_HEADER)
AC_SUBST(INSERT_TGMATH_HEADER)
AC_SUBST(INSERT_MATH_HEADER)
AC_SUBST(INSERT_STDBOOL_HEADER)
AC_CONFIG_FILES([Makefile
doc/Makefile

View File

@ -224,6 +224,7 @@ nobase_include_HEADERS = spandsp/ademco_contactid.h \
spandsp/queue.h \
spandsp/saturated.h \
spandsp/schedule.h \
spandsp/stdbool.h \
spandsp/sig_tone.h \
spandsp/silence_gen.h \
spandsp/super_tone_rx.h \

View File

@ -39,6 +39,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <memory.h>
#include <string.h>
@ -448,7 +453,7 @@ static const struct ademco_code_s ademco_codes[] =
#define TONE_TO_TOTAL_ENERGY 45.2233f /* -0.85dB [GOERTZEL_SAMPLES_PER_BLOCK*10^(-0.85/10.0)] */
#endif
static int tone_rx_init = FALSE;
static int tone_rx_init = false;
static goertzel_descriptor_t tone_1400_desc;
static goertzel_descriptor_t tone_2300_desc;
@ -794,7 +799,7 @@ SPAN_DECLARE(int) ademco_contactid_sender_tx(ademco_contactid_sender_state_t *s,
case 0:
if (!s->clear_to_send)
return 0;
s->clear_to_send = FALSE;
s->clear_to_send = false;
s->step++;
s->remaining_samples = ms_to_samples(250);
/* Fall through */
@ -811,7 +816,7 @@ SPAN_DECLARE(int) ademco_contactid_sender_tx(ademco_contactid_sender_state_t *s,
samples = dtmf_tx(&s->dtmf, &amp[sample], max_samples - sample);
if (samples == 0)
{
s->clear_to_send = FALSE;
s->clear_to_send = false;
s->step = 0;
return sample;
}
@ -948,7 +953,7 @@ SPAN_DECLARE(int) ademco_contactid_sender_rx(ademco_contactid_sender_state_t *s,
s->callback(s->callback_user_data, -1, 0, 0);
s->tone_state = 4;
/* Release the transmit side, and it will time the 250ms post tone delay */
s->clear_to_send = TRUE;
s->clear_to_send = true;
s->tries = 0;
if (s->tx_digits_len)
s->timer = ms_to_samples(3000);
@ -969,7 +974,7 @@ SPAN_DECLARE(int) ademco_contactid_sender_rx(ademco_contactid_sender_state_t *s,
case 5:
if (hit == 0)
{
s->busy = FALSE;
s->busy = false;
if (s->duration < ms_to_samples(400) || s->duration > ms_to_samples(1500))
{
span_log(&s->logging, SPAN_LOG_FLOW, "Bad kissoff duration %d\n", s->duration);
@ -983,18 +988,18 @@ SPAN_DECLARE(int) ademco_contactid_sender_rx(ademco_contactid_sender_state_t *s,
{
s->timer = 0;
if (s->callback)
s->callback(s->callback_user_data, FALSE, 0, 0);
s->callback(s->callback_user_data, false, 0, 0);
}
}
else
{
span_log(&s->logging, SPAN_LOG_FLOW, "Received good kissoff\n");
s->clear_to_send = TRUE;
s->clear_to_send = true;
s->tx_digits_len = 0;
if (s->callback)
s->callback(s->callback_user_data, TRUE, 0, 0);
s->callback(s->callback_user_data, true, 0, 0);
s->tone_state = 4;
s->clear_to_send = TRUE;
s->clear_to_send = true;
s->tries = 0;
if (s->tx_digits_len)
s->timer = ms_to_samples(3000);
@ -1024,7 +1029,7 @@ SPAN_DECLARE(int) ademco_contactid_sender_rx(ademco_contactid_sender_state_t *s,
{
s->timer = 0;
if (s->callback)
s->callback(s->callback_user_data, FALSE, 0, 0);
s->callback(s->callback_user_data, false, 0, 0);
}
}
}
@ -1059,7 +1064,7 @@ SPAN_DECLARE(int) ademco_contactid_sender_put(ademco_contactid_sender_state_t *s
return -1;
if ((s->tx_digits_len = encode_msg(s->tx_digits, report)) < 0)
return -1;
s->busy = TRUE;
s->busy = true;
return dtmf_tx_put(&s->dtmf, s->tx_digits, s->tx_digits_len);
}
/*- End of function --------------------------------------------------------*/
@ -1096,7 +1101,7 @@ SPAN_DECLARE(ademco_contactid_sender_state_t *) ademco_contactid_sender_init(ade
{
make_goertzel_descriptor(&tone_1400_desc, 1400.0f, GOERTZEL_SAMPLES_PER_BLOCK);
make_goertzel_descriptor(&tone_2300_desc, 2300.0f, GOERTZEL_SAMPLES_PER_BLOCK);
tone_rx_init = TRUE;
tone_rx_init = true;
}
goertzel_init(&s->tone_1400, &tone_1400_desc);
goertzel_init(&s->tone_2300, &tone_2300_desc);

View File

@ -40,6 +40,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <assert.h>
@ -64,6 +69,7 @@
#include "spandsp/private/queue.h"
#include "spandsp/private/tone_generate.h"
#include "spandsp/private/async.h"
#include "spandsp/private/power_meter.h"
#include "spandsp/private/fsk.h"
#include "spandsp/private/dtmf.h"
#include "spandsp/private/adsi.h"
@ -151,7 +157,7 @@ static int adsi_tx_get_bit(void *user_data)
if (s->tx_signal_on)
{
/* The FSK should now be switched off. */
s->tx_signal_on = FALSE;
s->tx_signal_on = false;
s->msg_len = 0;
}
}
@ -170,7 +176,7 @@ static int adsi_tdd_get_async_byte(void *user_data)
if (s->tx_signal_on)
{
/* The FSK should now be switched off. */
s->tx_signal_on = FALSE;
s->tx_signal_on = false;
s->msg_len = 0;
}
return 0x1F;
@ -386,12 +392,12 @@ static void start_tx(adsi_tx_state_t *s)
break;
case ADSI_STANDARD_TDD:
fsk_tx_init(&s->fsktx, &preset_fsk_specs[FSK_WEITBRECHT_4545], async_tx_get_bit, &s->asynctx);
async_tx_init(&s->asynctx, 5, ASYNC_PARITY_NONE, 2, FALSE, adsi_tdd_get_async_byte, s);
async_tx_init(&s->asynctx, 5, ASYNC_PARITY_NONE, 2, false, adsi_tdd_get_async_byte, s);
/* Schedule an explicit shift at the start of baudot transmission */
s->baudot_shift = 2;
break;
}
s->tx_signal_on = TRUE;
s->tx_signal_on = true;
}
/*- End of function --------------------------------------------------------*/
@ -489,7 +495,7 @@ SPAN_DECLARE(int) adsi_tx(adsi_tx_state_t *s, int16_t amp[], int max_len)
if (len < max_len)
{
if ((lenx = fsk_tx(&s->fsktx, amp + len, max_len - len)) <= 0)
s->tx_signal_on = FALSE;
s->tx_signal_on = false;
len += lenx;
}
break;
@ -672,7 +678,7 @@ SPAN_DECLARE(adsi_tx_state_t *) adsi_tx_init(adsi_tx_state_t *s, int standard)
60,
0,
0,
FALSE);
false);
s->standard = standard;
adsi_tx_set_preamble(s, -1, -1, -1, -1);
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);

View File

@ -33,7 +33,9 @@
#include <stdio.h>
#include <stdarg.h>
#include <fcntl.h>
#if !defined(__USE_ISOC11)
#define __USE_ISOC11
#endif
#include <stdlib.h>
#if defined(HAVE_MALLOC_H)
#include <malloc.h>
@ -48,26 +50,25 @@
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
static void *fake_aligned_alloc(size_t alignment, size_t size);
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4232) /* address of dllimport is not static, identity not guaranteed */
#endif
span_alloc_t __span_alloc = malloc;
#if defined(HAVE_ALIGNED_ALLOC)
span_aligned_alloc_t __span_aligned_alloc = aligned_alloc;
static span_aligned_alloc_t __span_aligned_alloc = aligned_alloc;
#elif defined(HAVE_MEMALIGN)
span_aligned_alloc_t __span_aligned_alloc = memalign;
static span_aligned_alloc_t __span_aligned_alloc = memalign;
#elif defined(HAVE_POSIX_MEMALIGN)
static void *fake_posix_memalign(size_t alignment, size_t size);
span_aligned_alloc_t __span_aligned_alloc = fake_posix_memalign;
static span_aligned_alloc_t __span_aligned_alloc = fake_posix_memalign;
#else
span_aligned_alloc_t __span_aligned_alloc = fake_aligned_alloc;
static void *fake_aligned_alloc(size_t alignment, size_t size);
static span_aligned_alloc_t __span_aligned_alloc = fake_aligned_alloc;
#endif
span_realloc_t __span_realloc = realloc;
span_free_t __span_free = free;
static span_alloc_t __span_alloc = malloc;
static span_realloc_t __span_realloc = realloc;
static span_free_t __span_free = free;
#ifdef _MSC_VER
#pragma warning(pop)
@ -85,11 +86,17 @@ static void *fake_posix_memalign(size_t alignment, size_t size)
return ptr;
}
/*- End of function --------------------------------------------------------*/
#endif
#else
static void *fake_aligned_alloc(size_t alignment, size_t size)
{
return NULL;
return malloc(size);
}
/*- End of function --------------------------------------------------------*/
#endif
SPAN_DECLARE(void *) span_aligned_alloc(size_t alignment, size_t size)
{
return __span_aligned_alloc(alignment, size);
}
/*- End of function --------------------------------------------------------*/
@ -99,12 +106,6 @@ SPAN_DECLARE(void *) span_alloc(size_t size)
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void *) span_aligned_alloc(size_t alignment, size_t size)
{
return __span_aligned_alloc(alignment, size);
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void *) span_realloc(void *ptr, size_t size)
{
return __span_realloc(ptr, size);
@ -117,20 +118,27 @@ SPAN_DECLARE(void) span_free(void *ptr)
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) span_mem_allocators(span_alloc_t custom_alloc,
span_aligned_alloc_t custom_aligned_alloc,
SPAN_DECLARE(int) span_mem_allocators(span_aligned_alloc_t custom_aligned_alloc,
span_alloc_t custom_alloc,
span_realloc_t custom_realloc,
span_free_t custom_free)
{
if (custom_alloc == NULL || custom_realloc == NULL || custom_free == NULL)
return -1;
__span_alloc = custom_alloc;
if (custom_aligned_alloc)
__span_aligned_alloc = custom_aligned_alloc;
else
__span_aligned_alloc = fake_aligned_alloc;
__span_realloc = custom_realloc;
__span_free = custom_free;
__span_aligned_alloc = (custom_aligned_alloc)
?
custom_aligned_alloc
:
#if defined(HAVE_ALIGNED_ALLOC)
aligned_alloc;
#elif defined(HAVE_MEMALIGN)
memalign;
#elif defined(HAVE_POSIX_MEMALIGN)
fake_posix_memalign;
#else
fake_aligned_alloc;
#endif
__span_alloc = (custom_alloc) ? custom_alloc : malloc;
__span_realloc = (custom_realloc) ? custom_realloc : realloc;
__span_free = (custom_free) ? custom_free : free;
return 0;
}
/*- End of function --------------------------------------------------------*/

View File

@ -33,6 +33,11 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
@ -169,7 +174,7 @@ SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
int data_bits,
int parity,
int stop_bits,
int use_v14,
bool use_v14,
put_byte_func_t put_byte,
void *user_data)
{
@ -269,7 +274,7 @@ SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
int data_bits,
int parity,
int stop_bits,
int use_v14,
bool use_v14,
get_byte_func_t get_byte,
void *user_data)
{

View File

@ -43,6 +43,11 @@
#include <memory.h>
#include <string.h>
#include <ctype.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include <assert.h>
#include "spandsp/telephony.h"
@ -78,20 +83,20 @@ static at_profile_t profiles[3] =
{
{
#if defined(_MSC_VER) || defined(__sunos) || defined(__solaris) || defined(__sun)
/*.echo =*/ TRUE,
/*.verbose =*/ TRUE,
/*.echo =*/ true,
/*.verbose =*/ true,
/*.result_code_format =*/ ASCII_RESULT_CODES,
/*.pulse_dial =*/ FALSE,
/*.double_escape =*/ FALSE,
/*.adaptive_receive =*/ FALSE,
/*.pulse_dial =*/ false,
/*.double_escape =*/ false,
/*.adaptive_receive =*/ false,
/*.s_regs[100] =*/ {0, 0, 0, '\r', '\n', '\b', 1, 60, 5, 0, 0}
#else
.echo = TRUE,
.verbose = TRUE,
.echo = true,
.verbose = true,
.result_code_format = ASCII_RESULT_CODES,
.pulse_dial = FALSE,
.double_escape = FALSE,
.adaptive_receive = FALSE,
.pulse_dial = false,
.double_escape = false,
.adaptive_receive = false,
.s_regs[0] = 0,
.s_regs[3] = '\r',
.s_regs[4] = '\n',
@ -256,11 +261,11 @@ SPAN_DECLARE(void) at_put_response_code(at_state_t *s, int code)
static int answer_call(at_state_t *s)
{
if (at_modem_control(s, AT_MODEM_CONTROL_ANSWER, NULL) < 0)
return FALSE;
return false;
/* Answering should now be in progress. No AT response should be
issued at this point. */
s->do_hangup = FALSE;
return TRUE;
s->do_hangup = false;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -319,7 +324,7 @@ SPAN_DECLARE(void) at_call_event(at_state_t *s, int event)
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_NOCNG_TONE_TX);
else
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_CNG_TONE_TX);
s->dte_is_waiting = TRUE;
s->dte_is_waiting = true;
}
}
break;
@ -343,13 +348,13 @@ SPAN_DECLARE(void) at_call_event(at_state_t *s, int event)
if (s->ok_is_pending)
{
at_put_response_code(s, AT_RESPONSE_CODE_OK);
s->ok_is_pending = FALSE;
s->ok_is_pending = false;
}
else
{
at_put_response_code(s, AT_RESPONSE_CODE_NO_CARRIER);
}
s->dte_is_waiting = FALSE;
s->dte_is_waiting = false;
at_set_at_rx_mode(s, AT_MODE_ONHOOK_COMMAND);
}
else if (s->fclass_mode && s->rx_signal_present)
@ -361,7 +366,7 @@ SPAN_DECLARE(void) at_call_event(at_state_t *s, int event)
}
if (s->at_rx_mode != AT_MODE_OFFHOOK_COMMAND && s->at_rx_mode != AT_MODE_ONHOOK_COMMAND)
at_put_response_code(s, AT_RESPONSE_CODE_NO_CARRIER);
s->rx_signal_present = FALSE;
s->rx_signal_present = false;
at_modem_control(s, AT_MODEM_CONTROL_RNG, (void *) 0);
at_set_at_rx_mode(s, AT_MODE_ONHOOK_COMMAND);
break;
@ -384,7 +389,7 @@ SPAN_DECLARE(void) at_reset_call_info(at_state_t *s)
}
s->call_id = NULL;
s->rings_indicated = 0;
s->call_info_displayed = FALSE;
s->call_info_displayed = false;
}
/*- End of function --------------------------------------------------------*/
@ -431,7 +436,7 @@ SPAN_DECLARE(void) at_display_call_info(at_state_t *s)
at_put_response(s, buf);
call_id = call_id->next;
}
s->call_info_displayed = TRUE;
s->call_info_displayed = true;
}
/*- End of function --------------------------------------------------------*/
@ -526,7 +531,7 @@ static int parse_out(at_state_t *s, const char **t, int *target, int max_value,
default:
/* Set value */
if ((val = parse_num(t, max_value)) < 0)
return FALSE;
return false;
if (target)
*target = val;
break;
@ -539,9 +544,9 @@ static int parse_out(at_state_t *s, const char **t, int *target, int max_value,
at_put_response(s, buf);
break;
default:
return FALSE;
return false;
}
return TRUE;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -565,14 +570,14 @@ static int parse_2_out(at_state_t *s, const char **t, int *target1, int max_valu
default:
/* Set value */
if ((val1 = parse_num(t, max_value1)) < 0)
return FALSE;
return false;
if (target1)
*target1 = val1;
if (**t == ',')
{
(*t)++;
if ((val2 = parse_num(t, max_value2)) < 0)
return FALSE;
return false;
if (target2)
*target2 = val2;
}
@ -587,9 +592,9 @@ static int parse_2_out(at_state_t *s, const char **t, int *target1, int max_valu
at_put_response(s, buf);
break;
default:
return FALSE;
return false;
}
return TRUE;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -622,7 +627,7 @@ static int parse_n_out(at_state_t *s,
for (i = 0; i < entries; i++)
{
if ((val = parse_num(t, max_values[i])) < 0)
return FALSE;
return false;
if (targets[i])
*targets[i] = val;
if (**t != ',')
@ -645,9 +650,9 @@ static int parse_n_out(at_state_t *s,
at_put_response(s, buf);
break;
default:
return FALSE;
return false;
}
return TRUE;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -670,7 +675,7 @@ static int parse_hex_out(at_state_t *s, const char **t, int *target, int max_val
default:
/* Set value */
if ((val = parse_hex_num(t, max_value)) < 0)
return FALSE;
return false;
if (target)
*target = val;
break;
@ -683,9 +688,9 @@ static int parse_hex_out(at_state_t *s, const char **t, int *target, int max_val
at_put_response(s, buf);
break;
default:
return FALSE;
return false;
}
return TRUE;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -710,7 +715,7 @@ static int parse_string_list_out(at_state_t *s, const char **t, int *target, int
default:
/* Set value */
if ((val = match_element(t, def)) < 0)
return FALSE;
return false;
if (target)
*target = val;
break;
@ -729,9 +734,9 @@ static int parse_string_list_out(at_state_t *s, const char **t, int *target, int
at_put_response(s, buf);
break;
default:
return FALSE;
return false;
}
return TRUE;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -764,11 +769,11 @@ static int parse_string_out(at_state_t *s, const char **t, char **target, const
at_put_response(s, (*target) ? *target : "");
break;
default:
return FALSE;
return false;
}
while (*t)
t++;
return TRUE;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -863,18 +868,18 @@ static int process_class1_cmd(at_state_t *s, const char **t)
val = -1;
if (!parse_out(s, t, &val, 255, NULL, allowed))
return TRUE;
return true;
if (val < 0)
{
/* It was just a query */
return TRUE;
return true;
}
/* All class 1 FAX commands are supposed to give an ERROR response, if the phone
is on-hook. */
if (s->at_rx_mode == AT_MODE_ONHOOK_COMMAND)
return FALSE;
return false;
result = TRUE;
result = true;
if (s->class1_handler)
result = s->class1_handler(s, s->class1_user_data, direction, operation, val);
switch (result)
@ -882,11 +887,11 @@ static int process_class1_cmd(at_state_t *s, const char **t)
case 0:
/* Inhibit an immediate response. (These commands should not be part of a multi-command entry.) */
*t = (const char *) -1;
return TRUE;
return true;
case -1:
return FALSE;
return false;
}
return TRUE;
return true;
}
/*- End of function --------------------------------------------------------*/
@ -916,11 +921,11 @@ static const char *at_cmd_D(at_state_t *s, const char *t)
/* V.250 6.3.1 - Dial (abortable) */
at_reset_call_info(s);
s->do_hangup = FALSE;
s->silent_dial = FALSE;
s->command_dial = FALSE;
s->do_hangup = false;
s->silent_dial = false;
s->command_dial = false;
t += 1;
ok = FALSE;
ok = false;
/* There are a numbers of options in a dial command string.
Many are completely irrelevant in this application. */
u = num;
@ -962,11 +967,11 @@ static const char *at_cmd_D(at_state_t *s, const char *t)
break;
case 'T':
/* V.250 6.3.1.3 Tone dial */
s->p.pulse_dial = FALSE;
s->p.pulse_dial = false;
break;
case 'P':
/* V.250 6.3.1.4 Pulse dial */
s->p.pulse_dial = TRUE;
s->p.pulse_dial = true;
break;
case '!':
/* V.250 6.3.1.5 Hook flash, register recall */
@ -978,7 +983,7 @@ static const char *at_cmd_D(at_state_t *s, const char *t)
break;
case '@':
/* V.250 6.3.1.7 Wait for quiet answer */
s->silent_dial = TRUE;
s->silent_dial = true;
break;
case 'S':
/* V.250 6.3.1.8 Invoke stored string */
@ -999,7 +1004,7 @@ static const char *at_cmd_D(at_state_t *s, const char *t)
break;
case ';':
/* V.250 6.3.1 - Dial string terminator - make voice call and remain in command mode */
s->command_dial = TRUE;
s->command_dial = true;
break;
case '>':
/* GSM07.07 6.2 - Direct dialling from phone book supplementary service subscription
@ -1055,7 +1060,7 @@ static const char *at_cmd_H(at_state_t *s, const char *t)
{
/* Push out the last of the audio (probably by sending a short silence). */
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_FLUSH);
s->do_hangup = TRUE;
s->do_hangup = true;
at_set_at_rx_mode(s, AT_MODE_CONNECTED);
return (const char *) -1;
}
@ -1138,7 +1143,7 @@ static const char *at_cmd_P(at_state_t *s, const char *t)
{
/* V.250 6.3.3 - Select pulse dialling (command) */
t += 1;
s->p.pulse_dial = TRUE;
s->p.pulse_dial = true;
return t;
}
/*- End of function --------------------------------------------------------*/
@ -1232,7 +1237,7 @@ static const char *at_cmd_T(at_state_t *s, const char *t)
{
/* V.250 6.3.2 - Select tone dialling (command) */
t += 1;
s->p.pulse_dial = FALSE;
s->p.pulse_dial = false;
return t;
}
/*- End of function --------------------------------------------------------*/

View File

@ -40,6 +40,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include "spandsp/telephony.h"
@ -78,10 +83,10 @@ typedef struct
uint8_t off_time; /* Minimum post tone silence (ms) */
} mf_digit_tones_t;
int bell_mf_gen_inited = FALSE;
int bell_mf_gen_inited = false;
tone_gen_descriptor_t bell_mf_digit_tones[15];
int r2_mf_gen_inited = FALSE;
int r2_mf_gen_inited = false;
tone_gen_descriptor_t r2_mf_fwd_digit_tones[15];
tone_gen_descriptor_t r2_mf_back_digit_tones[15];
@ -271,10 +276,10 @@ static void bell_mf_gen_init(void)
tones->off_time,
0,
0,
FALSE);
false);
tones++;
}
bell_mf_gen_inited = TRUE;
bell_mf_gen_inited = true;
}
/*- End of function --------------------------------------------------------*/
@ -391,7 +396,7 @@ SPAN_DECLARE(int) r2_mf_tx_put(r2_mf_tx_state_t *s, char digit)
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd)
SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, bool fwd)
{
int i;
const mf_digit_tones_t *tones;
@ -437,7 +442,7 @@ SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd)
(tones->off_time == 0));
tones++;
}
r2_mf_gen_inited = TRUE;
r2_mf_gen_inited = true;
}
s->fwd = fwd;
return s;
@ -630,7 +635,7 @@ SPAN_DECLARE(bell_mf_rx_state_t *) bell_mf_rx_init(bell_mf_rx_state_t *s,
void *user_data)
{
int i;
static int initialised = FALSE;
static int initialised = false;
if (s == NULL)
{
@ -643,7 +648,7 @@ SPAN_DECLARE(bell_mf_rx_state_t *) bell_mf_rx_init(bell_mf_rx_state_t *s,
{
for (i = 0; i < 6; i++)
make_goertzel_descriptor(&bell_mf_detect_desc[i], (float) bell_mf_frequencies[i], BELL_MF_SAMPLES_PER_BLOCK);
initialised = TRUE;
initialised = true;
}
s->digits_callback = callback;
s->digits_callback_data = user_data;
@ -746,7 +751,7 @@ SPAN_DECLARE(int) r2_mf_rx(r2_mf_rx_state_t *s, const int16_t amp[], int samples
}
}
/* Basic signal level and twist tests */
hit = FALSE;
hit = false;
if (energy[best] >= R2_MF_THRESHOLD
&&
energy[second_best] >= R2_MF_THRESHOLD
@ -756,7 +761,7 @@ SPAN_DECLARE(int) r2_mf_rx(r2_mf_rx_state_t *s, const int16_t amp[], int samples
energy[best]*R2_MF_TWIST > energy[second_best])
{
/* Relative peak test */
hit = TRUE;
hit = true;
for (i = 0; i < 6; i++)
{
if (i != best && i != second_best)
@ -764,7 +769,7 @@ SPAN_DECLARE(int) r2_mf_rx(r2_mf_rx_state_t *s, const int16_t amp[], int samples
if (energy[i]*R2_MF_RELATIVE_PEAK >= energy[second_best])
{
/* The best two are not clearly the best */
hit = FALSE;
hit = false;
break;
}
}
@ -805,12 +810,12 @@ SPAN_DECLARE(int) r2_mf_rx_get(r2_mf_rx_state_t *s)
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
int fwd,
bool fwd,
tone_report_func_t callback,
void *user_data)
{
int i;
static int initialised = FALSE;
static int initialised = false;
if (s == NULL)
{
@ -828,7 +833,7 @@ SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
make_goertzel_descriptor(&mf_fwd_detect_desc[i], (float) r2_mf_fwd_frequencies[i], R2_MF_SAMPLES_PER_BLOCK);
make_goertzel_descriptor(&mf_back_detect_desc[i], (float) r2_mf_back_frequencies[i], R2_MF_SAMPLES_PER_BLOCK);
}
initialised = TRUE;
initialised = true;
}
if (fwd)
{

View File

@ -33,6 +33,11 @@
#include <string.h>
#include <assert.h>
#include <time.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
@ -137,14 +142,14 @@ static void assess_error_rate(bert_state_t *s)
int i;
int j;
int sum;
int test;
bool test;
/* We assess the error rate in decadic steps. For each decade we assess the error over 10 times
the number of bits, to smooth the result. This means we assess the 1 in 100 rate based on 1000 bits
(i.e. we look for >=10 errors in 1000 bits). We make an assessment every 100 bits, using a sliding
window over the last 1000 bits. We assess the 1 in 1000 rate over 10000 bits in a similar way, and
so on for the lower error rates. */
test = TRUE;
test = false;
for (i = 2; i <= 7; i++)
{
if (++s->decade_ptr[i] < 10)
@ -157,7 +162,7 @@ static void assess_error_rate(bert_state_t *s)
if (test && sum > 10)
{
/* We overflow into the next decade */
test = FALSE;
test = false;
if (s->error_rate != i && s->reporter)
s->reporter(s->user_data, BERT_REPORT_GT_10_2 + i - 2, &s->results);
s->error_rate = i;

View File

@ -33,6 +33,11 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"

View File

@ -39,6 +39,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include <assert.h>
#include "floating_fudge.h"

View File

@ -39,6 +39,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include <assert.h>
#include "floating_fudge.h"

View File

@ -32,6 +32,11 @@
#include <inttypes.h>
#include <stdio.h>
#include <string.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/crc.h"
@ -102,7 +107,7 @@ SPAN_DECLARE(int) crc_itu32_append(uint8_t *buf, int len)
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) crc_itu32_check(const uint8_t *buf, int len)
SPAN_DECLARE(bool) crc_itu32_check(const uint8_t *buf, int len)
{
uint32_t crc;
int i;
@ -193,7 +198,7 @@ SPAN_DECLARE(int) crc_itu16_append(uint8_t *buf, int len)
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) crc_itu16_check(const uint8_t *buf, int len)
SPAN_DECLARE(bool) crc_itu16_check(const uint8_t *buf, int len)
{
uint16_t crc;
int i;

View File

@ -31,16 +31,21 @@
#include <stdlib.h>
#include <inttypes.h>
#include <memory.h>
#include <string.h>
#include <limits.h>
#if defined(HAVE_TGMATH_H)
#include <tgmath.h>
#endif
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <memory.h>
#include <string.h>
#include <limits.h>
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
@ -94,11 +99,11 @@ static const float dtmf_col[] =
static const char dtmf_positions[] = "123A" "456B" "789C" "*0#D";
static int dtmf_rx_inited = FALSE;
static bool dtmf_rx_inited = false;
static goertzel_descriptor_t dtmf_detect_row[4];
static goertzel_descriptor_t dtmf_detect_col[4];
static int dtmf_tx_inited = FALSE;
static bool dtmf_tx_inited = false;
static tone_gen_descriptor_t dtmf_digit_tones[16];
SPAN_DECLARE(int) dtmf_rx(dtmf_rx_state_t *s, const int16_t amp[], int samples)
@ -424,7 +429,7 @@ SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
s->digits_callback_data = user_data;
s->realtime_callback = NULL;
s->realtime_callback_data = NULL;
s->filter_dialtone = FALSE;
s->filter_dialtone = false;
s->normal_twist = DTMF_NORMAL_TWIST;
s->reverse_twist = DTMF_REVERSE_TWIST;
s->threshold = DTMF_THRESHOLD;
@ -439,7 +444,7 @@ SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
make_goertzel_descriptor(&dtmf_detect_row[i], dtmf_row[i], DTMF_SAMPLES_PER_BLOCK);
make_goertzel_descriptor(&dtmf_detect_col[i], dtmf_col[i], DTMF_SAMPLES_PER_BLOCK);
}
dtmf_rx_inited = TRUE;
dtmf_rx_inited = true;
}
for (i = 0; i < 4; i++)
{
@ -492,10 +497,10 @@ static void dtmf_tx_initialise(void)
DEFAULT_DTMF_TX_OFF_TIME,
0,
0,
FALSE);
false);
}
}
dtmf_tx_inited = TRUE;
dtmf_tx_inited = true;
}
/*- End of function --------------------------------------------------------*/

View File

@ -88,6 +88,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <string.h>
#include <stdio.h>
@ -106,12 +111,6 @@
#if !defined(NULL)
#define NULL (void *) 0
#endif
#if !defined(FALSE)
#define FALSE 0
#endif
#if !defined(TRUE)
#define TRUE (!FALSE)
#endif
#define NONUPDATE_DWELL_TIME 600 /* 600 samples, or 75ms */
@ -275,7 +274,7 @@ SPAN_DECLARE(echo_can_state_t *) echo_can_init(int len, int adaption_mode)
ec->rx_power_threshold = 10000000;
ec->geigel_max = 0;
ec->geigel_lag = 0;
ec->dtd_onset = FALSE;
ec->dtd_onset = false;
ec->tap_set = 0;
ec->tap_rotate_counter = 1600;
ec->cng_level = 1000;
@ -338,7 +337,7 @@ SPAN_DECLARE(void) echo_can_flush(echo_can_state_t *ec)
ec->geigel_max = 0;
ec->geigel_lag = 0;
ec->dtd_onset = FALSE;
ec->dtd_onset = false;
ec->tap_set = 0;
ec->tap_rotate_counter = 1600;
@ -486,7 +485,7 @@ printf("Revert to %d at %d\n", (ec->tap_set + 1)%3, sample_no);
ec->narrowband_score = 0;
}
}
ec->dtd_onset = FALSE;
ec->dtd_onset = false;
if (--ec->tap_rotate_counter <= 0)
{
printf("Rotate to %d at %d\n", ec->tap_set, sample_no);
@ -533,7 +532,7 @@ printf("Revert to %d at %d\n", (ec->tap_set + 1)%3, sample_no);
for (i = 0; i < ec->taps; i++)
ec->fir_taps32[i] = ec->fir_taps16[(ec->tap_set + 1)%3][i] << 15;
ec->tap_rotate_counter = 1600;
ec->dtd_onset = TRUE;
ec->dtd_onset = true;
}
ec->nonupdate_dwell = NONUPDATE_DWELL_TIME;
}
@ -576,7 +575,7 @@ printf("Revert to %d at %d\n", (ec->tap_set + 1)%3, sample_no);
if (!ec->cng)
{
ec->cng_level = ec->clean_rx_power;
ec->cng = TRUE;
ec->cng = true;
}
if ((ec->adaption_mode & ECHO_CAN_USE_CNG))
{
@ -595,12 +594,12 @@ printf("Revert to %d at %d\n", (ec->tap_set + 1)%3, sample_no);
}
else
{
ec->cng = FALSE;
ec->cng = false;
}
}
else
{
ec->cng = FALSE;
ec->cng = false;
}
printf("Narrowband score %4d %5d at %d\n", ec->narrowband_score, score, sample_no);

View File

@ -40,6 +40,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <assert.h>
#include <fcntl.h>
@ -96,6 +101,7 @@
#include "spandsp/private/logging.h"
#include "spandsp/private/silence_gen.h"
#include "spandsp/private/power_meter.h"
#include "spandsp/private/fsk.h"
#include "spandsp/private/modem_connect_tones.h"
#include "spandsp/private/v8.h"
@ -210,7 +216,7 @@ static int set_next_tx_type(fax_state_t *s)
silence_gen_alter(&t->silence_gen, 0);
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE;
t->transmit = false;
return -1;
}
/*- End of function --------------------------------------------------------*/
@ -277,7 +283,7 @@ static void fax_set_rx_type(void *user_data, int type, int bit_rate, int short_t
t->current_rx_type = type;
t->rx_bit_rate = bit_rate;
if (use_hdlc)
hdlc_rx_init(&t->hdlc_rx, FALSE, TRUE, HDLC_FRAMING_OK_THRESHOLD, t30_hdlc_accept, &s->t30);
hdlc_rx_init(&t->hdlc_rx, false, true, HDLC_FRAMING_OK_THRESHOLD, t30_hdlc_accept, &s->t30);
switch (type)
{
@ -320,14 +326,14 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
silence_gen_alter(&t->silence_gen, ms_to_samples(short_train));
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE;
t->transmit = true;
break;
case T30_MODEM_CED:
case T30_MODEM_CNG:
tone = (type == T30_MODEM_CED) ? FAX_MODEM_CED_TONE_TX : FAX_MODEM_CNG_TONE_TX;
fax_modems_start_slow_modem(t, tone);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE;
t->transmit = true;
break;
case T30_MODEM_V21:
fax_modems_start_slow_modem(t, FAX_MODEM_V21_TX);
@ -340,7 +346,7 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
t->transmit = TRUE;
t->transmit = true;
break;
case T30_MODEM_V17:
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
@ -349,7 +355,7 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
fax_modems_start_fast_modem(t, FAX_MODEM_V17_TX, bit_rate, short_train, use_hdlc);
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
t->transmit = TRUE;
t->transmit = true;
break;
case T30_MODEM_V27TER:
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
@ -358,7 +364,7 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
fax_modems_start_fast_modem(t, FAX_MODEM_V27TER_TX, bit_rate, short_train, use_hdlc);
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
t->transmit = TRUE;
t->transmit = true;
break;
case T30_MODEM_V29:
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
@ -367,7 +373,7 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
fax_modems_start_fast_modem(t, FAX_MODEM_V29_TX, bit_rate, short_train, use_hdlc);
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
t->transmit = TRUE;
t->transmit = true;
break;
case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
@ -376,7 +382,7 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
silence_gen_alter(&t->silence_gen, 0);
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE;
t->transmit = false;
break;
}
t->tx_bit_rate = bit_rate;
@ -478,7 +484,7 @@ SPAN_DECLARE(fax_state_t *) fax_init(fax_state_t *s, int calling_party)
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
span_log_set_protocol(&s->logging, "FAX");
fax_modems_init(&s->modems,
FALSE,
false,
t30_hdlc_accept,
hdlc_underflow_handler,
t30_non_ecm_put_bit,

View File

@ -39,6 +39,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <assert.h>
#include <fcntl.h>
@ -74,6 +79,7 @@
#include "spandsp/private/logging.h"
#include "spandsp/private/silence_gen.h"
#include "spandsp/private/power_meter.h"
#include "spandsp/private/fsk.h"
#include "spandsp/private/v17tx.h"
#include "spandsp/private/v17rx.h"
@ -93,7 +99,7 @@ static void fax_modems_hdlc_accept(void *user_data, const uint8_t *msg, int len,
s = (fax_modems_state_t *) user_data;
if (ok)
s->rx_frame_received = TRUE;
s->rx_frame_received = false;
if (s->hdlc_accept)
s->hdlc_accept(s->hdlc_accept_user_data, msg, len, ok);
}
@ -264,7 +270,7 @@ SPAN_DECLARE(void) fax_modems_start_slow_modem(fax_modems_state_t *s, int which)
fsk_rx_init(&s->v21_rx, &preset_fsk_specs[FSK_V21CH2], FSK_FRAME_MODE_SYNC, (put_bit_func_t) hdlc_rx_put_bit, &s->hdlc_rx);
fax_modems_set_rx_handler(s, (span_rx_handler_t) &fsk_rx, &s->v21_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
fsk_rx_signal_cutoff(&s->v21_rx, -39.09f);
s->rx_frame_received = FALSE;
s->rx_frame_received = false;
break;
case FAX_MODEM_CED_TONE_RX:
modem_connect_tones_rx_init(&s->connect_rx, MODEM_CONNECT_TONES_FAX_CED, s->tone_callback, s->tone_callback_user_data);
@ -322,10 +328,10 @@ SPAN_DECLARE(void) fax_modems_start_fast_modem(fax_modems_state_t *s, int which,
if (s->fast_modem != which)
{
s->current_rx_type = which;
s->short_train = FALSE;
s->short_train = false;
s->fast_modem = which;
if (hdlc_mode)
s->rx_frame_received = FALSE;
s->rx_frame_received = false;
switch (s->fast_modem)
{
case FAX_MODEM_V27TER_RX:
@ -368,13 +374,13 @@ SPAN_DECLARE(void) fax_modems_start_fast_modem(fax_modems_state_t *s, int which,
switch (s->fast_modem)
{
case FAX_MODEM_V27TER_RX:
v27ter_rx_restart(&s->fast_modems.v27ter_rx, s->bit_rate, FALSE);
v27ter_rx_restart(&s->fast_modems.v27ter_rx, s->bit_rate, false);
v27ter_rx_set_put_bit(&s->fast_modems.v27ter_rx, put_bit, put_bit_user_data);
v27ter_rx_set_modem_status_handler(&s->fast_modems.v27ter_rx, v27ter_rx_status_handler, s);
fax_modems_set_rx_handler(s, (span_rx_handler_t) &fax_modems_v27ter_v21_rx, s, (span_rx_fillin_handler_t) &fax_modems_v27ter_v21_rx_fillin, s);
break;
case FAX_MODEM_V29_RX:
v29_rx_restart(&s->fast_modems.v29_rx, s->bit_rate, FALSE);
v29_rx_restart(&s->fast_modems.v29_rx, s->bit_rate, false);
v29_rx_set_put_bit(&s->fast_modems.v29_rx, put_bit, put_bit_user_data);
v29_rx_set_modem_status_handler(&s->fast_modems.v29_rx, v29_rx_status_handler, s);
fax_modems_set_rx_handler(s, (span_rx_handler_t) &fax_modems_v29_v21_rx, s, (span_rx_fillin_handler_t) &fax_modems_v29_v21_rx_fillin, s);
@ -535,15 +541,15 @@ SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s,
s->hdlc_accept = hdlc_accept;
s->hdlc_accept_user_data = user_data;
hdlc_rx_init(&s->hdlc_rx, FALSE, FALSE, HDLC_FRAMING_OK_THRESHOLD, fax_modems_hdlc_accept, s);
hdlc_tx_init(&s->hdlc_tx, FALSE, 2, FALSE, hdlc_tx_underflow, user_data);
hdlc_rx_init(&s->hdlc_rx, false, false, HDLC_FRAMING_OK_THRESHOLD, fax_modems_hdlc_accept, s);
hdlc_tx_init(&s->hdlc_tx, false, 2, false, hdlc_tx_underflow, user_data);
fax_modems_start_slow_modem(s, FAX_MODEM_V21_RX);
fsk_tx_init(&s->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &s->hdlc_tx);
silence_gen_init(&s->silence_gen, 0);
s->rx_signal_present = FALSE;
s->rx_signal_present = false;
s->rx_handler = (span_rx_handler_t) &span_dummy_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t) &span_dummy_rx;
s->rx_user_data = NULL;

View File

@ -32,29 +32,27 @@
#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <fcntl.h>
#if defined(HAVE_TGMATH_H)
#include <tgmath.h>
#endif
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <fcntl.h>
#include "spandsp/telephony.h"
#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
#define MAX_FFT_LEN SEQ_LEN

View File

@ -38,6 +38,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <assert.h>
@ -49,6 +54,7 @@
#include "spandsp/async.h"
#include "spandsp/fsk.h"
#include "spandsp/private/power_meter.h"
#include "spandsp/private/fsk.h"
const fsk_spec_t preset_fsk_specs[] =
@ -155,7 +161,7 @@ SPAN_DECLARE(int) fsk_tx_restart(fsk_tx_state_t *s, const fsk_spec_t *spec)
s->baud_frac = 0;
s->current_phase_rate = s->phase_rates[1];
s->shutdown = FALSE;
s->shutdown = false;
return 0;
}
/*- End of function --------------------------------------------------------*/
@ -214,7 +220,7 @@ SPAN_DECLARE_NONSTD(int) fsk_tx(fsk_tx_state_t *s, int16_t amp[], int len)
s->status_handler(s->status_user_data, SIG_STATUS_END_OF_DATA);
if (s->status_handler)
s->status_handler(s->status_user_data, SIG_STATUS_SHUTDOWN_COMPLETE);
s->shutdown = TRUE;
s->shutdown = true;
break;
}
s->current_phase_rate = s->phase_rates[bit & 1];

View File

@ -38,6 +38,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include "spandsp/telephony.h"
@ -263,11 +268,11 @@ SPAN_DECLARE(g722_decode_state_t *) g722_decode_init(g722_decode_state_t *s, int
else
s->bits_per_sample = 8;
if ((options & G722_SAMPLE_RATE_8000))
s->eight_k = TRUE;
s->eight_k = true;
if ((options & G722_PACKED) && s->bits_per_sample != 8)
s->packed = TRUE;
s->packed = true;
else
s->packed = FALSE;
s->packed = false;
s->band[0].det = 32;
s->band[1].det = 8;
return s;
@ -444,11 +449,11 @@ SPAN_DECLARE(g722_encode_state_t *) g722_encode_init(g722_encode_state_t *s, int
else
s->bits_per_sample = 8;
if ((options & G722_SAMPLE_RATE_8000))
s->eight_k = TRUE;
s->eight_k = true;
if ((options & G722_PACKED) && s->bits_per_sample != 8)
s->packed = TRUE;
s->packed = true;
else
s->packed = FALSE;
s->packed = false;
s->band[0].det = 32;
s->band[1].det = 8;
return s;

View File

@ -64,6 +64,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include "spandsp/telephony.h"
@ -394,7 +399,7 @@ static void update(g726_state_t *s,
int16_t thr;
int16_t pk0;
int i;
int tr;
bool tr;
a2p = 0;
/* Needed in updating predictor poles */
@ -409,11 +414,11 @@ static void update(g726_state_t *s,
thr = (ylint > 9) ? (31 << 10) : ((32 + ylfrac) << ylint);
dqthr = (thr + (thr >> 1)) >> 1; /* dqthr = 0.75 * thr */
if (!s->td) /* signal supposed voice */
tr = FALSE;
tr = false;
else if (mag <= dqthr) /* supposed data, but small mag */
tr = FALSE; /* treated as voice */
tr = false; /* treated as voice */
else /* signal is data (modem) */
tr = TRUE;
tr = true;
/*
* Quantizer scale factor adaptation.
@ -564,11 +569,11 @@ static void update(g726_state_t *s,
/* TONE */
if (tr) /* this sample has been treated as data */
s->td = FALSE; /* next one will be treated as voice */
s->td = false; /* next one will be treated as voice */
else if (a2p < -11776) /* small sample-to-sample correlation */
s->td = TRUE; /* signal may be data */
s->td = true; /* signal may be data */
else /* signal is voice */
s->td = FALSE;
s->td = false;
/* Adaptation speed control. */
/* FILTA */
@ -1025,7 +1030,7 @@ SPAN_DECLARE(g726_state_t *) g726_init(g726_state_t *s, int bit_rate, int ext_co
s->b[i] = 0;
s->dq[i] = 32;
}
s->td = FALSE;
s->td = false;
switch (bit_rate)
{
case 16000:

View File

@ -59,7 +59,7 @@
static void weighting_filter(int16_t x[40],
const int16_t *e) // signal [-5..0.39.44] IN)
{
#if defined(__GNUC__) && defined(SPANDSP_USE_MMX) && defined(__x86_64__) && !(defined(__APPLE_CC__) && __APPLE_CC__ >= 5448)
#if defined(__GNUC__) && defined(SPANDSP_USE_MMX) && defined(__x86_64__)
/* Table 4.4 Coefficients of the weighting filter */
/* This must be padded to a multiple of 4 for MMX to work */
static const union

View File

@ -33,6 +33,11 @@
#include <inttypes.h>
#include <string.h>
#include <stdio.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
@ -47,7 +52,7 @@ 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);
s->frame_handler(s->frame_user_data, NULL, status, true);
}
/*- End of function --------------------------------------------------------*/
@ -63,7 +68,7 @@ static void rx_special_condition(hdlc_rx_state_t *s, int status)
s->len = 0;
s->num_bits = 0;
s->flags_seen = 0;
s->framing_ok_announced = FALSE;
s->framing_ok_announced = false;
/* Fall through */
case SIG_STATUS_TRAINING_IN_PROGRESS:
case SIG_STATUS_TRAINING_FAILED:
@ -95,7 +100,7 @@ static __inline__ void octet_set_and_count(hdlc_rx_state_t *s)
}
else
{
s->octet_counting_mode = TRUE;
s->octet_counting_mode = true;
s->octet_count = s->octet_count_report_interval;
}
}
@ -140,7 +145,7 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
{
/* Hit HDLC flag */
/* A flag clears octet counting */
s->octet_counting_mode = FALSE;
s->octet_counting_mode = false;
if (s->flags_seen >= s->framing_ok_threshold)
{
/* We may have a frame, or we may have back to back flags */
@ -156,7 +161,7 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
s->rx_bytes += s->len - s->crc_bytes;
s->len -= s->crc_bytes;
if (s->frame_handler)
s->frame_handler(s->frame_user_data, s->buffer, s->len, TRUE);
s->frame_handler(s->frame_user_data, s->buffer, s->len, true);
}
else
{
@ -165,7 +170,7 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
{
s->len -= s->crc_bytes;
if (s->frame_handler)
s->frame_handler(s->frame_user_data, s->buffer, s->len, FALSE);
s->frame_handler(s->frame_user_data, s->buffer, s->len, false);
}
}
}
@ -181,7 +186,7 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
else
s->len = 0;
if (s->frame_handler)
s->frame_handler(s->frame_user_data, s->buffer, s->len, FALSE);
s->frame_handler(s->frame_user_data, s->buffer, s->len, false);
}
s->rx_length_errors++;
}
@ -206,7 +211,7 @@ static void rx_flag_or_abort(hdlc_rx_state_t *s)
if (++s->flags_seen >= s->framing_ok_threshold && !s->framing_ok_announced)
{
report_status_change(s, SIG_STATUS_FRAMING_OK);
s->framing_ok_announced = TRUE;
s->framing_ok_announced = true;
}
}
}
@ -307,8 +312,8 @@ SPAN_DECLARE(void) hdlc_rx_set_octet_counting_report_interval(hdlc_rx_state_t *s
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
int crc32,
int report_bad_frames,
bool crc32,
bool report_bad_frames,
int framing_ok_threshold,
hdlc_frame_handler_t handler,
void *user_data)
@ -372,7 +377,7 @@ SPAN_DECLARE(int) hdlc_tx_frame(hdlc_tx_state_t *s, const uint8_t *frame, size_t
{
if (len <= 0)
{
s->tx_end = TRUE;
s->tx_end = true;
return 0;
}
if (s->len + len > s->max_frame_len)
@ -398,7 +403,7 @@ SPAN_DECLARE(int) hdlc_tx_frame(hdlc_tx_state_t *s, const uint8_t *frame, size_t
s->len += len;
else
s->len = len;
s->tx_end = FALSE;
s->tx_end = false;
return 0;
}
/*- End of function --------------------------------------------------------*/
@ -413,8 +418,8 @@ SPAN_DECLARE(int) hdlc_tx_flags(hdlc_tx_state_t *s, int len)
s->flag_octets += -len;
else
s->flag_octets = len;
s->report_flag_underflow = TRUE;
s->tx_end = FALSE;
s->report_flag_underflow = true;
s->tx_end = false;
return 0;
}
/*- End of function --------------------------------------------------------*/
@ -453,7 +458,7 @@ SPAN_DECLARE_NONSTD(int) hdlc_tx_get_byte(hdlc_tx_state_t *s)
/* We are in a timed flag section (preamble, inter frame gap, etc.) */
if (--s->flag_octets <= 0 && s->report_flag_underflow)
{
s->report_flag_underflow = FALSE;
s->report_flag_underflow = false;
if (s->len == 0)
{
/* The timed flags have finished, there is nothing else queued to go,
@ -509,7 +514,7 @@ SPAN_DECLARE_NONSTD(int) hdlc_tx_get_byte(hdlc_tx_state_t *s)
s->crc = 0xFFFFFFFF;
/* Report the underflow now. If there are timed flags still in progress, loading the
next frame right now will be harmless. */
s->report_flag_underflow = FALSE;
s->report_flag_underflow = false;
if (s->underflow_handler)
s->underflow_handler(s->user_data);
/* Make sure we finish off with at least one flag octet, if the underflow report did not result
@ -540,7 +545,7 @@ SPAN_DECLARE_NONSTD(int) hdlc_tx_get_byte(hdlc_tx_state_t *s)
/* Untimed idling on flags */
if (s->tx_end)
{
s->tx_end = FALSE;
s->tx_end = false;
return SIG_STATUS_END_OF_DATA;
}
return s->idle_octet;
@ -585,9 +590,9 @@ SPAN_DECLARE(void) hdlc_tx_set_max_frame_len(hdlc_tx_state_t *s, size_t max_len)
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
int crc32,
bool crc32,
int inter_frame_flags,
int progressive,
bool progressive,
hdlc_underflow_handler_t handler,
void *user_data)
{

View File

@ -47,6 +47,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <tiffio.h>
#include <assert.h>

View File

@ -40,6 +40,11 @@
#include <signal.h>
#include <sys/time.h>
#include <time.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
@ -74,11 +79,11 @@ static void default_message_handler(void *user_data, int level, const char *text
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(int) span_log_test(logging_state_t *s, int level)
SPAN_DECLARE(bool) span_log_test(logging_state_t *s, int level)
{
if (s && (s->level & SPAN_LOG_SEVERITY_MASK) >= (level & SPAN_LOG_SEVERITY_MASK))
return TRUE;
return FALSE;
return true;
return false;
}
/*- End of function --------------------------------------------------------*/

View File

@ -41,6 +41,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include "spandsp/telephony.h"
@ -349,7 +354,7 @@ static void onset(lpc10_encode_state_t *s,
osbuf[*osptr - 1] = i - 9;
(*osptr)++;
}
s->hyst = TRUE;
s->hyst = true;
}
s->lasti = i;
/* After one onset detection, at least OSHYST sample times must go */
@ -357,7 +362,7 @@ static void onset(lpc10_encode_state_t *s,
}
else if (s->hyst && i - s->lasti >= 10)
{
s->hyst = FALSE;
s->hyst = false;
}
}
}

View File

@ -34,14 +34,19 @@
#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
#include <memory.h>
#if defined(HAVE_TGMATH_H)
#include <tgmath.h>
#endif
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <memory.h>
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
@ -280,7 +285,7 @@ static int pitsyn(lpc10_decode_state_t *s,
ipiti[i] = *pitch;
rmsi[i] = *rms;
}
s->first_pitsyn = FALSE;
s->first_pitsyn = false;
}
else
{
@ -407,7 +412,7 @@ static int pitsyn(lpc10_decode_state_t *s,
/* NOUT | -- -- -- -- ?? ?? */
/* IVOICE | -- -- -- -- 0 0 */
/* UVPIT is always 0.0 on the first pass through the DO WHILE (TRUE)
/* UVPIT is always 0.0 on the first pass through the DO WHILE (true)
loop below. */
/* The only possible non-0 value of SLOPE (in column 111) is
@ -858,7 +863,7 @@ static void decode(lpc10_decode_state_t *s,
/* Skip decoding on first frame because present data not yet available */
if (s->first)
{
s->first = FALSE;
s->first = false;
/* Assign PITCH a "default" value on the first call, since */
/* otherwise it would be left uninitialized. The two lines */
/* below were copied from above, since it seemed like a */
@ -1025,7 +1030,7 @@ SPAN_DECLARE(lpc10_decode_state_t *) lpc10_decode_init(lpc10_decode_state_t *s,
/* State used by function decode */
s->iptold = 60;
s->first = TRUE;
s->first = true;
s->ivp2h = 0;
s->iovoic = 0;
s->iavgp = 60;
@ -1045,7 +1050,7 @@ SPAN_DECLARE(lpc10_decode_state_t *) lpc10_decode_init(lpc10_decode_state_t *s,
/* State used by function pitsyn */
s->rmso = 1.0f;
s->first_pitsyn = TRUE;
s->first_pitsyn = true;
/* State used by function bsynz */
s->ipo = 0;

View File

@ -41,6 +41,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include "spandsp/telephony.h"
@ -322,7 +327,7 @@ SPAN_DECLARE(lpc10_encode_state_t *) lpc10_encode_init(lpc10_encode_state_t *s,
s->l2sum1 = 0.0f;
s->l2ptr1 = 1;
s->l2ptr2 = 9;
s->hyst = FALSE;
s->hyst = false;
/* State used by function lpc10_voicing */
s->dither = 20.0f;

View File

@ -41,6 +41,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include "spandsp/telephony.h"
@ -67,7 +72,7 @@ void lpc10_placea(int32_t *ipitch,
int32_t k;
int32_t l;
int32_t hrange;
int ephase;
bool ephase;
int32_t lrange;
lrange = (af - 2)*lframe + 1;
@ -148,14 +153,14 @@ void lpc10_placea(int32_t *ipitch,
awin[af - 1][1] += *ipitch;
}
/* Make energy window be phase-synchronous. */
ephase = TRUE;
ephase = true;
}
else
{
/* Case 3 */
awin[af - 1][0] = vwin[af - 1][0];
awin[af - 1][1] = vwin[af - 1][1];
ephase = FALSE;
ephase = false;
}
/* RMS is computed over an integer number of pitch periods in the analysis
window. When it is not placed phase-synchronously, it is placed as close
@ -193,7 +198,7 @@ void lpc10_placev(int32_t *osbuf,
{
int32_t i1;
int32_t i2;
int crit;
bool crit;
int32_t q;
int32_t osptr1;
int32_t hrange;
@ -286,12 +291,12 @@ void lpc10_placev(int32_t *osbuf,
q++;
/* Check for case 2 (placement before onset): */
/* Check for critical region exception: */
crit = FALSE;
crit = false;
for (i = q + 1; i < osptr1; i++)
{
if (osbuf[i - 1] - osbuf[q - 1] >= minwin)
{
crit = TRUE;
crit = true;
break;
}
}

View File

@ -41,6 +41,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include "spandsp/telephony.h"

View File

@ -31,17 +31,22 @@
#include <inttypes.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <fcntl.h>
#if defined(HAVE_TGMATH_H)
#include <tgmath.h>
#endif
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <fcntl.h>
#if defined(__sunos) || defined(__solaris) || defined(__sun)
#include <getopt.h>
#endif
@ -50,13 +55,6 @@
#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
#define MAX_COEFF_SETS 384
@ -84,7 +82,7 @@ static void make_tx_filter(int coeff_sets,
alpha = baud_rate/(2.0*(double) (coeff_sets*baud_rate));
beta = excess_bandwidth;
compute_raised_cosine_filter(coeffs, total_coeffs, TRUE, FALSE, alpha, beta);
compute_raised_cosine_filter(coeffs, total_coeffs, true, false, alpha, beta);
/* Find the DC gain of the filter, and adjust the filter to unity gain. */
floating_gain = 0.0;
@ -180,7 +178,7 @@ static void make_rx_filter(int coeff_sets,
beta = excess_bandwidth;
carrier *= 2.0*3.1415926535/SAMPLE_RATE;
compute_raised_cosine_filter(coeffs, total_coeffs, TRUE, FALSE, alpha, beta);
compute_raised_cosine_filter(coeffs, total_coeffs, true, false, alpha, beta);
/* Find the DC gain of the filter, and adjust the filter to unity gain. */
floating_gain = 0.0;
@ -284,7 +282,7 @@ int main(int argc, char **argv)
const char *tx_tag;
const char *modem;
transmit_modem = FALSE;
transmit_modem = false;
modem = "";
while ((opt = getopt(argc, argv, "m:rt")) != -1)
{
@ -294,10 +292,10 @@ int main(int argc, char **argv)
modem = optarg;
break;
case 'r':
transmit_modem = FALSE;
transmit_modem = false;
break;
case 't':
transmit_modem = TRUE;
transmit_modem = true;
break;
default:
usage();

View File

@ -53,6 +53,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <stdio.h>
@ -70,6 +75,7 @@
#include "spandsp/fsk.h"
#include "spandsp/modem_connect_tones.h"
#include "spandsp/private/power_meter.h"
#include "spandsp/private/fsk.h"
#include "spandsp/private/modem_connect_tones.h"
@ -256,12 +262,12 @@ SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem
{
int alloced;
alloced = FALSE;
alloced = false;
if (s == NULL)
{
if ((s = (modem_connect_tones_tx_state_t *) span_alloc(sizeof(*s))) == NULL)
return NULL;
alloced = TRUE;
alloced = true;
}
s->tone_type = tone_type;
switch (s->tone_type)
@ -399,7 +405,7 @@ static void v21_put_bit(void *user_data, int bit)
s->raw_bit_stream = 0;
s->num_bits = 0;
s->flags_seen = 0;
s->framing_ok_announced = FALSE;
s->framing_ok_announced = false;
break;
}
return;
@ -430,7 +436,7 @@ static void v21_put_bit(void *user_data, int bit)
if (++s->flags_seen >= HDLC_FRAMING_OK_THRESHOLD && !s->framing_ok_announced)
{
report_tone_state(s, MODEM_CONNECT_TONES_FAX_PREAMBLE, lfastrintf(fsk_rx_signal_power(&(s->v21rx))));
s->framing_ok_announced = TRUE;
s->framing_ok_announced = true;
}
}
}
@ -442,7 +448,7 @@ static void v21_put_bit(void *user_data, int bit)
{
if (s->num_bits == 8)
{
s->framing_ok_announced = FALSE;
s->framing_ok_announced = false;
s->flags_seen = 0;
}
}
@ -548,7 +554,7 @@ SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx(modem_connect_tones_rx_state_t *
report_tone_state(s, MODEM_CONNECT_TONES_NONE, -99);
s->tone_cycle_duration = 0;
s->good_cycles = 0;
s->tone_on = FALSE;
s->tone_on = false;
continue;
}
/* There is adequate energy in the channel. Is it mostly at 2100Hz? */
@ -590,7 +596,7 @@ SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx(modem_connect_tones_rx_state_t *
s->tone_cycle_duration = ms_to_samples(450 + 100);
}
}
s->tone_on = TRUE;
s->tone_on = true;
}
else if (s->notch_level*5 > s->channel_level)
{
@ -609,7 +615,7 @@ SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx(modem_connect_tones_rx_state_t *
s->good_cycles = 0;
}
}
s->tone_on = FALSE;
s->tone_on = false;
}
}
break;
@ -743,7 +749,7 @@ SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem
s->tone_cycle_duration = 0;
s->good_cycles = 0;
s->hit = MODEM_CONNECT_TONES_NONE;
s->tone_on = FALSE;
s->tone_on = false;
s->tone_callback = tone_callback;
s->callback_data = user_data;
s->znotch_1 = 0.0f;
@ -752,7 +758,7 @@ SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem
s->z15hz_2 = 0.0f;
s->num_bits = 0;
s->flags_seen = 0;
s->framing_ok_announced = FALSE;
s->framing_ok_announced = false;
s->raw_bit_stream = 0;
return s;
}

View File

@ -39,11 +39,18 @@
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
#include "spandsp/playout.h"
#include "spandsp/private/playout.h"
static playout_frame_t *queue_get(playout_state_t *s, timestamp_t sender_stamp)
{
playout_frame_t *frame;
@ -121,7 +128,7 @@ SPAN_DECLARE(int) playout_get(playout_state_t *s, playout_frame_t *frameout, tim
if (!s->not_first)
{
/* Prime things the first time through */
s->not_first = TRUE;
s->not_first = true;
s->latest_expected = frame->receiver_stamp + s->min_length;
}
/* Leaky integrate the rate of occurance of frames received just in time and late */
@ -297,7 +304,7 @@ SPAN_DECLARE(int) playout_put(playout_state_t *s, void *data, int type, timestam
{
s->last_speech_sender_stamp = sender_stamp - sender_len - s->min_length;
s->last_speech_sender_len = sender_len;
s->start = FALSE;
s->start = false;
}
return PLAYOUT_OK;
@ -321,7 +328,7 @@ SPAN_DECLARE(void) playout_restart(playout_state_t *s, int min_length, int max_l
s->min_length = min_length;
s->max_length = (max_length > min_length) ? max_length : min_length;
s->dropable_threshold = 1*0x10000000/100;
s->start = TRUE;
s->start = true;
s->since_last_step = 0x7FFFFFFF;
/* Start with the minimum buffer length allowed, and work from there */
s->actual_buffer_length =

View File

@ -48,6 +48,8 @@
#include "spandsp/saturated.h"
#include "spandsp/plc.h"
#include "spandsp/private/plc.h"
/* We do a straight line fade to zero volume in 50ms when we are filling in for missing data. */
#define ATTENUATION_INCREMENT 0.0025f /* Attenuation per sample */

View File

@ -41,6 +41,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <assert.h>
@ -48,6 +53,8 @@
#include "spandsp/alloc.h"
#include "spandsp/power_meter.h"
#include "spandsp/private/power_meter.h"
SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift)
{
if (s == NULL)
@ -148,14 +155,14 @@ SPAN_DECLARE(int32_t) power_surge_detector(power_surge_detector_state_t *s, int1
{
if (pow_short <= s->surge*(pow_medium >> 10))
return 0;
s->signal_present = TRUE;
s->signal_present = true;
s->medium_term.reading = s->short_term.reading;
}
else
{
if (pow_short < s->sag*(pow_medium >> 10))
{
s->signal_present = FALSE;
s->signal_present = false;
s->medium_term.reading = s->short_term.reading;
return 0;
}

View File

@ -35,6 +35,14 @@
#include <ctype.h>
#include <stdlib.h>
#include <inttypes.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#if defined(HAVE_STDATOMIC_H)
#include <stdatomic.h>
#endif
#include <sys/types.h>
#define SPANDSP_FULLY_DEFINE_QUEUE_STATE_T
@ -44,7 +52,7 @@
#include "spandsp/private/queue.h"
SPAN_DECLARE(int) queue_empty(queue_state_t *s)
SPAN_DECLARE(bool) queue_empty(queue_state_t *s)
{
return (s->iptr == s->optr);
}

View File

@ -31,6 +31,11 @@
#include <inttypes.h>
#include <stdlib.h>
#include <memory.h>
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"

View File

@ -38,6 +38,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <memory.h>
#include <string.h>
@ -54,6 +59,7 @@
#include "spandsp/super_tone_rx.h"
#include "spandsp/sig_tone.h"
#include "spandsp/private/power_meter.h"
#include "spandsp/private/sig_tone.h"
/*! PI */
@ -226,7 +232,7 @@ SPAN_DECLARE(int) sig_tone_tx(sig_tone_tx_state_t *s, int16_t amp[], int len)
int k;
int n;
int16_t tone;
int need_update;
bool need_update;
int high_low;
for (i = 0; i < len; i += n)
@ -236,19 +242,19 @@ SPAN_DECLARE(int) sig_tone_tx(sig_tone_tx_state_t *s, int16_t amp[], int len)
if (s->current_tx_timeout <= len - i)
{
n = s->current_tx_timeout;
need_update = TRUE;
need_update = true;
}
else
{
n = len - i;
need_update = FALSE;
need_update = false;
}
s->current_tx_timeout -= n;
}
else
{
n = len - i;
need_update = FALSE;
need_update = false;
}
if (!(s->current_tx_tone & SIG_TONE_TX_PASSTHROUGH))
vec_zeroi16(&amp[i], n);
@ -449,13 +455,13 @@ SPAN_DECLARE(int) sig_tone_rx(sig_tone_rx_state_t *s, int16_t amp[], int len)
if ((s->signalling_state & (SIG_TONE_1_PRESENT | SIG_TONE_2_PRESENT)))
{
if (s->flat_mode_timeout && --s->flat_mode_timeout == 0)
s->flat_mode = TRUE;
s->flat_mode = true;
/*endif*/
}
else
{
s->flat_mode_timeout = s->desc->sharp_flat_timeout;
s->flat_mode = FALSE;
s->flat_mode = false;
}
/*endif*/

View File

@ -40,6 +40,11 @@
#if defined(HAVE_MATH_H)
#include <math.h>
#endif
#if defined(HAVE_STDBOOL_H)
#include <stdbool.h>
#else
#include "spandsp/stdbool.h"
#endif
#include "floating_fudge.h"
#include <assert.h>
#include <limits.h>

View File

@ -45,6 +45,7 @@
#include <limits.h>
#include <time.h>
@INSERT_MATH_HEADER@
@INSERT_STDBOOL_HEADER@
#include <tiffio.h>
#include <spandsp/telephony.h>

View File

@ -28,8 +28,8 @@
#if !defined(_SPANDSP_ALLOC_H_)
#define _SPANDSP_ALLOC_H_
typedef void *(*span_alloc_t)(size_t size);
typedef void *(*span_aligned_alloc_t)(size_t alignment, size_t size);
typedef void *(*span_alloc_t)(size_t size);
typedef void *(*span_realloc_t)(void *ptr, size_t size);
typedef void (*span_free_t)(void *ptr);
@ -38,20 +38,20 @@ extern "C"
{
#endif
/* Allocate size bytes of memory. */
SPAN_DECLARE(void *) span_alloc(size_t size);
/* Allocate size bytes allocated to ALIGNMENT bytes. */
SPAN_DECLARE(void *) span_aligned_alloc(size_t alignment, size_t size);
/* Allocate size bytes of memory. */
SPAN_DECLARE(void *) span_alloc(size_t size);
/* Re-allocate the previously allocated block in ptr, making the new block size bytes long. */
SPAN_DECLARE(void *) span_realloc(void *ptr, size_t size);
/* Free a block allocated by span_alloc, span_aligned_alloc, or span_realloc. */
SPAN_DECLARE(void) span_free(void *ptr);
SPAN_DECLARE(int) span_mem_allocators(span_alloc_t custom_alloc,
span_aligned_alloc_t custom_aligned_alloc,
SPAN_DECLARE(int) span_mem_allocators(span_aligned_alloc_t custom_aligned_alloc,
span_alloc_t custom_alloc,
span_realloc_t custom_realloc,
span_free_t custom_free);

View File

@ -164,7 +164,7 @@ SPAN_DECLARE_NONSTD(void) async_rx_put_bit(void *user_data, int bit);
\param data_bits The number of data bits.
\param parity_bits The type of parity.
\param stop_bits The number of stop bits.
\param use_v14 TRUE if V.14 rate adaption processing should be used.
\param use_v14 True if V.14 rate adaption processing should be used.
\param put_byte The callback routine used to put the received data.
\param user_data An opaque pointer.
\return A pointer to the initialised context, or NULL if there was a problem. */
@ -172,7 +172,7 @@ SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
int data_bits,
int parity_bits,
int stop_bits,
int use_v14,
bool use_v14,
put_byte_func_t put_byte,
void *user_data);
@ -198,7 +198,7 @@ SPAN_DECLARE_NONSTD(int) async_tx_get_bit(void *user_data);
\param data_bits The number of data bit.
\param parity_bits The type of parity.
\param stop_bits The number of stop bits.
\param use_v14 TRUE if V.14 rate adaption processing should be used.
\param use_v14 True if V.14 rate adaption processing should be used.
\param get_byte The callback routine used to get the data to be transmitted.
\param user_data An opaque pointer.
\return A pointer to the initialised context, or NULL if there was a problem. */
@ -206,7 +206,7 @@ SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
int data_bits,
int parity_bits,
int stop_bits,
int use_v14,
bool use_v14,
get_byte_func_t get_byte,
void *user_data);

View File

@ -115,14 +115,14 @@ enum
*/
typedef struct
{
/*! TRUE if character echo is enabled */
int echo;
/*! TRUE if verbose reporting is enabled */
int verbose;
/*! TRUE if result codes are verbose */
/*! True if character echo is enabled */
bool echo;
/*! True if verbose reporting is enabled */
bool verbose;
/*! Result code format code - numeic or verbose */
int result_code_format;
/*! TRUE if pulse dialling is the default */
int pulse_dial;
/*! True if pulse dialling is the default */
bool pulse_dial;
/*! ??? */
int double_escape;
/*! ??? */

View File

@ -175,10 +175,10 @@ SPAN_DECLARE(int) r2_mf_tx_put(r2_mf_tx_state_t *s, char digit);
/*! \brief Initialise an R2 MF tone generator context.
\param s The R2 MF generator context.
\param fwd TRUE if the context is for forward signals. FALSE if the
\param fwd True if the context is for forward signals. False if the
context is for backward signals.
\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);
SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, bool fwd);
/*! \brief Release an R2 MF tone generator context.
\param s The R2 MF tone generator context.
@ -242,7 +242,7 @@ SPAN_DECLARE(int) r2_mf_rx_get(r2_mf_rx_state_t *s);
/*! \brief Initialise an R2 MF receiver context.
\param s The R2 MF receiver context.
\param fwd TRUE if the context is for forward signals. FALSE if the
\param fwd True if the context is for forward signals. False if the
context is for backward signals.
\param callback An optional callback routine, used to report received digits. If
no callback routine is set, digits may be collected, using the r2_mf_rx_get()
@ -251,7 +251,7 @@ SPAN_DECLARE(int) r2_mf_rx_get(r2_mf_rx_state_t *s);
and supplied in callbacks.
\return A pointer to the R2 MF receiver context. */
SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
int fwd,
bool fwd,
tone_report_func_t callback,
void *user_data);

View File

@ -71,7 +71,7 @@ SPAN_DECLARE(void) bitstream_flush(bitstream_state_t *s, uint8_t **c);
/*! \brief Initialise a bitstream context.
\param s A pointer to the bitstream context.
\param lsb_first TRUE if the bit stream is LSB first, else its MSB first.
\param lsb_first True if the bit stream is LSB first, else its MSB first.
\return A pointer to the bitstream context. */
SPAN_DECLARE(bitstream_state_t *) bitstream_init(bitstream_state_t *s, int direction);

View File

@ -60,9 +60,9 @@ SPAN_DECLARE(int) crc_itu32_append(uint8_t *buf, int len);
/*! \brief Check the ITU/CCITT CRC-32 value in a frame.
\param buf The buffer containing the frame.
\param len The length of the frame.
\return TRUE if the CRC is OK, else FALSE.
\return True if the CRC is OK, else false.
*/
SPAN_DECLARE(int) crc_itu32_check(const uint8_t *buf, int len);
SPAN_DECLARE(bool) crc_itu32_check(const uint8_t *buf, int len);
/*! \brief Calculate the ITU/CCITT CRC-16 value in buffer by whole bytes.
\param buf The buffer containing the data.
@ -93,9 +93,9 @@ SPAN_DECLARE(int) crc_itu16_append(uint8_t *buf, int len);
/*! \brief Check the ITU/CCITT CRC-16 value in a frame.
\param buf The buffer containing the frame.
\param len The length of the frame.
\return TRUE if the CRC is OK, else FALSE.
\return True if the CRC is OK, else false.
*/
SPAN_DECLARE(int) crc_itu16_check(const uint8_t *buf, int len);
SPAN_DECLARE(bool) crc_itu16_check(const uint8_t *buf, int len);
#if defined(__cplusplus)
}

View File

@ -156,7 +156,7 @@ SPAN_DECLARE(void) dtmf_rx_set_realtime_callback(dtmf_rx_state_t *s,
/*! \brief Adjust a DTMF receiver context.
\param s The DTMF receiver context.
\param filter_dialtone TRUE to enable filtering of dialtone, FALSE
\param filter_dialtone True to enable filtering of dialtone, false
to disable, < 0 to leave unchanged.
\param twist Acceptable twist, in dB. < 0.0 to leave unchanged.
\param reverse_twist Acceptable reverse twist, in dB. < 0.0 to leave unchanged.

View File

@ -40,6 +40,7 @@
#include <spandsp/private/awgn.h>
#include <spandsp/private/noise.h>
#include <spandsp/private/bert.h>
#include <spandsp/private/power_meter.h>
#include <spandsp/private/tone_generate.h>
#include <spandsp/private/bell_r2_mf.h>
#include <spandsp/private/sig_tone.h>
@ -49,6 +50,8 @@
#include <spandsp/private/g726.h>
#include <spandsp/private/lpc10.h>
#include <spandsp/private/gsm0610.h>
#include <spandsp/private/plc.h>
#include <spandsp/private/playout.h>
#include <spandsp/private/oki_adpcm.h>
#include <spandsp/private/ima_adpcm.h>
#include <spandsp/private/hdlc.h>
@ -70,11 +73,10 @@
#include <spandsp/private/v27ter_tx.h>
#include <spandsp/private/v29rx.h>
#include <spandsp/private/v29tx.h>
/*#include <spandsp/private/v32bis.h>*/
/*#include <spandsp/private/v34.h>*/
#include <spandsp/private/v42.h>
#include <spandsp/private/v42bis.h>
#include <spandsp/private/at_interpreter.h>
#include <spandsp/private/data_modems.h>
#include <spandsp/private/fax_modems.h>
#include <spandsp/private/timezone.h>
#include <spandsp/private/image_translate.h>

View File

@ -75,16 +75,16 @@ SPAN_DECLARE_NONSTD(int) fax_tx(fax_state_t *s, int16_t *amp, int max_len);
/*! Select whether silent audio will be sent when FAX transmit is idle.
\brief Select whether silent audio will be sent when FAX transmit is idle.
\param s The FAX context.
\param transmit_on_idle TRUE if silent audio should be output when the FAX transmitter is
idle. FALSE to transmit zero length audio when the FAX transmitter is idle. The default
behaviour is FALSE.
\param transmit_on_idle True if silent audio should be output when the FAX transmitter is
idle. False to transmit zero length audio when the FAX transmitter is idle. The default
behaviour is false.
*/
SPAN_DECLARE(void) fax_set_transmit_on_idle(fax_state_t *s, int transmit_on_idle);
/*! Select whether talker echo protection tone will be sent for the image modems.
\brief Select whether TEP will be sent for the image modems.
\param s The FAX context.
\param use_tep TRUE if TEP should be sent.
\param use_tep True if TEP should be sent.
*/
SPAN_DECLARE(void) fax_set_tep_mode(fax_state_t *s, int use_tep);
@ -105,7 +105,7 @@ SPAN_DECLARE(logging_state_t *) fax_get_logging_state(fax_state_t *s);
/*! Restart a FAX context.
\brief Restart a FAX context.
\param s The FAX context.
\param calling_party TRUE if the context is for a calling party. FALSE if the
\param calling_party True if the context is for a calling party. False if the
context is for an answering party.
\return 0 for OK, else -1. */
SPAN_DECLARE(int) fax_restart(fax_state_t *s, int calling_party);
@ -113,7 +113,7 @@ SPAN_DECLARE(int) fax_restart(fax_state_t *s, int calling_party);
/*! Initialise a FAX context.
\brief Initialise a FAX context.
\param s The FAX context.
\param calling_party TRUE if the context is for a calling party. FALSE if the
\param calling_party True if the context is for a calling party. False if the
context is for an answering party.
\return A pointer to the FAX context, or NULL if there was a problem.
*/

View File

@ -83,8 +83,8 @@ extern "C"
/*! \brief Initialise an HDLC receiver context.
\param s A pointer to an HDLC receiver context.
\param crc32 TRUE to use ITU CRC32. FALSE to use ITU CRC16.
\param report_bad_frames TRUE to request the reporting of bad frames.
\param crc32 True to use ITU CRC32. False to use ITU CRC16.
\param report_bad_frames True to request the reporting of bad frames.
\param framing_ok_threshold The number of back-to-back flags needed to
start the framing OK condition. This may be used where a series of
flag octets is used as a preamble, such as in the T.30 protocol.
@ -93,8 +93,8 @@ extern "C"
\return A pointer to the HDLC receiver context.
*/
SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
int crc32,
int report_bad_frames,
bool crc32,
bool report_bad_frames,
int framing_ok_threshold,
hdlc_frame_handler_t handler,
void *user_data);
@ -169,17 +169,17 @@ SPAN_DECLARE_NONSTD(void) hdlc_rx_put(hdlc_rx_state_t *s, const uint8_t buf[], i
/*! \brief Initialise an HDLC transmitter context.
\param s A pointer to an HDLC transmitter context.
\param crc32 TRUE to use ITU CRC32. FALSE to use ITU CRC16.
\param crc32 True to use ITU CRC32. False to use ITU CRC16.
\param inter_frame_flags The minimum flag octets to insert between frames (usually one).
\param progressive TRUE if frame creation works in progressive mode.
\param progressive True if frame creation works in progressive mode.
\param handler The callback function called when the HDLC transmitter underflows.
\param user_data An opaque parameter for the callback routine.
\return A pointer to the HDLC transmitter context.
*/
SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
int crc32,
bool crc32,
int inter_frame_flags,
int progressive,
bool progressive,
hdlc_underflow_handler_t handler,
void *user_data);

View File

@ -80,9 +80,9 @@ extern "C"
\brief Test if logging of a specified severity level is enabled.
\param s The logging context.
\param level The severity level to be tested.
\return TRUE if logging is enable, else FALSE.
\return True if logging is enable.
*/
SPAN_DECLARE(int) span_log_test(logging_state_t *s, int level);
SPAN_DECLARE(bool) span_log_test(logging_state_t *s, int level);
/*! Generate a log entry.
\brief Generate a log entry.

View File

@ -153,7 +153,7 @@ SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx_fillin(modem_connect_tones_rx_st
/*! \brief Test if a modem_connect tone has been detected.
\param s The context.
\return TRUE if tone is detected, else FALSE.
\return The code for the detected tone.
*/
SPAN_DECLARE(int) modem_connect_tones_rx_get(modem_connect_tones_rx_state_t *s);

View File

@ -56,80 +56,13 @@ enum
typedef int timestamp_t;
typedef struct playout_frame_s
{
/*! The actual frame data */
void *data;
/*! The type of frame */
int type;
/*! The timestamp assigned by the sending end */
timestamp_t sender_stamp;
/*! The timespan covered by the data in this frame */
timestamp_t sender_len;
/*! The timestamp assigned by the receiving end */
timestamp_t receiver_stamp;
/*! Pointer to the next earlier frame */
struct playout_frame_s *earlier;
/*! Pointer to the next later frame */
struct playout_frame_s *later;
} playout_frame_t;
typedef struct playout_frame_s playout_frame_t;
/*!
Playout (jitter buffer) descriptor. This defines the working state
for a single instance of playout buffering.
*/
typedef struct
{
/*! TRUE if the buffer is dynamically sized */
int dynamic;
/*! The minimum length (dynamic) or fixed length (static) of the buffer */
int min_length;
/*! The maximum length (dynamic) or fixed length (static) of the buffer */
int max_length;
/*! The target filter threshold for adjusting dynamic buffering. */
int dropable_threshold;
int start;
/*! The queued frame list */
playout_frame_t *first_frame;
playout_frame_t *last_frame;
/*! The free frame pool */
playout_frame_t *free_frames;
/*! The total frames input to the buffer, to date. */
int frames_in;
/*! The total frames output from the buffer, to date. */
int frames_out;
/*! The number of frames received out of sequence. */
int frames_oos;
/*! The number of frames which were discarded, due to late arrival. */
int frames_late;
/*! The number of frames which were never received. */
int frames_missing;
/*! The number of frames trimmed from the stream, due to buffer shrinkage. */
int frames_trimmed;
timestamp_t latest_expected;
/*! The present jitter adjustment */
timestamp_t current;
/*! The sender_stamp of the last speech frame */
timestamp_t last_speech_sender_stamp;
/*! The duration of the last speech frame */
timestamp_t last_speech_sender_len;
int not_first;
/*! The time since the target buffer length was last changed. */
timestamp_t since_last_step;
/*! Filter state for tracking the packets arriving just in time */
int32_t state_just_in_time;
/*! Filter state for tracking the packets arriving late */
int32_t state_late;
/*! The current target length of the buffer */
int target_buffer_length;
/*! The current actual length of the buffer, which may lag behind the target value */
int actual_buffer_length;
} playout_state_t;
typedef struct playout_state_s playout_state_t;
#if defined(__cplusplus)
extern "C"

View File

@ -109,21 +109,7 @@ That's it!
/*!
The generic packet loss concealer context.
*/
typedef struct
{
/*! Consecutive erased samples */
int missing_samples;
/*! Current offset into pitch period */
int pitch_offset;
/*! Pitch estimate */
int pitch;
/*! Buffer for a cycle of speech */
float pitchbuf[PLC_PITCH_MIN];
/*! History buffer */
int16_t history[PLC_HISTORY_LEN];
/*! Current pointer into the history buffer */
int buf_ptr;
} plc_state_t;
typedef struct plc_state_s plc_state_t;
#if defined(__cplusplus)

View File

@ -23,8 +23,8 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#if !defined(_POWER_METER_H_)
#define _POWER_METER_H_
#if !defined(_SPANDSP_POWER_METER_H_)
#define _SPANDSP_POWER_METER_H_
/*! \page power_meter_page Power metering
@ -45,24 +45,9 @@ values +/-8031, and this square wave represents 0dBov. This translates into 6.1
Power meter descriptor. This defines the working state for a
single instance of a power measurement device.
*/
typedef struct
{
/*! The shift factor, which controls the damping of the power meter. */
int shift;
typedef struct power_meter_s power_meter_t;
/*! The current power reading. */
int32_t reading;
} power_meter_t;
typedef struct
{
power_meter_t short_term;
power_meter_t medium_term;
int signal_present;
int32_t surge;
int32_t sag;
int32_t min;
} power_surge_detector_state_t;
typedef struct power_surge_detector_state_s power_surge_detector_state_t;
#if defined(__cplusplus)
extern "C"

View File

@ -69,8 +69,8 @@ struct async_rx_state_s
int parity;
/*! \brief The number of stop bits per character. */
int stop_bits;
/*! \brief TRUE if V.14 rate adaption processing should be performed. */
int use_v14;
/*! \brief True if V.14 rate adaption processing should be performed. */
bool use_v14;
/*! \brief A pointer to the callback routine used to handle received characters. */
put_byte_func_t put_byte;
/*! \brief An opaque pointer passed when calling put_byte. */

View File

@ -106,10 +106,10 @@ struct at_state_s
int command_dial;
int ok_is_pending;
int dte_is_waiting;
/*! \brief TRUE if a carrier is presnt. Otherwise FALSE. */
int rx_signal_present;
/*! \brief TRUE if a modem has trained, Otherwise FALSE. */
int rx_trained;
/*! \brief True if a carrier is presnt. Otherwise false. */
bool rx_signal_present;
/*! \brief True if a modem has trained, Otherwise false. */
bool rx_trained;
int transmit;
char line[256];

View File

@ -73,8 +73,8 @@ struct r2_mf_tx_state_s
{
/*! The tone generator. */
tone_gen_state_t tone;
/*! TRUE if generating forward tones, otherwise generating reverse tones. */
int fwd;
/*! True if generating forward tones, otherwise generating reverse tones. */
bool fwd;
/*! The current digit being generated. */
int digit;
};
@ -88,8 +88,8 @@ struct r2_mf_rx_state_s
tone_report_func_t callback;
/*! An opaque pointer passed to the callback function. */
void *callback_data;
/*! TRUE is we are detecting forward tones. FALSE if we are detecting backward tones */
int fwd;
/*! Tue is we are detecting forward tones. False if we are detecting backward tones */
bool fwd;
/*! Tone detector working states */
goertzel_state_t out[6];
/*! The current sample number within a processing block. */

View File

@ -33,8 +33,8 @@ struct bitstream_state_s
uint32_t bitstream;
/*! The residual bits in bitstream. */
int residue;
/*! TRUE if the stream is LSB first, else MSB first */
int lsb_first;
/*! True if the stream is LSB first, else MSB first */
bool lsb_first;
};

View File

@ -61,8 +61,8 @@ struct dtmf_rx_state_s
tone_report_func_t realtime_callback;
/*! An opaque pointer passed to the real time callback function. */
void *realtime_callback_data;
/*! TRUE if dialtone should be filtered before processing */
int filter_dialtone;
/*! True if dialtone should be filtered before processing */
bool filter_dialtone;
#if defined(SPANDSP_USE_FIXED_POINT)
/*! 350Hz filter state for the optional dialtone filter. */
float z350[2];

View File

@ -33,14 +33,14 @@
*/
struct fax_modems_state_s
{
/*! TRUE is talker echo protection should be sent for the image modems */
int use_tep;
/*! True is talker echo protection should be sent for the image modems */
bool use_tep;
/*! \brief The callback function used to report detected tones. */
tone_report_func_t tone_callback;
/*! \brief A user specified opaque pointer passed to the tone_callback function. */
void *tone_callback_user_data;
/*! If TRUE, transmit silence when there is nothing else to transmit. If FALSE return only
/*! If true, transmit silence when there is nothing else to transmit. If false return only
the actual generated audio. Note that this only affects untimed silences. Timed silences
(e.g. the 75ms silence between V.21 and a high speed modem) will alway be transmitted as
silent audio. */
@ -110,12 +110,12 @@ struct fax_modems_state_s
hdlc_frame_handler_t hdlc_accept;
void *hdlc_accept_user_data;
/*! \brief TRUE if a carrier is present. Otherwise FALSE. */
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;
/*! \brief True if a carrier is present. Otherwise false. */
bool rx_signal_present;
/*! \brief True if a modem has trained correctly. */
bool rx_trained;
/*! \brief True if an HDLC frame has been received correctly. */
bool rx_frame_received;
int deferred_rx_handler_updates;
/*! \brief The current receive signal handler */
@ -145,8 +145,8 @@ struct fax_modems_state_s
/*! \brief The current bit rate of the receiver. */
int rx_bit_rate;
/*! \brief If TRUE, transmission is in progress */
int transmit;
/*! \brief If True, transmission is in progress */
bool transmit;
/*! \brief Audio logging file handle for received audio. */
int audio_rx_log;
/*! \brief Audio logging file handle for transmitted audio. */

View File

@ -47,13 +47,13 @@ typedef struct
*/
struct g722_encode_state_s
{
/*! TRUE if the operating in the special ITU test mode, with the band split filters
/*! True if the operating in the special ITU test mode, with the band split filters
disabled. */
int itu_test_mode;
/*! TRUE if the G.722 data is packed */
int packed;
/*! TRUE if encode from 8k samples/second */
int eight_k;
bool itu_test_mode;
/*! True if the G.722 data is packed */
bool packed;
/*! True if encode from 8k samples/second */
bool eight_k;
/*! 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. */
int bits_per_sample;
@ -75,13 +75,13 @@ struct g722_encode_state_s
*/
struct g722_decode_state_s
{
/*! TRUE if the operating in the special ITU test mode, with the band split filters
/*! True if the operating in the special ITU test mode, with the band split filters
disabled. */
int itu_test_mode;
/*! TRUE if the G.722 data is packed */
int packed;
/*! TRUE if decode to 8k samples/second */
int eight_k;
bool itu_test_mode;
/*! True if the G.722 data is packed */
bool packed;
/*! True if decode to 8k samples/second */
bool eight_k;
/*! 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. */
int bits_per_sample;

View File

@ -43,24 +43,24 @@ struct hdlc_rx_state_s
modem_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 True if bad frames are to be reported. */
bool report_bad_frames;
/*! \brief The number of consecutive flags which must be seen before framing is
declared OK. */
int framing_ok_threshold;
/*! \brief TRUE if framing OK has been announced. */
int framing_ok_announced;
/*! \brief True if framing OK has been announced. */
bool framing_ok_announced;
/*! \brief Number of consecutive flags seen so far. */
int flags_seen;
/*! \brief The raw (stuffed) bit stream buffer. */
unsigned int raw_bit_stream;
uint32_t raw_bit_stream;
/*! \brief The destuffed bit stream buffer. */
unsigned int byte_in_progress;
uint32_t byte_in_progress;
/*! \brief The current number of bits in byte_in_progress. */
int num_bits;
/*! \brief TRUE if in octet counting mode (e.g. for MTP). */
int octet_counting_mode;
/*! \brief True if in octet counting mode (e.g. for MTP). */
bool octet_counting_mode;
/*! \brief Octet count, to achieve the functionality needed for things
like MTP. */
int octet_count;
@ -98,8 +98,8 @@ struct hdlc_tx_state_s
void *user_data;
/*! \brief The minimum flag octets to insert between frames. */
int inter_frame_flags;
/*! \brief TRUE if frame creation works in progressive mode. */
int progressive;
/*! \brief True if frame creation works in progressive mode. */
bool progressive;
/*! \brief Maximum permitted frame length. */
size_t max_frame_len;
@ -113,8 +113,8 @@ struct hdlc_tx_state_s
int flag_octets;
/*! \brief The number of abort octets to send for a timed burst of aborts. */
int abort_octets;
/*! \brief TRUE if the next underflow of timed flag octets should be reported */
int report_flag_underflow;
/*! \brief True if the next underflow of timed flag octets should be reported */
bool report_flag_underflow;
/*! \brief The current message being transmitted, with its CRC attached. */
uint8_t buffer[HDLC_MAXFRAME_LEN + 4];
@ -130,8 +130,8 @@ struct hdlc_tx_state_s
/*! \brief The number of bits remaining in byte. */
int bits;
/*! \brief TRUE if transmission should end on buffer underflow .*/
int tx_end;
/*! \brief True if transmission should end on buffer underflow .*/
bool tx_end;
};
#endif

View File

@ -92,8 +92,8 @@ struct lpc10_encode_state_s
int32_t l2ptr2;
/*! \brief No initial value necessary */
int32_t lasti;
/*! \brief Initial value FALSE */
int hyst;
/*! \brief Initial value false */
bool hyst;
/* State used by function lpc10_voicing */
/*! \brief Initial value 20.0f */
@ -148,8 +148,8 @@ struct lpc10_decode_state_s
/* State used by function decode */
/*! \brief Initial value 60 */
int32_t iptold;
/*! \brief Initial value TRUE */
int first;
/*! \brief Initial value true */
bool first;
/*! \brief ??? */
int32_t ivp2h;
/*! \brief ??? */
@ -172,18 +172,18 @@ struct lpc10_decode_state_s
int32_t buflen;
/* State used by function pitsyn */
/*! \brief No initial value necessary as long as first_pitsyn is initially TRUE */
/*! \brief No initial value necessary as long as first_pitsyn is initially true */
int32_t ivoico;
/*! \brief No initial value necessary as long as first_pitsyn is initially TRUE */
/*! \brief No initial value necessary as long as first_pitsyn is initially true */
int32_t ipito;
/*! \brief Initial value 1.0f */
float rmso;
/*! \brief No initial value necessary as long as first_pitsyn is initially TRUE */
/*! \brief No initial value necessary as long as first_pitsyn is initially true */
float rco[10];
/*! \brief No initial value necessary as long as first_pitsyn is initially TRUE */
/*! \brief No initial value necessary as long as first_pitsyn is initially true */
int32_t jsamp;
/*! \brief Initial value TRUE */
int first_pitsyn;
/*! \brief Initial value true */
bool first_pitsyn;
/* State used by function bsynz */
/*! \brief ??? */

View File

@ -77,7 +77,7 @@ struct modem_connect_tones_rx_state_s
int32_t am_level;
/*! \brief Sample counter for the small chunks of samples, after which a test is conducted. */
int chunk_remainder;
/*! \brief TRUE is the tone is currently confirmed present in the audio. */
/*! \brief The code for the tone currently confirmed present in the audio. */
int tone_present;
/*! \brief */
int tone_on;
@ -85,7 +85,7 @@ struct modem_connect_tones_rx_state_s
int tone_cycle_duration;
/*! \brief A count of the number of good cycles of tone reversal seen. */
int good_cycles;
/*! \brief TRUE if the tone has been seen since the last time the user tested for it */
/*! \brief The confirmed tone code. */
int hit;
/*! \brief A V.21 FSK modem context used when searching for FAX preamble. */
fsk_rx_state_t v21rx;
@ -95,8 +95,8 @@ struct modem_connect_tones_rx_state_s
int num_bits;
/*! \brief Number of consecutive flags seen so far. */
int flags_seen;
/*! \brief TRUE if framing OK has been announced. */
int framing_ok_announced;
/*! \brief True if framing OK has been announced. */
bool framing_ok_announced;
};
#endif

View File

@ -0,0 +1,105 @@
/*
* SpanDSP - a series of DSP components for telephony
*
* private/playout.h
*
* Written by Steve Underwood <steveu@coppice.org>
*
* Copyright (C) 2005 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.
*/
#if !defined(_SPANDSP_PRIVATE_PLAYOUT_H_)
#define _SPANDSP_PRIVATE_PLAYOUT_H_
struct playout_frame_s
{
/*! The actual frame data */
void *data;
/*! The type of frame */
int type;
/*! The timestamp assigned by the sending end */
timestamp_t sender_stamp;
/*! The timespan covered by the data in this frame */
timestamp_t sender_len;
/*! The timestamp assigned by the receiving end */
timestamp_t receiver_stamp;
/*! Pointer to the next earlier frame */
struct playout_frame_s *earlier;
/*! Pointer to the next later frame */
struct playout_frame_s *later;
};
/*!
Playout (jitter buffer) descriptor. This defines the working state
for a single instance of playout buffering.
*/
struct playout_state_s
{
/*! True if the buffer is dynamically sized */
bool dynamic;
/*! The minimum length (dynamic) or fixed length (static) of the buffer */
int min_length;
/*! The maximum length (dynamic) or fixed length (static) of the buffer */
int max_length;
/*! The target filter threshold for adjusting dynamic buffering. */
int dropable_threshold;
int start;
/*! The queued frame list */
playout_frame_t *first_frame;
playout_frame_t *last_frame;
/*! The free frame pool */
playout_frame_t *free_frames;
/*! The total frames input to the buffer, to date. */
int frames_in;
/*! The total frames output from the buffer, to date. */
int frames_out;
/*! The number of frames received out of sequence. */
int frames_oos;
/*! The number of frames which were discarded, due to late arrival. */
int frames_late;
/*! The number of frames which were never received. */
int frames_missing;
/*! The number of frames trimmed from the stream, due to buffer shrinkage. */
int frames_trimmed;
timestamp_t latest_expected;
/*! The present jitter adjustment */
timestamp_t current;
/*! The sender_stamp of the last speech frame */
timestamp_t last_speech_sender_stamp;
/*! The duration of the last speech frame */
timestamp_t last_speech_sender_len;
int not_first;
/*! The time since the target buffer length was last changed. */
timestamp_t since_last_step;
/*! Filter state for tracking the packets arriving just in time */
int32_t state_just_in_time;
/*! Filter state for tracking the packets arriving late */
int32_t state_late;
/*! The current target length of the buffer */
int target_buffer_length;
/*! The current actual length of the buffer, which may lag behind the target value */
int actual_buffer_length;
};
#endif
/*- End of file ------------------------------------------------------------*/

View File

@ -0,0 +1,64 @@
/*
* SpanDSP - a series of DSP components for telephony
*
* private/plc.h
*
* Written by Steve Underwood <steveu@coppice.org>
*
* Copyright (C) 2004 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.
*/
/*! \file */
#if !defined(_SPANDSP_PRIVATE_PLC_H_)
#define _SPANDSP_PRIVATE_PLC_H_
/*! Minimum allowed pitch (66 Hz) */
#define PLC_PITCH_MIN 120
/*! Maximum allowed pitch (200 Hz) */
#define PLC_PITCH_MAX 40
/*! Maximum pitch OLA window */
#define PLC_PITCH_OVERLAP_MAX (PLC_PITCH_MIN >> 2)
/*! The length over which the AMDF function looks for similarity (20 ms) */
#define CORRELATION_SPAN 160
/*! History buffer length. The buffer much also be at leat 1.25 times
PLC_PITCH_MIN, but that is much smaller than the buffer needs to be for
the pitch assessment. */
#define PLC_HISTORY_LEN (CORRELATION_SPAN + PLC_PITCH_MIN)
/*!
The generic packet loss concealer context.
*/
struct plc_state_s
{
/*! Consecutive erased samples */
int missing_samples;
/*! Current offset into pitch period */
int pitch_offset;
/*! Pitch estimate */
int pitch;
/*! Buffer for a cycle of speech */
float pitchbuf[PLC_PITCH_MIN];
/*! History buffer */
int16_t history[PLC_HISTORY_LEN];
/*! Current pointer into the history buffer */
int buf_ptr;
};
#endif
/*- End of file ------------------------------------------------------------*/

View File

@ -0,0 +1,53 @@
/*
* SpanDSP - a series of DSP components for telephony
*
* private/power_meter.h
*
* Written by Steve Underwood <steveu@coppice.org>
*
* Copyright (C) 2003 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.
*/
#if !defined(_SPANDSP_PRIVATE_POWER_METER_H_)
#define _SPANDSP_PRIVATE_POWER_METER_H_
/*!
Power meter descriptor. This defines the working state for a
single instance of a power measurement device.
*/
struct power_meter_s
{
/*! The shift factor, which controls the damping of the power meter. */
int shift;
/*! The current power reading. */
int32_t reading;
};
struct power_surge_detector_state_s
{
power_meter_t short_term;
power_meter_t medium_term;
int signal_present;
int32_t surge;
int32_t sag;
int32_t min;
};
#endif
/*- End of file ------------------------------------------------------------*/

View File

@ -210,10 +210,10 @@ struct sig_tone_rx_state_s
/*! \brief The minimum ratio between notched power and total power for detection */
int32_t detection_ratio;
/*! \brief TRUE if in flat mode. FALSE if in sharp mode. */
int flat_mode;
/*! \brief TRUE if the notch filter is enabled in the media path */
int notch_enabled;
/*! \brief True if in flat mode. False if in sharp mode. */
bool flat_mode;
/*! \brief True if the notch filter is enabled in the media path */
bool notch_enabled;
/*! \brief ??? */
int flat_mode_timeout;
/*! \brief ??? */

View File

@ -43,8 +43,8 @@ struct t30_state_s
/*! \brief The type of FAX operation currently in progress */
int operation_in_progress;
/*! \brief TRUE if behaving as the calling party */
int calling_party;
/*! \brief True if behaving as the calling party */
bool calling_party;
/*! \brief Internet aware FAX mode bit mask. */
int iaf;
@ -64,10 +64,10 @@ struct t30_state_s
int supported_image_sizes;
/*! \brief A bit mask of the currently supported T.30 special features. */
int supported_t30_features;
/*! \brief TRUE is ECM mode handling is enabled. */
int ecm_allowed;
/*! \brief TRUE if we are capable of retransmitting pages */
int retransmit_capable;
/*! \brief True is ECM mode handling is enabled. */
bool ecm_allowed;
/*! \brief True if we are capable of retransmitting pages */
bool retransmit_capable;
/*! \brief The received DCS, formatted as an ASCII string, for inclusion
in the TIFF file. */
@ -75,17 +75,17 @@ struct t30_state_s
/*! \brief The text which will be used in FAX page header. No text results
in no header line. */
char header_info[T30_MAX_PAGE_HEADER_INFO + 1];
/*! \brief TRUE for FAX page headers to overlay (i.e. replace) the beginning of the
page image. FALSE for FAX page headers to add to the overall length of
/*! \brief True for FAX page headers to overlay (i.e. replace) the beginning of the
page image. False for FAX page headers to add to the overall length of
the page. */
int header_overlays_image;
/*! \brief Use private timezone if TRUE */
int use_own_tz;
bool header_overlays_image;
/*! \brief Use private timezone if true */
bool use_own_tz;
/*! \brief Optional per instance time zone for the FAX page header timestamp. */
tz_t tz;
/*! \brief TRUE if remote T.30 procedural interrupts are allowed. */
int remote_interrupts_allowed;
/*! \brief True if remote T.30 procedural interrupts are allowed. */
bool remote_interrupts_allowed;
/*! \brief The information fields received. */
t30_exchanged_info_t rx_info;
@ -163,11 +163,11 @@ struct t30_state_s
int local_dis_dtc_len;
/*! \brief The last DIS or DTC message received form the far end. */
uint8_t far_dis_dtc_frame[T30_MAX_DIS_DTC_DCS_LEN];
/*! \brief TRUE if a valid DIS has been received from the far end. */
int dis_received;
/*! \brief True if a valid DIS has been received from the far end. */
bool dis_received;
/*! \brief TRUE if the short training sequence should be used. */
int short_train;
/*! \brief True if the short training sequence should be used. */
bool short_train;
/*! \brief A count of the number of bits in the trainability test. This counts down to zero when
sending TCF, and counts up when receiving it. */
@ -181,12 +181,12 @@ struct t30_state_s
int current_fallback;
/*! \brief The subset of supported modems allowed at the current time, allowing for negotiation. */
int current_permitted_modems;
/*! \brief TRUE if a carrier is present. Otherwise FALSE. */
int rx_signal_present;
/*! \brief TRUE if a modem has trained correctly. */
int rx_trained;
/*! \brief TRUE if a valid HDLC frame has been received in the current reception period. */
int rx_frame_received;
/*! \brief True if a carrier is present. Otherwise false. */
bool rx_signal_present;
/*! \brief True if a modem has trained correctly. */
bool rx_trained;
/*! \brief True if a valid HDLC frame has been received in the current reception period. */
bool rx_frame_received;
/*! \brief Current reception mode. */
int current_rx_type;
@ -214,14 +214,14 @@ struct t30_state_s
/*! \brief This is only used in full duplex (e.g. ISDN) modes. */
int timer_t8;
/*! \brief TRUE once the far end FAX entity has been detected. */
int far_end_detected;
/*! \brief True once the far end FAX entity has been detected. */
bool far_end_detected;
/*! \brief TRUE once the end of procedure condition has been detected. */
int end_of_procedure_detected;
/*! \brief True once the end of procedure condition has been detected. */
bool end_of_procedure_detected;
/*! \brief TRUE if a local T.30 interrupt is pending. */
int local_interrupt_pending;
/*! \brief True if a local T.30 interrupt is pending. */
bool local_interrupt_pending;
/*! \brief The common ground in compression schemes between the local and far ends. */
int mutual_compressions;
/*! \brief The common group of supported bi-level image resolutions. */
@ -248,8 +248,8 @@ struct t30_state_s
t4_image_width_t image_width;
/*! \brief Current number of retries of the action in progress. */
int retries;
/*! \brief TRUE if error correcting mode is used. */
int error_correcting_mode;
/*! \brief True if error correcting mode is used. */
bool error_correcting_mode;
/*! \brief The number of HDLC frame retries, if error correcting mode is used. */
int error_correcting_mode_retries;
/*! \brief The current count of consecutive T30_PPR messages. */
@ -277,9 +277,9 @@ struct t30_state_s
int ecm_frames_this_tx_burst;
/*! \brief The current ECM frame, during ECM transmission. */
int ecm_current_tx_frame;
/*! \brief TRUE if we are at the end of an ECM page to se sent - i.e. there are no more
/*! \brief True if we are at the end of an ECM page to se sent - i.e. there are no more
partial pages still to come. */
int ecm_at_page_end;
bool ecm_at_page_end;
/*! \brief The transmission step queued to follow the one in progress. */
int next_tx_step;
@ -305,8 +305,8 @@ struct t30_state_s
/*! \brief the FCF2 field of the last PPS message we received. */
uint8_t last_pps_fcf2;
/*! \brief TRUE if all frames of the current received ECM block are now OK */
int rx_ecm_block_ok;
/*! \brief True if all frames of the current received ECM block are now OK */
bool rx_ecm_block_ok;
/*! \brief A count of successfully received ECM frames, to assess progress as a basis for
deciding whether to continue error correction when PPRs keep repeating. */
int ecm_progress;

View File

@ -108,8 +108,8 @@ typedef struct
/*! \brief The current transmit step being timed */
int timed_step;
/*! \brief TRUE is there has been some T.38 data missed */
int rx_data_missing;
/*! \brief True is there has been some T.38 data missed */
bool rx_data_missing;
/*! \brief The number of octets to send in each image packet (non-ECM or ECM) at the current
rate and the current specified packet interval. */
@ -138,9 +138,9 @@ typedef struct
t31_hdlc_state_t hdlc_from_t31;
/*! \brief TRUE if we are using ECM mode. This is used to select HDLC faking, necessary
/*! \brief True if we are using ECM mode. This is used to select HDLC faking, necessary
with clunky class 1 modems. */
int ecm_mode;
bool ecm_mode;
/*! \brief Counter for trailing non-ECM bytes, used to flush out the far end's modem. */
int non_ecm_trailer_bytes;
@ -179,8 +179,8 @@ struct t31_state_s
t31_audio_front_end_state_t audio;
t31_t38_front_end_state_t t38_fe;
/*! TRUE if working in T.38 mode. */
int t38_mode;
/*! True if working in T.38 mode. */
bool t38_mode;
/*! HDLC buffer, for composing an HDLC frame from the computer to the channel. */
struct
@ -189,8 +189,8 @@ struct t31_state_s
uint8_t buf[T31_MAX_HDLC_LEN];
int len;
int ptr;
/*! \brief TRUE when the end of HDLC data from the computer has been detected. */
int final;
/*! \brief True when the end of HDLC data from the computer has been detected. */
bool final;
} hdlc_tx;
/*! Buffer for data from the computer to the channel. */
struct
@ -201,24 +201,24 @@ struct t31_state_s
int in_bytes;
/*! \brief The number of bytes sent from the transmit buffer. */
int out_bytes;
/*! \brief TRUE if the flow of real data has started. */
int data_started;
/*! \brief TRUE if holding up further data into the buffer, for flow control. */
int holding;
/*! \brief TRUE when the end of non-ECM data from the computer has been detected. */
int final;
/*! \brief True if the flow of real data has started. */
bool data_started;
/*! \brief True if holding up further data into the buffer, for flow control. */
bool holding;
/*! \brief True when the end of non-ECM data from the computer has been detected. */
bool final;
} non_ecm_tx;
/*! TRUE if DLE prefix just used */
int dled;
/*! True if DLE prefix just used */
bool dled;
/*! \brief Samples of silence awaited, as specified in a "wait for silence" command */
int silence_awaited;
/*! \brief The current bit rate for the FAX fast message transfer modem. */
int bit_rate;
/*! \brief TRUE if a valid HDLC frame has been received in the current reception period. */
int rx_frame_received;
/*! \brief True if a valid HDLC frame has been received in the current reception period. */
bool rx_frame_received;
/*! \brief Samples elapsed in the current call */
int64_t call_samples;
@ -226,8 +226,8 @@ struct t31_state_s
/*! \brief The currently queued modem type. */
int modem;
/*! \brief TRUE when short training mode has been selected by the computer. */
int short_train;
/*! \brief True when short training mode has been selected by the computer. */
bool short_train;
queue_state_t *rx_queue;
/*! \brief Error and flow logging control */

View File

@ -98,9 +98,9 @@ struct t38_core_state_s
/*! \brief Pace transmission */
int pace_transmission;
/*! \brief TRUE if IFP packet sequence numbers are relevant. For some transports, like TPKT
/*! \brief True if IFP packet sequence numbers are relevant. For some transports, like TPKT
over TCP they are not relevent. */
int check_sequence_numbers;
bool check_sequence_numbers;
/*! \brief The number of times each packet type will be sent (low byte). The
depth of redundancy (2nd byte). Higher numbers may increase reliability

View File

@ -43,12 +43,12 @@ typedef struct
/*! \brief Core T.38 IFP support */
t38_core_state_t t38;
/*! \brief TRUE if the NSF, NSC, and NSS are to be suppressed by altering
their contents to something the far end will not recognise. */
/*! \brief If NSF, NSC, and NSS are to be suppressed by altering their contents to
something the far end will not recognise, this is the amount to overwrite. */
int suppress_nsx_len[2];
/*! \brief TRUE if we need to corrupt the HDLC frame in progress, so the receiver cannot
/*! \brief True if we need to corrupt the HDLC frame in progress, so the receiver cannot
interpret it. The two values are for the two directions. */
int corrupt_current_frame[2];
bool corrupt_current_frame[2];
/*! \brief the current class of field being received - i.e. none, non-ECM or HDLC */
int current_rx_field_class;
@ -87,8 +87,8 @@ typedef struct
int bit_no;
/*! \brief Progressively calculated CRC for HDLC messages received from a modem. */
uint16_t crc;
/*! \brief TRUE if non-ECM fill bits are to be stripped when sending image data. */
int fill_bit_removal;
/*! \brief True if non-ECM fill bits are to be stripped when sending image data. */
bool fill_bit_removal;
/*! \brief The number of octets to send in each image packet (non-ECM or ECM) at
the current rate and the current specified packet interval. */
int octets_per_data_packet;
@ -134,27 +134,27 @@ typedef struct
{
/*! \brief A bit mask of the currently supported modem types. */
int supported_modems;
/*! \brief TRUE if ECM FAX mode is allowed through the gateway. */
int ecm_allowed;
/*! \brief True if ECM FAX mode is allowed through the gateway. */
bool ecm_allowed;
/*! \brief Required time between T.38 transmissions, in ms. */
int ms_per_tx_chunk;
/*! \brief TRUE if in image data modem is to use short training. This usually
/*! \brief True if in image data modem is to use short training. This usually
follows image_data_mode, but in ECM mode T.30 defines recovery
conditions in which long training is used for image data. */
int short_train;
/*! \brief TRUE if in image data mode, as opposed to TCF mode. */
int image_data_mode;
bool short_train;
/*! \brief True if in image data mode, as opposed to TCF mode. */
bool image_data_mode;
/*! \brief The minimum permitted bits per FAX scan line row. */
int min_row_bits;
/*! \brief TRUE if we should count the next MCF as a page end, else FALSE */
int count_page_on_mcf;
/*! \brief True if we should count the next MCF as a page end, else false */
bool count_page_on_mcf;
/*! \brief The number of pages for which a confirm (MCF) message was returned. */
int pages_confirmed;
/*! \brief TRUE if we are in error correcting (ECM) mode */
int ecm_mode;
/*! \brief True if we are in error correcting (ECM) mode */
bool ecm_mode;
/*! \brief The current bit rate for the fast modem. */
int fast_bit_rate;
/*! \brief The current fast receive modem type. */

View File

@ -55,14 +55,14 @@ struct t38_non_ecm_buffer_state_s
uint8_t flow_control_fill_octet;
/*! \brief A code for the phase of input buffering, from initial all ones to completion. */
int input_phase;
/*! \brief TRUE is the end of non-ECM data indication has been received. */
int data_finished;
/*! \brief True is the end of non-ECM data indication has been received. */
bool data_finished;
/*! \brief The current octet being transmitted from the buffer. */
unsigned int octet;
/*! \brief The current bit number in the current non-ECM octet. */
int bit_no;
/*! \brief TRUE if in image data mode, as opposed to TCF mode. */
int image_data_mode;
/*! \brief True if in image data mode, as opposed to TCF mode. */
bool image_data_mode;
/*! \brief The number of octets input to the buffer. */
int in_octets;

View File

@ -46,9 +46,9 @@ typedef struct
/*! \brief The timed step to go to when we reach idle from the current timed step */
int queued_timed_step;
/*! \brief TRUE is there has been some T.38 data missed (i.e. lost packets) in the current
/*! \brief True is there has been some T.38 data missed (i.e. lost packets) in the current
reception period. */
int rx_data_missing;
bool rx_data_missing;
/*! \brief The number of octets to send in each image packet (non-ECM or ECM) at the current
rate and the current specified packet interval. */
@ -84,8 +84,8 @@ typedef struct
/*! \brief The current T.38 data type being transmitted. */
int current_tx_data_type;
/*! \brief TRUE if a carrier is present. Otherwise FALSE. */
int rx_signal_present;
/*! \brief True if a carrier is present. Otherwise false. */
bool rx_signal_present;
/*! \brief The current operating mode of the receiver. */
int current_rx_type;

View File

@ -81,8 +81,8 @@ struct t4_t6_decode_state_s
int run_length;
/*! \brief 2D horizontal mode control. */
int black_white;
/*! \brief TRUE if the current run is black */
int in_black;
/*! \brief True if the current run is black */
bool in_black;
/*! \brief The current step into the current row run-lengths buffer. */
int a_cursor;

View File

@ -59,7 +59,7 @@ struct t4_t6_encode_state_s
/*! \brief This variable is set if we are treating the current row as a 2D encoded
one. */
int row_is_2d;
bool row_is_2d;
/*! \brief Encoded data bits buffer. */
uint32_t tx_bitstream;

View File

@ -124,10 +124,10 @@ struct t4_tx_state_s
/*! \brief The last page to transfer. -1 to continue to the end of the file. */
int stop_page;
/*! \brief TRUE for FAX page headers to overlay (i.e. replace) the beginning of the
page image. FALSE for FAX page headers to add to the overall length of
/*! \brief True for FAX page headers to overlay (i.e. replace) the beginning of the
page image. False for FAX page headers to add to the overall length of
the page. */
int header_overlays_image;
bool header_overlays_image;
/*! \brief The text which will be used in FAX page header. No text results
in no header line. */
const char *header_info;

View File

@ -89,8 +89,8 @@ struct t85_encode_state_s
uint32_t c[128];
/*! New TX value, or <0 for analysis in progress */
int32_t new_tx;
/*! TRUE if previous row was typical */
int prev_ltp;
/*! True if previous row was typical */
bool prev_ltp;
/*! Pointers to the 3 row buffers */
uint8_t *prev_row[3];
/*! Pointer to a block of allocated memory 3 rows long, which

View File

@ -54,8 +54,8 @@ struct tz_ttinfo_s
int32_t gmtoff; /* UTC offset in seconds */
int isdst; /* Used to set tm_isdst */
int abbrind; /* Abbreviation list index */
int ttisstd; /* TRUE if transition is std time */
int ttisgmt; /* TRUE if transition is UTC */
bool ttisstd; /* True if transition is std time */
bool ttisgmt; /* True if transition is UTC */
};
/* Leap second information */

View File

@ -156,8 +156,8 @@ struct v17_rx_state_s
/*! \brief Scrambler tap */
int scrambler_tap;
/*! \brief TRUE if the short training sequence is to be used. */
int short_train;
/*! \brief True if the short training sequence is to be used. */
bool short_train;
/*! \brief The section of the training data we are currently in. */
int training_stage;
/*! \brief A count of how far through the current training step we are. */

View File

@ -81,10 +81,10 @@ struct v17_tx_state_s
uint32_t scramble_reg;
/*! \brief Scrambler tap */
int scrambler_tap;
/*! \brief TRUE if transmitting the training sequence. FALSE if transmitting user data. */
int in_training;
/*! \brief TRUE if the short training sequence is to be used. */
int short_train;
/*! \brief True if transmitting the training sequence. False if transmitting user data. */
bool in_training;
/*! \brief True if the short training sequence is to be used. */
bool short_train;
/*! \brief A counter used to track progress through sending the training sequence. */
int training_step;

View File

@ -28,8 +28,8 @@
struct v18_state_s
{
/*! \brief TRUE if we are the calling modem */
int calling_party;
/*! \brief True if we are the calling modem */
bool calling_party;
int mode;
int nation;
put_msg_func_t put_msg;

View File

@ -79,8 +79,8 @@ struct v22bis_state_s
{
/*! \brief The maximum permitted bit rate of the modem. Valid values are 1200 and 2400. */
int bit_rate;
/*! \brief TRUE is this is the calling side modem. */
int calling_party;
/*! \brief True is this is the calling side modem. */
bool calling_party;
/*! \brief The callback function used to get the next bit to be transmitted. */
get_bit_func_t get_bit;
/*! \brief A user specified opaque pointer passed to the get_bit callback routine. */

View File

@ -130,8 +130,8 @@ struct v27ter_rx_state_s
int scrambler_pattern_count;
/*! \brief The current step in the table of BC constellation positions. */
int training_bc;
/*! \brief TRUE if the previous trained values are to be reused. */
int old_train;
/*! \brief True if the previous trained values are to be reused. */
bool old_train;
/*! \brief The section of the training data we are currently in. */
int training_stage;
/*! \brief A count of how far through the current training step we are. */

View File

@ -73,9 +73,9 @@ struct v27ter_tx_state_s
/*! \brief A counter for the number of consecutive bits of repeating pattern through
the scrambler. */
int scrambler_pattern_count;
/*! \brief TRUE if transmitting the training sequence, or shutting down transmission.
FALSE if transmitting user data. */
int in_training;
/*! \brief True if transmitting the training sequence, or shutting down transmission.
False if transmitting user data. */
bool in_training;
/*! \brief A counter used to track progress through sending the training sequence. */
int training_step;

View File

@ -139,8 +139,8 @@ struct v29_rx_state_s
uint8_t training_scramble_reg;
/*! \brief The current step in the table of CD constellation positions. */
int training_cd;
/*! \brief TRUE if the previous trained values are to be reused. */
int old_train;
/*! \brief True if the previous trained values are to be reused. */
bool old_train;
/*! \brief The section of the training data we are currently in. */
int training_stage;
/*! \brief A count of how far through the current training step we are. */

View File

@ -76,9 +76,9 @@ struct v29_tx_state_s
uint32_t scramble_reg;
/*! \brief The register for the training scrambler. */
uint8_t training_scramble_reg;
/*! \brief TRUE if transmitting the training sequence, or shutting down transmission.
FALSE if transmitting user data. */
int in_training;
/*! \brief True if transmitting the training sequence, or shutting down transmission.
False if transmitting user data. */
bool in_training;
/*! \brief A counter used to track progress through sending the training sequence. */
int training_step;
/*! \brief An offset value into the table of training parameters, used to match the

View File

@ -92,9 +92,9 @@ typedef struct
uint8_t vr;
int state;
int configuring;
int local_busy;
int far_busy;
int rejected;
bool local_busy;
bool far_busy;
bool rejected;
int retry_count;
/* The control frame buffer, and its pointers */
@ -131,11 +131,11 @@ typedef struct
*/
struct v42_state_s
{
/*! TRUE if we are the calling party, otherwise FALSE. */
int calling_party;
/*! TRUE if we should detect whether the far end is V.42 capable. FALSE if we go
/*! True if we are the calling party, otherwise false. */
bool calling_party;
/*! True if we should detect whether the far end is V.42 capable. false if we go
directly to protocol establishment. */
int detect;
bool detect;
/*! The bit rate, used to time events */
int tx_bit_rate;

View File

@ -60,8 +60,8 @@ typedef struct
/*! \brief The maximum amount to be passed to the data handler. */
int max_output_len;
/*! \brief TRUE if we are in transparent (i.e. uncompressable) mode */
int transparent;
/*! \brief True if we are in transparent (i.e. uncompressable) mode */
bool transparent;
/*! \brief Next empty dictionary entry */
uint16_t v42bis_parm_c1;
/*! \brief Current codeword size */
@ -104,8 +104,8 @@ typedef struct
/*! \brief The current value of the escape code */
uint8_t escape_code;
/*! \brief TRUE if we just hit an escape code, and are waiting for the following octet */
int escaped;
/*! \brief True if we just hit an escape code, and are waiting for the following octet */
bool escaped;
} v42bis_comp_state_t;
/*!

View File

@ -28,8 +28,8 @@
struct v8_state_s
{
/*! \brief TRUE if we are the calling party */
int calling_party;
/*! \brief True if we are the calling party */
bool calling_party;
/*! \brief A handler to process the V.8 signals */
v8_result_handler_t result_handler;
@ -38,7 +38,7 @@ struct v8_state_s
/*! \brief The current state of the V.8 protocol */
int state;
int fsk_tx_on;
bool fsk_tx_on;
int modem_connect_tone_tx_on;
int negotiation_timer;
int ci_timer;
@ -67,8 +67,8 @@ struct v8_state_s
testing for matches. */
uint8_t cm_jm_data[64];
int cm_jm_len;
int got_cm_jm;
int got_cj;
bool got_cm_jm;
bool got_cj;
int zero_byte_count;
/*! \brief Error and flow logging control */
logging_state_t logging;

View File

@ -63,8 +63,8 @@ extern "C"
/*! Check if a queue is empty.
\brief Check if a queue is empty.
\param s The queue context.
\return TRUE if empty, else FALSE. */
SPAN_DECLARE(int) queue_empty(queue_state_t *s);
\return True if empty, else false. */
SPAN_DECLARE(bool) queue_empty(queue_state_t *s);
/*! Check the available free space in a queue's buffer.
\brief Check available free space.

View File

@ -0,0 +1,55 @@
/*
* SpanDSP - a series of DSP components for telephony
*
* stdbool.h - A version for systems which lack their own stdbool.h
*
* Written by Steve Underwood <steveu@coppice.org>
*
* Copyright (C) 2003 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.
*/
/*! \file */
/*
* ISO C Standard: 7.16 Boolean type and values <stdbool.h>
*/
#if !defined(_STDBOOL_H)
#define _STDBOOL_H
#if !defined(__cplusplus)
#define _Bool int
#define bool int
#define false 0
#define true (!false)
#else
#define _Bool bool
#define bool bool
#define false false
#define true true
#endif
/* Signal that all the definitions are present. */
#define __bool_true_false_are_defined 1
#endif

View File

@ -32,7 +32,7 @@
\section t30_page_sec_1 What does it do?
The T.30 protocol is the core protocol used for FAX transmission. This module
implements most of its key featrues. It does not interface to the outside work.
implements most of its key features. It does not interface to the outside work.
Seperate modules do that for T.38, analogue line, and other forms of FAX
communication.
@ -184,13 +184,13 @@ typedef void (*t30_phase_e_handler_t)(t30_state_t *s, void *user_data, int compl
\brief T.30 real time frame handler.
\param s The T.30 context.
\param user_data An opaque pointer.
\param direction TRUE for incoming, FALSE for outgoing.
\param incoming True for incoming, false for outgoing.
\param msg The HDLC message.
\param len The length of the message.
*/
typedef void (*t30_real_time_frame_handler_t)(t30_state_t *s,
void *user_data,
int direction,
bool direction,
const uint8_t msg[],
int len);
@ -209,8 +209,8 @@ typedef int (*t30_document_handler_t)(t30_state_t *s, void *user_data, int statu
\param user_data An opaque pointer.
\param type The modem, tone or silence to be sent or received.
\param bit_rate The bit rate of the modem to be sent or received.
\param short_train TRUE if the short training sequence should be used (where one exists).
\param use_hdlc FALSE for bit stream, TRUE for HDLC framing.
\param short_train True if the short training sequence should be used (where one exists).
\param use_hdlc False for bit stream, true for HDLC framing.
*/
typedef void (*t30_set_handler_t)(void *user_data, int type, int bit_rate, int short_train, int use_hdlc);
@ -448,7 +448,7 @@ typedef struct
{
/*! \brief The current bit rate for image transfer. */
int bit_rate;
/*! \brief TRUE if error correcting mode is used. */
/*! \brief True if error correcting mode is used. */
int error_correcting_mode;
/*! \brief The number of pages sent so far. */
int pages_tx;
@ -502,7 +502,7 @@ extern "C"
/*! Initialise a T.30 context.
\brief Initialise a T.30 context.
\param s The T.30 context.
\param calling_party TRUE if the context is for a calling party. FALSE if the
\param calling_party True if the context is for a calling party. False if the
context is for an answering party.
\param set_rx_type_handler
\param set_rx_type_user_data
@ -542,7 +542,7 @@ SPAN_DECLARE(int) t30_restart(t30_state_t *s);
if the job has finished.
\brief Check if a T.30 call is still active.
\param s The T.30 context.
\return TRUE for call still active, or FALSE for call completed. */
\return True for call still active, or false for call completed. */
SPAN_DECLARE(int) t30_call_active(t30_state_t *s);
/*! Cleanup a T.30 context if the call terminates.
@ -588,7 +588,7 @@ SPAN_DECLARE(void) t30_non_ecm_put(void *user_data, const uint8_t buf[], int len
\param user_data The T.30 context.
\param msg The HDLC message.
\param len The length of the message, in octets.
\param ok TRUE if the frame was received without error. */
\param ok True if the frame was received without error. */
SPAN_DECLARE_NONSTD(void) t30_hdlc_accept(void *user_data, const uint8_t msg[], int len, int ok);
/*! Report the passage of time to the T.30 engine.
@ -606,13 +606,13 @@ SPAN_DECLARE(void) t30_get_transfer_statistics(t30_state_t *s, t30_stats_t *t);
/*! Request a local interrupt of FAX exchange.
\brief Request a local interrupt of FAX exchange.
\param s The T.30 context.
\param state TRUE to enable interrupt request, else FALSE. */
\param state True to enable interrupt request, else false. */
SPAN_DECLARE(void) t30_local_interrupt_request(t30_state_t *s, int state);
/*! Allow remote interrupts of FAX exchange.
\brief Allow remote interrupts of FAX exchange.
\param s The T.30 context.
\param state TRUE to allow interruptd, else FALSE. */
\param state True to allow interruptd, else false. */
SPAN_DECLARE(void) t30_remote_interrupts_allowed(t30_state_t *s, int state);
#if defined(__cplusplus)

View File

@ -363,8 +363,8 @@ SPAN_DECLARE(size_t) t30_get_rx_csa(t30_state_t *s, int *type, const char *addre
/*! Set page header extends or overlays the image mode.
\brief Set page header overlay mode.
\param s The T.30 context.
\param header_overlays_image TRUE for overlay, or FALSE for extend the page. */
SPAN_DECLARE(int) t30_set_tx_page_header_overlays_image(t30_state_t *s, int header_overlays_image);
\param header_overlays_image True for overlay, or false for extend the page. */
SPAN_DECLARE(int) t30_set_tx_page_header_overlays_image(t30_state_t *s, bool header_overlays_image);
/*! Set the transmitted header information associated with a T.30 context.
\brief Set the transmitted header information associated with a T.30 context.
@ -426,15 +426,15 @@ SPAN_DECLARE(void) t30_set_tx_file(t30_state_t *s, const char *file, int start_p
/*! Set Internet aware FAX (IAF) mode.
\brief Set Internet aware FAX (IAF) mode.
\param s The T.30 context.
\param iaf TRUE for IAF, or FALSE for non-IAF. */
SPAN_DECLARE(void) t30_set_iaf_mode(t30_state_t *s, int iaf);
\param iaf True for IAF, or false for non-IAF. */
SPAN_DECLARE(void) t30_set_iaf_mode(t30_state_t *s, bool iaf);
/*! Specify if error correction mode (ECM) is allowed by a T.30 context.
\brief Select ECM capability.
\param s The T.30 context.
\param enabled TRUE for ECM capable, FALSE for not ECM capable.
\param enabled True for ECM capable, or false for not ECM capable.
\return 0 if OK, else -1. */
SPAN_DECLARE(int) t30_set_ecm_capability(t30_state_t *s, int enabled);
SPAN_DECLARE(int) t30_set_ecm_capability(t30_state_t *s, bool enabled);
/*! Specify the output encoding for TIFF files created during FAX reception.
\brief Specify the output encoding for TIFF files created during FAX reception.

View File

@ -89,33 +89,33 @@ SPAN_DECLARE(int) t31_t38_send_timeout(t31_state_t *s, int samples);
/*! Select whether silent audio will be sent when transmit is idle.
\brief Select whether silent audio will be sent when transmit is idle.
\param s The T.31 modem context.
\param transmit_on_idle TRUE if silent audio should be output when the transmitter is
idle. FALSE to transmit zero length audio when the transmitter is idle. The default
behaviour is FALSE.
\param transmit_on_idle True if silent audio should be output when the transmitter is
idle. False to transmit zero length audio when the transmitter is idle. The default
behaviour is false.
*/
SPAN_DECLARE(void) t31_set_transmit_on_idle(t31_state_t *s, int transmit_on_idle);
SPAN_DECLARE(void) t31_set_transmit_on_idle(t31_state_t *s, bool transmit_on_idle);
/*! Select whether TEP mode will be used (or time allowed for it (when transmitting).
\brief Select whether TEP mode will be used.
\param s The T.31 modem context.
\param use_tep TRUE if TEP is to be ised.
\param use_tep True if TEP is to be used.
*/
SPAN_DECLARE(void) t31_set_tep_mode(t31_state_t *s, int use_tep);
SPAN_DECLARE(void) t31_set_tep_mode(t31_state_t *s, bool use_tep);
/*! Select whether T.38 data will be paced as it is transmitted.
\brief Select whether T.38 data will be paced.
\param s The T.31 modem context.
\param without_pacing TRUE if data is to be sent as fast as possible. FALSE if it is
\param without_pacing True if data is to be sent as fast as possible. False if it is
to be paced.
*/
SPAN_DECLARE(void) t31_set_t38_config(t31_state_t *s, int without_pacing);
SPAN_DECLARE(void) t31_set_t38_config(t31_state_t *s, bool without_pacing);
/*! Set audio or T.38 mode.
\brief Set audio or T.38 mode.
\param s The T.31 modem context.
\param t38_mode TRUE for T.38 mode operation. FALSE for audio mode operation.
\param t38_mode True for T.38 mode operation. False for audio mode operation.
*/
SPAN_DECLARE(void) t31_set_mode(t31_state_t *s, int t38_mode);
SPAN_DECLARE(void) t31_set_mode(t31_state_t *s, bool t38_mode);
/*! Get a pointer to the logging context associated with a T.31 context.
\brief Get a pointer to the logging context associated with a T.31 context.

View File

@ -83,9 +83,9 @@ SPAN_DECLARE(const char *) t35_vendor_to_str(const uint8_t *msg, int len);
\param model A pointer which will be pointed to the identified model.
If a NULL pointer is given, the model will not be returned.
If the model is not identified, NULL will be returned.
\return TRUE if the machine was identified, otherwise FALSE.
\return True if the machine was identified.
*/
SPAN_DECLARE(int) t35_decode(const uint8_t *msg, int len, const char **country, const char **vendor, const char **model);
SPAN_DECLARE(bool) t35_decode(const uint8_t *msg, int len, const char **country, const char **vendor, const char **model);
#if defined(__cplusplus)
}

View File

@ -312,21 +312,21 @@ SPAN_DECLARE(void) t38_set_data_transport_protocol(t38_core_state_t *s, int data
/*! Set the non-ECM fill bit removal mode.
\param s The T.38 context.
\param fill_bit_removal TRUE to remove fill bits across the T.38 link, else FALSE.
\param fill_bit_removal True to remove fill bits across the T.38 link.
*/
SPAN_DECLARE(void) t38_set_fill_bit_removal(t38_core_state_t *s, int fill_bit_removal);
SPAN_DECLARE(void) t38_set_fill_bit_removal(t38_core_state_t *s, bool fill_bit_removal);
/*! Set the MMR transcoding mode.
\param s The T.38 context.
\param mmr_transcoding TRUE to transcode to MMR across the T.38 link, else FALSE.
\param mmr_transcoding True to transcode to MMR across the T.38 link.
*/
SPAN_DECLARE(void) t38_set_mmr_transcoding(t38_core_state_t *s, int mmr_transcoding);
SPAN_DECLARE(void) t38_set_mmr_transcoding(t38_core_state_t *s, bool mmr_transcoding);
/*! Set the JBIG transcoding mode.
\param s The T.38 context.
\param jbig_transcoding TRUE to transcode to JBIG across the T.38 link, else FALSE.
\param jbig_transcoding True to transcode to JBIG across the T.38 link.
*/
SPAN_DECLARE(void) t38_set_jbig_transcoding(t38_core_state_t *s, int jbig_transcoding);
SPAN_DECLARE(void) t38_set_jbig_transcoding(t38_core_state_t *s, bool jbig_transcoding);
/*! Set the maximum buffer size for received data at the far end.
\param s The T.38 context.
@ -363,16 +363,16 @@ SPAN_DECLARE(void) t38_set_t38_version(t38_core_state_t *s, int t38_version);
/*! Set the sequence number handling option.
\param s The T.38 context.
\param check TRUE to check sequence numbers, and handle gaps reasonably. FALSE
\param check True to check sequence numbers, and handle gaps reasonably. False
for no sequence number processing (e.g. for TPKT over TCP transport).
*/
SPAN_DECLARE(void) t38_set_sequence_number_handling(t38_core_state_t *s, int check);
SPAN_DECLARE(void) t38_set_sequence_number_handling(t38_core_state_t *s, bool check);
/*! Set the TEP handling option.
\param s The T.38 context.
\param allow_for_tep TRUE to allow for TEP playout, else FALSE.
\param allow_for_tep True to allow for TEP playout.
*/
SPAN_DECLARE(void) t38_set_tep_handling(t38_core_state_t *s, int allow_for_tep);
SPAN_DECLARE(void) t38_set_tep_handling(t38_core_state_t *s, bool allow_for_tep);
/*! Get a pointer to the logging context associated with a T.38 context.
\brief Get a pointer to the logging context associated with a T.38 context.

View File

@ -45,13 +45,13 @@ typedef struct t38_gateway_state_s t38_gateway_state_t;
\brief T.30 real time frame handler.
\param s The T.30 context.
\param user_data An opaque pointer.
\param direction TRUE for incoming, FALSE for outgoing.
\param incoming True for incoming, false for outgoing.
\param msg The HDLC message.
\param len The length of the message.
*/
typedef void (*t38_gateway_real_time_frame_handler_t)(t38_gateway_state_t *s,
void *user_data,
int direction,
bool incoming,
const uint8_t *msg,
int len);
@ -62,8 +62,8 @@ typedef struct
{
/*! \brief The current bit rate for image transfer. */
int bit_rate;
/*! \brief TRUE if error correcting mode is used. */
int error_correcting_mode;
/*! \brief True if error correcting mode is used. */
bool error_correcting_mode;
/*! \brief The number of pages transferred so far. */
int pages_transferred;
} t38_stats_t;
@ -124,18 +124,18 @@ SPAN_DECLARE_NONSTD(int) t38_gateway_tx(t38_gateway_state_t *s, int16_t amp[], i
/*! Control whether error correcting mode (ECM) is allowed.
\brief Control whether error correcting mode (ECM) is allowed.
\param s The T.38 context.
\param ecm_allowed TRUE is ECM is to be allowed.
\param ecm_allowed True is ECM is to be allowed.
*/
SPAN_DECLARE(void) t38_gateway_set_ecm_capability(t38_gateway_state_t *s, int ecm_allowed);
SPAN_DECLARE(void) t38_gateway_set_ecm_capability(t38_gateway_state_t *s, bool ecm_allowed);
/*! Select whether silent audio will be sent when transmit is idle.
\brief Select whether silent audio will be sent when transmit is idle.
\param s The T.38 context.
\param transmit_on_idle TRUE if silent audio should be output when the FAX transmitter is
idle. FALSE to transmit zero length audio when the FAX transmitter is idle. The default
behaviour is FALSE.
\param transmit_on_idle True if silent audio should be output when the FAX transmitter is
idle. False to transmit zero length audio when the FAX transmitter is idle. The default
behaviour is false.
*/
SPAN_DECLARE(void) t38_gateway_set_transmit_on_idle(t38_gateway_state_t *s, int transmit_on_idle);
SPAN_DECLARE(void) t38_gateway_set_transmit_on_idle(t38_gateway_state_t *s, bool transmit_on_idle);
/*! Specify which modem types are supported by a T.30 context.
\brief Specify supported modems.
@ -165,16 +165,16 @@ SPAN_DECLARE(void) t38_gateway_set_nsx_suppression(t38_gateway_state_t *s,
/*! Select whether talker echo protection tone will be sent for the image modems.
\brief Select whether TEP will be sent for the image modems.
\param s The T.38 context.
\param use_tep TRUE if TEP should be sent.
\param use_tep True if TEP should be sent.
*/
SPAN_DECLARE(void) t38_gateway_set_tep_mode(t38_gateway_state_t *s, int use_tep);
SPAN_DECLARE(void) t38_gateway_set_tep_mode(t38_gateway_state_t *s, bool use_tep);
/*! Select whether non-ECM fill bits are to be removed during transmission.
\brief Select whether non-ECM fill bits are to be removed during transmission.
\param s The T.38 context.
\param remove TRUE if fill bits are to be removed.
\param remove True if fill bits are to be removed.
*/
SPAN_DECLARE(void) t38_gateway_set_fill_bit_removal(t38_gateway_state_t *s, int remove);
SPAN_DECLARE(void) t38_gateway_set_fill_bit_removal(t38_gateway_state_t *s, bool remove);
/*! Get the current transfer statistics for the current T.38 session.
\brief Get the current transfer statistics.

View File

@ -83,10 +83,10 @@ extern "C"
/*! \brief Initialise 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.
\param image_mode True for image data mode, or false for TCF mode.
\param bits The minimum number of bits per FAX image row.
\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(t38_non_ecm_buffer_state_t *) t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, bool image_mode, int min_row_bits);
SPAN_DECLARE(int) t38_non_ecm_buffer_release(t38_non_ecm_buffer_state_t *s);
@ -94,9 +94,9 @@ 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.
\param mode True for image data mode, or false for TCF mode.
\param bits The minimum number of bits per FAX image row. */
SPAN_DECLARE(void) t38_non_ecm_buffer_set_mode(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits);
SPAN_DECLARE(void) t38_non_ecm_buffer_set_mode(t38_non_ecm_buffer_state_t *s, bool image_mode, int min_row_bits);
/*! \brief Inject data to T.38 rate adapting non-ECM buffer context.
\param s The buffer context.

Some files were not shown because too many files have changed in this diff Show More