A lot of tweaks to clean up some inconsistencies in spandsp. They should

have no functional effect.
This commit is contained in:
Steve Underwood 2012-07-04 22:51:46 +08:00
parent b1ae97466d
commit 2b75169c07
30 changed files with 248 additions and 259 deletions

View File

@ -787,7 +787,7 @@ static void generate_ad_edd(void)
float offset;
float amp;
float phase;
float delay;
//float delay;
float pw;
#if defined(HAVE_FFTW3_H)
double in[FFT_SIZE][2];
@ -836,7 +836,7 @@ static void generate_ad_edd(void)
amp = (1.0 - offset)*ad[l - 1].ad[j] + offset*ad[l].ad[j];
amp = pow(10.0, -amp/20.0);
}
delay = 0.0f;
//delay = 0.0f;
for (l = 0; l < (int) (sizeof(edd)/sizeof(edd[0])); l++)
{
if (f < edd[l].freq)
@ -845,7 +845,7 @@ static void generate_ad_edd(void)
if (l < (int) (sizeof(edd)/sizeof(edd[0])))
{
offset = (f - edd[l - 1].freq)/(edd[l].freq - edd[l - 1].freq);
delay = (1.0f - offset)*edd[l - 1].edd[k] + offset*edd[l].edd[k];
//delay = (1.0f - offset)*edd[l - 1].edd[k] + offset*edd[l].edd[k];
}
//phase = 2.0f*M_PI*f*delay*0.001f;
phase = 0.0f;
@ -915,7 +915,7 @@ static void generate_proakis(void)
float offset;
float amp;
float phase;
float delay;
//float delay;
float pw;
int index;
int i;
@ -953,7 +953,7 @@ static void generate_proakis(void)
/* Linear interpolation */
amp = ((1.0f - offset)*proakis[index].amp + offset*proakis[index + 1].amp)/2.3f;
delay = (1.0f - offset)*proakis[index].delay + offset*proakis[index + 1].delay;
//delay = (1.0f - offset)*proakis[index].delay + offset*proakis[index + 1].delay;
//phase = 2.0f*M_PI*f*delay*0.001f;
phase = 0.0f;
#if defined(HAVE_FFTW3_H)

View File

@ -5501,9 +5501,9 @@ SPAN_DECLARE(void) at_set_class1_handler(at_state_t *s, at_class1_handler_t hand
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
at_tx_handler_t *at_tx_handler,
at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
at_modem_control_handler_t *modem_control_handler,
at_modem_control_handler_t modem_control_handler,
void *modem_control_user_data)
{
if (s == NULL)

View File

@ -173,8 +173,8 @@ static void hdlc_underflow_handler(void *user_data)
/*- End of function --------------------------------------------------------*/
static void set_rx_handler(fax_state_t *s,
span_rx_handler_t *rx_handler,
span_rx_fillin_handler_t *fillin_handler,
span_rx_handler_t rx_handler,
span_rx_fillin_handler_t fillin_handler,
void *user_data)
{
s->modems.rx_handler = rx_handler;
@ -183,14 +183,14 @@ static void set_rx_handler(fax_state_t *s,
}
/*- End of function --------------------------------------------------------*/
static void fax_modems_set_tx_handler(fax_state_t *s, span_tx_handler_t *handler, void *user_data)
static void fax_modems_set_tx_handler(fax_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->modems.tx_handler = handler;
s->modems.tx_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
static void fax_modems_set_next_tx_handler(fax_state_t *s, span_tx_handler_t *handler, void *user_data)
static void fax_modems_set_next_tx_handler(fax_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->modems.next_tx_handler = handler;
s->modems.next_tx_user_data = user_data;
@ -209,7 +209,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
{
/* The fast modem has trained, so we no longer need to run the slow one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
set_rx_handler(t, (span_rx_handler_t *) &v17_rx, (span_rx_fillin_handler_t *) &v17_rx_fillin, &s->fast_modems.v17_rx);
set_rx_handler(t, (span_rx_handler_t) &v17_rx, (span_rx_fillin_handler_t) &v17_rx_fillin, &s->fast_modems.v17_rx);
}
else
{
@ -219,7 +219,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return 0;
@ -251,7 +251,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
{
/* The fast modem has trained, so we no longer need to run the slow one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
set_rx_handler(t, (span_rx_handler_t *) &v27ter_rx, (span_rx_fillin_handler_t *) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
set_rx_handler(t, (span_rx_handler_t) &v27ter_rx, (span_rx_fillin_handler_t) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
}
else
{
@ -261,7 +261,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return 0;
@ -293,7 +293,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
{
/* The fast modem has trained, so we no longer need to run the slow one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
set_rx_handler(t, (span_rx_handler_t *) &v29_rx, (span_rx_fillin_handler_t *) &v29_rx_fillin, &s->fast_modems.v29_rx);
set_rx_handler(t, (span_rx_handler_t) &v29_rx, (span_rx_fillin_handler_t) &v29_rx_fillin, &s->fast_modems.v29_rx);
}
else
{
@ -303,7 +303,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return 0;
@ -380,8 +380,8 @@ static int set_next_tx_type(fax_state_t *s)
}
/* If there is nothing else to change to, so use zero length silence */
silence_gen_alter(&t->silence_gen, 0);
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE;
return -1;
}
@ -466,7 +466,7 @@ static void fax_set_rx_type(void *user_data, int type, int bit_rate, int short_t
case T30_MODEM_V21:
fsk_rx_init(&t->v21_rx, &preset_fsk_specs[FSK_V21CH2], FSK_FRAME_MODE_SYNC, (put_bit_func_t) hdlc_rx_put_bit, put_bit_user_data);
fsk_rx_signal_cutoff(&t->v21_rx, -45.5f);
set_rx_handler(s, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &t->v21_rx);
set_rx_handler(s, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
break;
case T30_MODEM_V27TER:
v27ter_rx_restart(&t->fast_modems.v27ter_rx, bit_rate, FALSE);
@ -486,7 +486,7 @@ static void fax_set_rx_type(void *user_data, int type, int bit_rate, int short_t
case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
default:
set_rx_handler(s, (span_rx_handler_t *) &span_dummy_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
set_rx_handler(s, (span_rx_handler_t) &span_dummy_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
break;
}
}
@ -519,8 +519,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
{
case T30_MODEM_PAUSE:
silence_gen_alter(&t->silence_gen, ms_to_samples(short_train));
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE;
break;
case T30_MODEM_CED:
@ -530,8 +530,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
else
tone = MODEM_CONNECT_TONES_FAX_CNG;
modem_connect_tones_tx_init(&t->connect_tx, tone);
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE;
break;
case T30_MODEM_V21:
@ -543,8 +543,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
a 75ms gap before any V.21 transmission is harmless, adds little to the overall length of
a call, and ensures the receiving end is ready. */
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &fsk_tx, &t->v21_tx);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
t->transmit = TRUE;
break;
case T30_MODEM_V27TER:
@ -553,8 +553,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v27ter_tx_restart(&t->fast_modems.v27ter_tx, bit_rate, t->use_tep);
v27ter_tx_set_get_bit(&t->fast_modems.v27ter_tx, get_bit_func, get_bit_user_data);
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &v27ter_tx, &t->fast_modems.v27ter_tx);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
t->transmit = TRUE;
break;
case T30_MODEM_V29:
@ -563,8 +563,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v29_tx_restart(&t->fast_modems.v29_tx, bit_rate, t->use_tep);
v29_tx_set_get_bit(&t->fast_modems.v29_tx, get_bit_func, get_bit_user_data);
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &v29_tx, &t->fast_modems.v29_tx);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
t->transmit = TRUE;
break;
case T30_MODEM_V17:
@ -573,8 +573,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v17_tx_restart(&t->fast_modems.v17_tx, bit_rate, t->use_tep, short_train);
v17_tx_set_get_bit(&t->fast_modems.v17_tx, get_bit_func, get_bit_user_data);
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &v17_tx, &t->fast_modems.v17_tx);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
t->transmit = TRUE;
break;
case T30_MODEM_DONE:
@ -582,8 +582,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
/* Fall through */
default:
silence_gen_alter(&t->silence_gen, 0);
fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE;
break;
}

View File

@ -98,8 +98,8 @@ SPAN_DECLARE_NONSTD(int) fax_modems_v17_v21_rx(void *user_data, const int16_t am
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
s->rx_handler = (span_rx_handler_t *) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin;
s->rx_handler = (span_rx_handler_t) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx;
}
return 0;
@ -129,8 +129,8 @@ SPAN_DECLARE_NONSTD(int) fax_modems_v27ter_v21_rx(void *user_data, const int16_t
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
s->rx_handler = (span_rx_handler_t *) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin;
s->rx_handler = (span_rx_handler_t) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx;
}
return 0;
@ -160,8 +160,8 @@ SPAN_DECLARE_NONSTD(int) fax_modems_v29_v21_rx(void *user_data, const int16_t am
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
s->rx_handler = (span_rx_handler_t *) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin;
s->rx_handler = (span_rx_handler_t) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx;
}
return 0;
@ -181,9 +181,11 @@ SPAN_DECLARE_NONSTD(int) fax_modems_v29_v21_rx_fillin(void *user_data, int len)
static void v21_rx_status_handler(void *user_data, int status)
{
#if 0
fax_modems_state_t *s;
s = (fax_modems_state_t *) user_data;
#endif
}
/*- End of function --------------------------------------------------------*/
@ -196,8 +198,8 @@ static void v17_rx_status_handler(void *user_data, int status)
{
case SIG_STATUS_TRAINING_SUCCEEDED:
span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
s->rx_handler = (span_rx_handler_t *) &v17_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v17_rx_fillin;
s->rx_handler = (span_rx_handler_t) &v17_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t) &v17_rx_fillin;
s->rx_user_data = &s->fast_modems.v17_rx;
break;
}
@ -213,8 +215,8 @@ static void v27ter_rx_status_handler(void *user_data, int status)
{
case SIG_STATUS_TRAINING_SUCCEEDED:
span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
s->rx_handler = (span_rx_handler_t *) &v27ter_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v27ter_rx_fillin;
s->rx_handler = (span_rx_handler_t) &v27ter_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t) &v27ter_rx_fillin;
s->rx_user_data = &s->fast_modems.v27ter_rx;
break;
}
@ -230,8 +232,8 @@ static void v29_rx_status_handler(void *user_data, int status)
{
case SIG_STATUS_TRAINING_SUCCEEDED:
span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
s->rx_handler = (span_rx_handler_t *) &v29_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v29_rx_fillin;
s->rx_handler = (span_rx_handler_t) &v29_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t) &v29_rx_fillin;
s->rx_user_data = &s->fast_modems.v29_rx;
break;
}
@ -315,10 +317,10 @@ SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s,
dc_restore_init(&s->dc_restore);
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_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;
s->tx_handler = (span_tx_handler_t *) &silence_gen;
s->tx_handler = (span_tx_handler_t) &silence_gen;
s->tx_user_data = &s->silence_gen;
return s;
}

View File

@ -38,9 +38,9 @@ modem control commands.
typedef struct at_state_s at_state_t;
typedef int (at_modem_control_handler_t)(at_state_t *s, void *user_data, int op, const char *num);
typedef int (at_tx_handler_t)(at_state_t *s, void *user_data, const uint8_t *buf, size_t len);
typedef int (at_class1_handler_t)(at_state_t *s, void *user_data, int direction, int operation, int val);
typedef int (*at_modem_control_handler_t)(at_state_t *s, void *user_data, int op, const char *num);
typedef int (*at_tx_handler_t)(at_state_t *s, void *user_data, const uint8_t *buf, size_t len);
typedef int (*at_class1_handler_t)(at_state_t *s, void *user_data, int direction, int operation, int val);
enum at_rx_mode_e
{
@ -172,9 +172,9 @@ SPAN_DECLARE(void) at_set_class1_handler(at_state_t *s, at_class1_handler_t hand
\param modem_control_user_data x.
\return A pointer to the AT context, or NULL if there was a problem. */
SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
at_tx_handler_t *at_tx_handler,
at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
at_modem_control_handler_t *modem_control_handler,
at_modem_control_handler_t modem_control_handler,
void *modem_control_user_data);
/*! Release an AT interpreter context.

View File

@ -113,11 +113,11 @@ struct at_state_s
char line[256];
int line_ptr;
at_modem_control_handler_t *modem_control_handler;
at_modem_control_handler_t modem_control_handler;
void *modem_control_user_data;
at_tx_handler_t *at_tx_handler;
at_tx_handler_t at_tx_handler;
void *at_tx_user_data;
at_class1_handler_t *class1_handler;
at_class1_handler_t class1_handler;
void *class1_user_data;
/*! \brief Error and flow logging control */

View File

@ -95,18 +95,18 @@ struct fax_modems_state_s
int rx_frame_received;
/*! \brief The current receive signal handler */
span_rx_handler_t *rx_handler;
span_rx_handler_t rx_handler;
/*! \brief The current receive missing signal fill-in handler */
span_rx_fillin_handler_t *rx_fillin_handler;
span_rx_fillin_handler_t rx_fillin_handler;
void *rx_user_data;
/*! \brief The current transmit signal handler */
span_tx_handler_t *tx_handler;
span_tx_handler_t tx_handler;
void *tx_user_data;
/*! The next transmit signal handler, for two stage transmit operations.
E.g. a short silence followed by a modem signal. */
span_tx_handler_t *next_tx_handler;
span_tx_handler_t next_tx_handler;
void *next_tx_user_data;
/*! The current bit rate of the transmitter. */

View File

@ -94,42 +94,42 @@ struct t30_state_s
/*! \brief A pointer to a callback routine to be called when phase B events
occur. */
t30_phase_b_handler_t *phase_b_handler;
t30_phase_b_handler_t phase_b_handler;
/*! \brief An opaque pointer supplied in event B callbacks. */
void *phase_b_user_data;
/*! \brief A pointer to a callback routine to be called when phase D events
occur. */
t30_phase_d_handler_t *phase_d_handler;
t30_phase_d_handler_t phase_d_handler;
/*! \brief An opaque pointer supplied in event D callbacks. */
void *phase_d_user_data;
/*! \brief A pointer to a callback routine to be called when phase E events
occur. */
t30_phase_e_handler_t *phase_e_handler;
t30_phase_e_handler_t phase_e_handler;
/*! \brief An opaque pointer supplied in event E callbacks. */
void *phase_e_user_data;
/*! \brief A pointer to a callback routine to be called when frames are
exchanged. */
t30_real_time_frame_handler_t *real_time_frame_handler;
t30_real_time_frame_handler_t real_time_frame_handler;
/*! \brief An opaque pointer supplied in real time frame callbacks. */
void *real_time_frame_user_data;
/*! \brief A pointer to a callback routine to be called when document events
(e.g. end of transmitted document) occur. */
t30_document_handler_t *document_handler;
t30_document_handler_t document_handler;
/*! \brief An opaque pointer supplied in document callbacks. */
void *document_user_data;
/*! \brief The handler for changes to the receive mode */
t30_set_handler_t *set_rx_type_handler;
t30_set_handler_t set_rx_type_handler;
/*! \brief An opaque pointer passed to the handler for changes to the receive mode */
void *set_rx_type_user_data;
/*! \brief The handler for changes to the transmit mode */
t30_set_handler_t *set_tx_type_handler;
t30_set_handler_t set_tx_type_handler;
/*! \brief An opaque pointer passed to the handler for changes to the transmit mode */
void *set_tx_type_user_data;
/*! \brief The transmitted HDLC frame handler. */
t30_send_hdlc_handler_t *send_hdlc_handler;
t30_send_hdlc_handler_t send_hdlc_handler;
/*! \brief An opaque pointer passed to the transmitted HDLC frame handler. */
void *send_hdlc_user_data;

View File

@ -36,7 +36,7 @@ typedef struct
v8_state_t v8;
/*! The transmit signal handler to be used when the current one has finished sending. */
span_tx_handler_t *next_tx_handler;
span_tx_handler_t next_tx_handler;
void *next_tx_user_data;
/*! \brief No of data bits in current_byte. */
@ -136,7 +136,7 @@ typedef struct
struct t31_state_s
{
at_state_t at_state;
t31_modem_control_handler_t *modem_control_handler;
t31_modem_control_handler_t modem_control_handler;
void *modem_control_user_data;
t31_audio_front_end_state_t audio;

View File

@ -32,16 +32,16 @@
struct t38_core_state_s
{
/*! \brief Handler routine to transmit IFP packets generated by the T.38 protocol engine */
t38_tx_packet_handler_t *tx_packet_handler;
t38_tx_packet_handler_t tx_packet_handler;
/*! \brief An opaque pointer passed to tx_packet_handler */
void *tx_packet_user_data;
/*! \brief Handler routine to process received indicator packets */
t38_rx_indicator_handler_t *rx_indicator_handler;
t38_rx_indicator_handler_t rx_indicator_handler;
/*! \brief Handler routine to process received data packets */
t38_rx_data_handler_t *rx_data_handler;
t38_rx_data_handler_t rx_data_handler;
/*! \brief Handler routine to process the missing packet condition */
t38_rx_missing_handler_t *rx_missing_handler;
t38_rx_missing_handler_t rx_missing_handler;
/*! \brief An opaque pointer passed to any of the above receive handling routines */
void *rx_user_data;

View File

@ -61,8 +61,8 @@ typedef struct
fax_modems_state_t modems;
/*! \brief The current receive signal handler. Actual receiving hops between this
and a dummy receive routine. */
span_rx_handler_t *base_rx_handler;
span_rx_fillin_handler_t *base_rx_fillin_handler;
span_rx_handler_t base_rx_handler;
span_rx_fillin_handler_t base_rx_fillin_handler;
} t38_gateway_audio_state_t;
/*!
@ -183,7 +183,7 @@ typedef struct
/*! \brief A pointer to a callback routine to be called when frames are
exchanged. */
t38_gateway_real_time_frame_handler_t *real_time_frame_handler;
t38_gateway_real_time_frame_handler_t real_time_frame_handler;
/*! \brief An opaque pointer supplied in real time frame callbacks. */
void *real_time_frame_user_data;
} t38_gateway_core_state_t;

View File

@ -32,7 +32,7 @@ struct v8_state_s
int calling_party;
/*! \brief A handler to process the V.8 signals */
v8_result_handler_t *result_handler;
v8_result_handler_t result_handler;
/*! \brief An opaque pointer passed to result_handler */
void *result_handler_user_data;

View File

@ -158,7 +158,7 @@ typedef struct t30_state_s t30_state_t;
\param result The phase B event code.
\return The new status. Normally, T30_ERR_OK is returned.
*/
typedef int (t30_phase_b_handler_t)(t30_state_t *s, void *user_data, int result);
typedef int (*t30_phase_b_handler_t)(t30_state_t *s, void *user_data, int result);
/*!
T.30 phase D callback handler.
@ -168,7 +168,7 @@ typedef int (t30_phase_b_handler_t)(t30_state_t *s, void *user_data, int result)
\param result The phase D event code.
\return The new status. Normally, T30_ERR_OK is returned.
*/
typedef int (t30_phase_d_handler_t)(t30_state_t *s, void *user_data, int result);
typedef int (*t30_phase_d_handler_t)(t30_state_t *s, void *user_data, int result);
/*!
T.30 phase E callback handler.
@ -177,7 +177,7 @@ typedef int (t30_phase_d_handler_t)(t30_state_t *s, void *user_data, int result)
\param user_data An opaque pointer.
\param completion_code The phase E completion code.
*/
typedef void (t30_phase_e_handler_t)(t30_state_t *s, void *user_data, int completion_code);
typedef void (*t30_phase_e_handler_t)(t30_state_t *s, void *user_data, int completion_code);
/*!
T.30 real time frame handler.
@ -188,11 +188,11 @@ typedef void (t30_phase_e_handler_t)(t30_state_t *s, void *user_data, int comple
\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,
const uint8_t msg[],
int len);
typedef void (*t30_real_time_frame_handler_t)(t30_state_t *s,
void *user_data,
int direction,
const uint8_t msg[],
int len);
/*!
T.30 document handler.
@ -201,7 +201,7 @@ typedef void (t30_real_time_frame_handler_t)(t30_state_t *s,
\param user_data An opaque pointer.
\param result The document event code.
*/
typedef int (t30_document_handler_t)(t30_state_t *s, void *user_data, int status);
typedef int (*t30_document_handler_t)(t30_state_t *s, void *user_data, int status);
/*!
T.30 set a receive or transmit type handler.
@ -212,7 +212,7 @@ typedef int (t30_document_handler_t)(t30_state_t *s, void *user_data, int status
\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);
typedef void (*t30_set_handler_t)(void *user_data, int type, int bit_rate, int short_train, int use_hdlc);
/*!
T.30 send HDLC handler.
@ -221,7 +221,7 @@ typedef void (t30_set_handler_t)(void *user_data, int type, int bit_rate, int sh
\param msg The HDLC message.
\param len The length of the message.
*/
typedef void (t30_send_hdlc_handler_t)(void *user_data, const uint8_t msg[], int len);
typedef void (*t30_send_hdlc_handler_t)(void *user_data, const uint8_t msg[], int len);
/*!
T.30 protocol completion codes, at phase E.
@ -572,11 +572,11 @@ extern "C"
\return A pointer to the context, or NULL if there was a problem. */
SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
int calling_party,
t30_set_handler_t *set_rx_type_handler,
t30_set_handler_t set_rx_type_handler,
void *set_rx_type_user_data,
t30_set_handler_t *set_tx_type_handler,
t30_set_handler_t set_tx_type_handler,
void *set_tx_type_user_data,
t30_send_hdlc_handler_t *send_hdlc_handler,
t30_send_hdlc_handler_t send_hdlc_handler,
void *send_hdlc_user_data);
/*! Release a T.30 context.

View File

@ -507,28 +507,28 @@ SPAN_DECLARE(int) t30_set_receiver_not_ready(t30_state_t *s, int count);
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t *handler, void *user_data);
SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t handler, void *user_data);
/*! Set a callback function for T.30 phase D handling.
\brief Set a callback function for T.30 phase D handling.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t *handler, void *user_data);
SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t handler, void *user_data);
/*! Set a callback function for T.30 phase E handling.
\brief Set a callback function for T.30 phase E handling.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t *handler, void *user_data);
SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t handler, void *user_data);
/*! Set a callback function for T.30 end of document handling.
\brief Set a callback function for T.30 end of document handling.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t *handler, void *user_data);
SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t handler, void *user_data);
/*! Set a callback function for T.30 frame exchange monitoring. This is called from the heart
of the signal processing, so don't take too long in the handler routine.
@ -536,7 +536,7 @@ SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t *handler, void *user_data);
SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t handler, void *user_data);
/*! Get a pointer to the logging context associated with a T.30 context.
\brief Get a pointer to the logging context associated with a T.30 context.

View File

@ -42,7 +42,7 @@ modems in spandsp.
*/
typedef struct t31_state_s t31_state_t;
typedef int (t31_modem_control_handler_t)(t31_state_t *s, void *user_data, int op, const char *num);
typedef int (*t31_modem_control_handler_t)(t31_state_t *s, void *user_data, int op, const char *num);
#define T31_TX_BUF_LEN (4096)
#define T31_TX_BUF_HIGH_TIDE (4096 - 1024)
@ -133,11 +133,11 @@ SPAN_DECLARE(t38_core_state_t *) t31_get_t38_core_state(t31_state_t *s);
\param tx_t38_packet_user_data ???
\return A pointer to the T.31 context. */
SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
at_tx_handler_t *at_tx_handler,
at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
t31_modem_control_handler_t *modem_control_handler,
t31_modem_control_handler_t modem_control_handler,
void *modem_control_user_data,
t38_tx_packet_handler_t *tx_t38_packet_handler,
t38_tx_packet_handler_t tx_t38_packet_handler,
void *tx_t38_packet_user_data);
/*! Release a T.31 context.

View File

@ -201,11 +201,11 @@ typedef struct
*/
typedef struct t38_core_state_s t38_core_state_t;
typedef int (t38_tx_packet_handler_t)(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count);
typedef int (*t38_tx_packet_handler_t)(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count);
typedef int (t38_rx_indicator_handler_t)(t38_core_state_t *s, void *user_data, int indicator);
typedef int (t38_rx_data_handler_t)(t38_core_state_t *s, void *user_data, int data_type, int field_type, const uint8_t *buf, int len);
typedef int (t38_rx_missing_handler_t)(t38_core_state_t *s, void *user_data, int rx_seq_no, int expected_seq_no);
typedef int (*t38_rx_indicator_handler_t)(t38_core_state_t *s, void *user_data, int indicator);
typedef int (*t38_rx_data_handler_t)(t38_core_state_t *s, void *user_data, int data_type, int field_type, const uint8_t *buf, int len);
typedef int (*t38_rx_missing_handler_t)(t38_core_state_t *s, void *user_data, int rx_seq_no, int expected_seq_no);
#if defined(__cplusplus)
extern "C"
@ -398,11 +398,11 @@ SPAN_DECLARE(int) t38_core_restart(t38_core_state_t *s);
\param tx_packet_user_data An opaque pointer passed to the tx_packet_handler.
\return A pointer to the T.38 context, or NULL if there was a problem. */
SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
t38_rx_indicator_handler_t *rx_indicator_handler,
t38_rx_data_handler_t *rx_data_handler,
t38_rx_missing_handler_t *rx_missing_handler,
t38_rx_indicator_handler_t rx_indicator_handler,
t38_rx_data_handler_t rx_data_handler,
t38_rx_missing_handler_t rx_missing_handler,
void *rx_user_data,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data);
/*! Release a signaling tone transmitter context.

View File

@ -56,11 +56,11 @@ typedef struct t38_gateway_state_s t38_gateway_state_t;
\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,
const uint8_t *msg,
int len);
typedef void (*t38_gateway_real_time_frame_handler_t)(t38_gateway_state_t *s,
void *user_data,
int direction,
const uint8_t *msg,
int len);
/*!
T.38 gateway results.
@ -86,7 +86,7 @@ extern "C"
\param tx_packet_user_data An opaque pointer passed to the tx_packet_handler routine.
\return A pointer to the termination mode T.38 context, or NULL if there was a problem. */
SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data);
/*! Release a gateway mode T.38 context.
@ -212,7 +212,7 @@ SPAN_DECLARE(logging_state_t *) t38_gateway_get_logging_state(t38_gateway_state_
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
SPAN_DECLARE(void) t38_gateway_set_real_time_frame_handler(t38_gateway_state_t *s,
t38_gateway_real_time_frame_handler_t *handler,
t38_gateway_real_time_frame_handler_t handler,
void *user_data);
#if defined(__cplusplus)

View File

@ -123,7 +123,7 @@ SPAN_DECLARE(int) t38_terminal_restart(t38_terminal_state_t *s,
\return A pointer to the termination mode T.38 context, or NULL if there was a problem. */
SPAN_DECLARE(t38_terminal_state_t *) t38_terminal_init(t38_terminal_state_t *s,
int calling_party,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data);
/*! Release a termination mode T.38 context.

View File

@ -56,16 +56,16 @@
#define DBOV_MAX_SINE_POWER (-3.02f)
/*! \brief A handler for pure receive. The buffer cannot be altered. */
typedef int (span_rx_handler_t)(void *s, const int16_t amp[], int len);
typedef int (*span_rx_handler_t)(void *s, const int16_t amp[], int len);
/*! \brief A handler for receive, where the buffer can be altered. */
typedef int (span_mod_handler_t)(void *s, int16_t amp[], int len);
typedef int (*span_mod_handler_t)(void *s, int16_t amp[], int len);
/*! \brief A handler for missing receive data fill-in. */
typedef int (span_rx_fillin_handler_t)(void *s, int len);
typedef int (*span_rx_fillin_handler_t)(void *s, int len);
/*! \brief A handler for transmit, where the buffer will be filled. */
typedef int (span_tx_handler_t)(void *s, int16_t amp[], int max_len);
typedef int (*span_tx_handler_t)(void *s, int16_t amp[], int max_len);
#define ms_to_samples(t) ((t)*(SAMPLE_RATE/1000))
#define us_to_samples(t) ((t)/(1000000/SAMPLE_RATE))

View File

@ -43,7 +43,7 @@ being negotiating and training with their chosen modem standard.
typedef struct v8_parms_s v8_parms_t;
typedef void (v8_result_handler_t)(void *user_data, v8_parms_t *result);
typedef void (*v8_result_handler_t)(void *user_data, v8_parms_t *result);
enum v8_call_function_e
{
@ -147,7 +147,7 @@ SPAN_DECLARE(int) v8_restart(v8_state_t *s,
SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int calling_party,
v8_parms_t *parms,
v8_result_handler_t *result_handler,
v8_result_handler_t result_handler,
void *user_data);
/*! Release a V.8 context.

View File

@ -6345,11 +6345,11 @@ SPAN_DECLARE(int) t30_restart(t30_state_t *s)
SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
int calling_party,
t30_set_handler_t *set_rx_type_handler,
t30_set_handler_t set_rx_type_handler,
void *set_rx_type_user_data,
t30_set_handler_t *set_tx_type_handler,
t30_set_handler_t set_tx_type_handler,
void *set_tx_type_user_data,
t30_send_hdlc_handler_t *send_hdlc_handler,
t30_send_hdlc_handler_t send_hdlc_handler,
void *send_hdlc_user_data)
{
if (s == NULL)

View File

@ -765,35 +765,35 @@ SPAN_DECLARE(int) t30_set_receiver_not_ready(t30_state_t *s, int count)
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t *handler, void *user_data)
SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t handler, void *user_data)
{
s->phase_b_handler = handler;
s->phase_b_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t *handler, void *user_data)
SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t handler, void *user_data)
{
s->phase_d_handler = handler;
s->phase_d_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t *handler, void *user_data)
SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t handler, void *user_data)
{
s->phase_e_handler = handler;
s->phase_e_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t *handler, void *user_data)
SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t handler, void *user_data)
{
s->document_handler = handler;
s->document_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t *handler, void *user_data)
SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t handler, void *user_data)
{
s->real_time_frame_handler = handler;
s->real_time_frame_user_data = user_data;

View File

@ -186,9 +186,9 @@ enum
static int restart_modem(t31_state_t *s, int new_modem);
static void hdlc_accept_frame(void *user_data, const uint8_t *msg, int len, int ok);
static void set_rx_handler(t31_state_t *s, span_rx_handler_t *rx_handler, span_rx_fillin_handler_t *fillin_handler, void *user_data);
static void set_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data);
static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data);
static void set_rx_handler(t31_state_t *s, span_rx_handler_t rx_handler, span_rx_fillin_handler_t fillin_handler, void *user_data);
static void set_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data);
static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data);
static int v17_v21_rx(void *user_data, const int16_t amp[], int len);
static int v17_v21_rx_fillin(void *user_data, int len);
static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
@ -1327,6 +1327,7 @@ static void tone_detected(void *user_data, int tone, int level, int delay)
}
/*- End of function --------------------------------------------------------*/
#if 0
static void v8_handler(void *user_data, v8_parms_t *result)
{
t31_state_t *s;
@ -1335,6 +1336,7 @@ static void v8_handler(void *user_data, v8_parms_t *result)
span_log(&s->logging, SPAN_LOG_FLOW, "V.8 report received\n");
}
/*- End of function --------------------------------------------------------*/
#endif
static void hdlc_tx_underflow(void *user_data)
{
@ -1564,7 +1566,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
s->at_state.rx_signal_present = FALSE;
s->at_state.rx_trained = FALSE;
s->rx_frame_received = FALSE;
set_rx_handler(s, (span_rx_handler_t *) &span_dummy_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, NULL);
set_rx_handler(s, (span_rx_handler_t) &span_dummy_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
use_hdlc = FALSE;
switch (s->modem)
{
@ -1583,10 +1585,10 @@ static int restart_modem(t31_state_t *s, int new_modem)
/* Do V.21/HDLC receive in parallel. The other end may send its
first message at any time. The CNG tone will continue until
we get a valid preamble. */
set_rx_handler(s, (span_rx_handler_t *) &cng_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
set_rx_handler(s, (span_rx_handler_t) &cng_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
t31_v21_rx(s);
set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = TRUE;
break;
@ -1596,10 +1598,10 @@ static int restart_modem(t31_state_t *s, int new_modem)
}
else
{
set_rx_handler(s, (span_rx_handler_t *) &cng_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
set_rx_handler(s, (span_rx_handler_t) &cng_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
t31_v21_rx(s);
silence_gen_set(&t->silence_gen, 0);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
}
s->at_state.transmit = FALSE;
break;
@ -1613,8 +1615,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else
{
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED);
set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = TRUE;
break;
@ -1633,8 +1635,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
/* The spec says 1s +-15% of preamble. So, the minimum is 32 octets. */
hdlc_tx_flags(&t->hdlc_tx, 32);
fsk_tx_init(&t->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &t->hdlc_tx);
set_tx_handler(s, (span_tx_handler_t *) &fsk_tx, &t->v21_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->hdlc_tx.final = FALSE;
s->hdlc_tx.len = 0;
@ -1647,7 +1649,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
}
else
{
set_rx_handler(s, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &t->v21_rx);
set_rx_handler(s, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
t31_v21_rx(s);
}
break;
@ -1679,8 +1681,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else
{
v17_tx_restart(&t->fast_modems.v17_tx, s->bit_rate, FALSE, s->short_train);
set_tx_handler(s, (span_tx_handler_t *) &v17_tx, &t->fast_modems.v17_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->tx.out_bytes = 0;
s->tx.data_started = FALSE;
@ -1689,7 +1691,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
case FAX_MODEM_V17_RX:
if (!s->t38_mode)
{
set_rx_handler(s, (span_rx_handler_t *) &v17_v21_rx, (span_rx_fillin_handler_t *) &v17_v21_rx_fillin, s);
set_rx_handler(s, (span_rx_handler_t) &v17_v21_rx, (span_rx_fillin_handler_t) &v17_v21_rx_fillin, s);
v17_rx_restart(&t->fast_modems.v17_rx, s->bit_rate, s->short_train);
/* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s);
@ -1716,8 +1718,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else
{
v27ter_tx_restart(&t->fast_modems.v27ter_tx, s->bit_rate, FALSE);
set_tx_handler(s, (span_tx_handler_t *) &v27ter_tx, &t->fast_modems.v27ter_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->tx.out_bytes = 0;
s->tx.data_started = FALSE;
@ -1726,7 +1728,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
case FAX_MODEM_V27TER_RX:
if (!s->t38_mode)
{
set_rx_handler(s, (span_rx_handler_t *) &v27ter_v21_rx, (span_rx_fillin_handler_t *) &v27ter_v21_rx_fillin, s);
set_rx_handler(s, (span_rx_handler_t) &v27ter_v21_rx, (span_rx_fillin_handler_t) &v27ter_v21_rx_fillin, s);
v27ter_rx_restart(&t->fast_modems.v27ter_rx, s->bit_rate, FALSE);
/* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s);
@ -1753,8 +1755,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else
{
v29_tx_restart(&t->fast_modems.v29_tx, s->bit_rate, FALSE);
set_tx_handler(s, (span_tx_handler_t *) &v29_tx, &t->fast_modems.v29_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->tx.out_bytes = 0;
s->tx.data_started = FALSE;
@ -1763,7 +1765,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
case FAX_MODEM_V29_RX:
if (!s->t38_mode)
{
set_rx_handler(s, (span_rx_handler_t *) &v29_v21_rx, (span_rx_fillin_handler_t *) &v29_v21_rx_fillin, s);
set_rx_handler(s, (span_rx_handler_t) &v29_v21_rx, (span_rx_fillin_handler_t) &v29_v21_rx_fillin, s);
v29_rx_restart(&t->fast_modems.v29_rx, s->bit_rate, FALSE);
/* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s);
@ -1781,18 +1783,18 @@ static int restart_modem(t31_state_t *s, int new_modem)
else
{
silence_gen_set(&t->silence_gen, 0);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = FALSE;
break;
case FAX_MODEM_SILENCE_RX:
if (!s->t38_mode)
{
set_rx_handler(s, (span_rx_handler_t *) &silence_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
set_rx_handler(s, (span_rx_handler_t) &silence_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
silence_gen_set(&t->silence_gen, 0);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = FALSE;
break;
@ -1806,8 +1808,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
{
s->modem = FAX_MODEM_SILENCE_TX;
silence_gen_alter(&t->silence_gen, ms_to_samples(200));
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
s->at_state.transmit = TRUE;
}
break;
@ -2150,7 +2152,7 @@ SPAN_DECLARE(int) t31_at_rx(t31_state_t *s, const char *t, int len)
s->at_state.rx_data_bytes = 0;
s->at_state.transmit = FALSE;
s->modem = FAX_MODEM_SILENCE_TX;
set_rx_handler(s, (span_rx_handler_t *) &span_dummy_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, NULL);
set_rx_handler(s, (span_rx_handler_t) &span_dummy_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
t31_set_at_rx_mode(s, AT_MODE_OFFHOOK_COMMAND);
at_put_response_code(&s->at_state, AT_RESPONSE_CODE_OK);
}
@ -2177,8 +2179,8 @@ SPAN_DECLARE(int) t31_at_rx(t31_state_t *s, const char *t, int len)
/*- End of function --------------------------------------------------------*/
static void set_rx_handler(t31_state_t *s,
span_rx_handler_t *rx_handler,
span_rx_fillin_handler_t *fillin_handler,
span_rx_handler_t rx_handler,
span_rx_fillin_handler_t fillin_handler,
void *user_data)
{
s->audio.modems.rx_handler = rx_handler;
@ -2187,14 +2189,14 @@ static void set_rx_handler(t31_state_t *s,
}
/*- End of function --------------------------------------------------------*/
static void set_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data)
static void set_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.tx_handler = handler;
s->audio.modems.tx_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data)
static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.next_tx_handler = handler;
s->audio.modems.next_tx_user_data = user_data;
@ -2252,7 +2254,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
set_rx_handler(t, (span_rx_handler_t *) &v17_rx, (span_rx_fillin_handler_t *) &v17_rx_fillin, &s->fast_modems.v17_rx);
set_rx_handler(t, (span_rx_handler_t) &v17_rx, (span_rx_fillin_handler_t) &v17_rx_fillin, &s->fast_modems.v17_rx);
}
else
{
@ -2262,7 +2264,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return len;
@ -2295,7 +2297,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
set_rx_handler(t, (span_rx_handler_t *) &v27ter_rx, (span_rx_fillin_handler_t *) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
set_rx_handler(t, (span_rx_handler_t) &v27ter_rx, (span_rx_fillin_handler_t) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
}
else
{
@ -2305,7 +2307,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return len;
@ -2338,7 +2340,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
set_rx_handler(t, (span_rx_handler_t *) &v29_rx, (span_rx_fillin_handler_t *) &v29_rx_fillin, &s->fast_modems.v29_rx);
set_rx_handler(t, (span_rx_handler_t) &v29_rx, (span_rx_fillin_handler_t) &v29_rx_fillin, &s->fast_modems.v29_rx);
}
else
{
@ -2348,7 +2350,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return len;
@ -2461,13 +2463,13 @@ static int set_next_tx_type(t31_state_t *s)
if (s->audio.next_tx_handler)
{
set_tx_handler(s, s->audio.next_tx_handler, s->audio.next_tx_user_data);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
return 0;
}
/* There is nothing else to change to, so use zero length silence */
silence_gen_alter(&s->audio.modems.silence_gen, 0);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &s->audio.modems.silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &s->audio.modems.silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
return -1;
}
/*- End of function --------------------------------------------------------*/
@ -2556,7 +2558,7 @@ SPAN_DECLARE(t38_core_state_t *) t31_get_t38_core_state(t31_state_t *s)
/*- End of function --------------------------------------------------------*/
static int t31_t38_fe_init(t31_state_t *t,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
t31_t38_front_end_state_t *s;
@ -2589,11 +2591,11 @@ static int t31_t38_fe_init(t31_state_t *t,
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
at_tx_handler_t *at_tx_handler,
at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
t31_modem_control_handler_t *modem_control_handler,
t31_modem_control_handler_t modem_control_handler,
void *modem_control_user_data,
t38_tx_packet_handler_t *tx_t38_packet_handler,
t38_tx_packet_handler_t tx_t38_packet_handler,
void *tx_t38_packet_user_data)
{
#if 0

View File

@ -1100,11 +1100,11 @@ SPAN_DECLARE(int) t38_core_restart(t38_core_state_t *s)
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
t38_rx_indicator_handler_t *rx_indicator_handler,
t38_rx_data_handler_t *rx_data_handler,
t38_rx_missing_handler_t *rx_missing_handler,
t38_rx_indicator_handler_t rx_indicator_handler,
t38_rx_data_handler_t rx_data_handler,
t38_rx_missing_handler_t rx_missing_handler,
void *rx_user_data,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
if (s == NULL)

View File

@ -206,7 +206,7 @@ static void non_ecm_remove_fill_and_put_bit(void *user_data, int bit);
static void non_ecm_push_residue(t38_gateway_state_t *s);
static void tone_detected(void *user_data, int tone, int level, int delay);
static void set_rx_handler(t38_gateway_state_t *s, span_rx_handler_t *handler, span_rx_fillin_handler_t *fillin_handler, void *user_data)
static void set_rx_handler(t38_gateway_state_t *s, span_rx_handler_t handler, span_rx_fillin_handler_t fillin_handler, void *user_data)
{
if (s->audio.modems.rx_handler != span_dummy_rx)
{
@ -220,14 +220,14 @@ static void set_rx_handler(t38_gateway_state_t *s, span_rx_handler_t *handler, s
}
/*- End of function --------------------------------------------------------*/
static void set_tx_handler(t38_gateway_state_t *s, span_tx_handler_t *handler, void *user_data)
static void set_tx_handler(t38_gateway_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.tx_handler = handler;
s->audio.modems.tx_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
static void set_next_tx_handler(t38_gateway_state_t *s, span_tx_handler_t *handler, void *user_data)
static void set_next_tx_handler(t38_gateway_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.next_tx_handler = handler;
s->audio.modems.next_tx_user_data = user_data;
@ -267,7 +267,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
set_rx_handler(t, (span_rx_handler_t *) &v17_rx, (span_rx_fillin_handler_t *) &v17_rx_fillin, &s->fast_modems.v17_rx);
set_rx_handler(t, (span_rx_handler_t) &v17_rx, (span_rx_fillin_handler_t) &v17_rx_fillin, &s->fast_modems.v17_rx);
}
else
{
@ -275,7 +275,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
if (s->rx_signal_present)
{
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
/*endif*/
}
@ -310,7 +310,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
set_rx_handler(t, (span_rx_handler_t *) &v27ter_rx, (span_rx_fillin_handler_t *) &v27ter_v21_rx_fillin, &s->fast_modems.v27ter_rx);
set_rx_handler(t, (span_rx_handler_t) &v27ter_rx, (span_rx_fillin_handler_t) &v27ter_v21_rx_fillin, &s->fast_modems.v27ter_rx);
}
else
{
@ -318,7 +318,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
if (s->rx_signal_present)
{
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
/*endif*/
}
@ -353,7 +353,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
set_rx_handler(t, (span_rx_handler_t *) &v29_rx, (span_rx_fillin_handler_t *) &v29_rx_fillin, &s->fast_modems.v29_rx);
set_rx_handler(t, (span_rx_handler_t) &v29_rx, (span_rx_fillin_handler_t) &v29_rx_fillin, &s->fast_modems.v29_rx);
}
else
{
@ -361,7 +361,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
if (s->rx_signal_present)
{
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
/*endif*/
}
@ -440,9 +440,9 @@ static int set_next_tx_type(t38_gateway_state_t *s)
/* There is a handler queued, so that is the next one. */
set_tx_handler(s, t->next_tx_handler, t->next_tx_user_data);
set_next_tx_handler(s, NULL, NULL);
if (t->tx_handler == (span_tx_handler_t *) &(silence_gen)
if (t->tx_handler == (span_tx_handler_t) &(silence_gen)
||
t->tx_handler == (span_tx_handler_t *) &(tone_gen))
t->tx_handler == (span_tx_handler_t) &(tone_gen))
{
set_rx_active(s, TRUE);
}
@ -489,23 +489,23 @@ static int set_next_tx_type(t38_gateway_state_t *s)
t->tx_bit_rate = 0;
/* Impose 75ms minimum on transmitted silence */
//silence_gen_set(&t->silence_gen, ms_to_samples(75));
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
set_rx_active(s, TRUE);
break;
case T38_IND_CNG:
t->tx_bit_rate = 0;
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
silence_gen_set(&t->silence_gen, 0);
set_next_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_rx_active(s, TRUE);
break;
case T38_IND_CED:
t->tx_bit_rate = 0;
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED);
set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
set_rx_active(s, TRUE);
break;
case T38_IND_V21_PREAMBLE:
@ -515,8 +515,8 @@ static int set_next_tx_type(t38_gateway_state_t *s)
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
u->buf[u->in].len = 0;
fsk_tx_init(&t->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &t->hdlc_tx);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) &fsk_tx, &t->v21_tx);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V27TER_2400_TRAINING:
@ -534,8 +534,8 @@ static int set_next_tx_type(t38_gateway_state_t *s)
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
v27ter_tx_restart(&t->fast_modems.v27ter_tx, t->tx_bit_rate, t->use_tep);
v27ter_tx_set_get_bit(&t->fast_modems.v27ter_tx, get_bit_func, get_bit_user_data);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) &v27ter_tx, &t->fast_modems.v27ter_tx);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V29_7200_TRAINING:
@ -553,8 +553,8 @@ static int set_next_tx_type(t38_gateway_state_t *s)
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
v29_tx_restart(&t->fast_modems.v29_tx, t->tx_bit_rate, t->use_tep);
v29_tx_set_get_bit(&t->fast_modems.v29_tx, get_bit_func, get_bit_user_data);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) &v29_tx, &t->fast_modems.v29_tx);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V17_7200_SHORT_TRAINING:
@ -601,8 +601,8 @@ static int set_next_tx_type(t38_gateway_state_t *s)
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
v17_tx_restart(&t->fast_modems.v17_tx, t->tx_bit_rate, t->use_tep, short_train);
v17_tx_set_get_bit(&t->fast_modems.v17_tx, get_bit_func, get_bit_user_data);
set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t *) &v17_tx, &t->fast_modems.v17_tx);
set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_next_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V8_ANSAM:
@ -2185,7 +2185,7 @@ static int restart_rx_modem(t38_gateway_state_t *s)
s->core.fast_rx_active = FAX_MODEM_V17_RX;
break;
default:
set_rx_handler(s, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &t->v21_rx);
set_rx_handler(s, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
s->core.fast_rx_active = FAX_MODEM_NONE;
break;
}
@ -2393,7 +2393,7 @@ SPAN_DECLARE(void) t38_gateway_set_fill_bit_removal(t38_gateway_state_t *s, int
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t38_gateway_set_real_time_frame_handler(t38_gateway_state_t *s,
t38_gateway_real_time_frame_handler_t *handler,
t38_gateway_real_time_frame_handler_t handler,
void *user_data)
{
s->core.real_time_frame_handler = handler;
@ -2424,7 +2424,7 @@ static int t38_gateway_audio_init(t38_gateway_state_t *s)
/*- End of function --------------------------------------------------------*/
static int t38_gateway_t38_init(t38_gateway_state_t *t,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
t38_gateway_t38_state_t *s;
@ -2447,7 +2447,7 @@ static int t38_gateway_t38_init(t38_gateway_state_t *t,
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
if (tx_packet_handler == NULL)

View File

@ -1446,7 +1446,7 @@ static int t38_terminal_t38_fe_restart(t38_terminal_state_t *t)
/*- End of function --------------------------------------------------------*/
static int t38_terminal_t38_fe_init(t38_terminal_state_t *t,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
t38_terminal_front_end_state_t *s;
@ -1495,7 +1495,7 @@ SPAN_DECLARE(int) t38_terminal_restart(t38_terminal_state_t *s,
SPAN_DECLARE(t38_terminal_state_t *) t38_terminal_init(t38_terminal_state_t *s,
int calling_party,
t38_tx_packet_handler_t *tx_packet_handler,
t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
if (tx_packet_handler == NULL)

View File

@ -1040,7 +1040,7 @@ SPAN_DECLARE(int) v8_restart(v8_state_t *s, int calling_party, v8_parms_t *parms
SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int calling_party,
v8_parms_t *parms,
v8_result_handler_t *result_handler,
v8_result_handler_t result_handler,
void *user_data)
{
if (s == NULL)

View File

@ -543,7 +543,6 @@ static int create_error_page(TIFF *tiff_file)
int main(int argc, char *argv[])
{
int row;
TIFF *tiff_file;
struct tm *tm;
time_t now;
@ -553,24 +552,13 @@ int main(int argc, char *argv[])
int i;
int image_length;
int opt;
int compression;
compression = T4_COMPRESSION_ITU_T6;
photo_metric = PHOTOMETRIC_MINISWHITE;
fill_order = FILLORDER_LSB2MSB;
while ((opt = getopt(argc, argv, "126ir")) != -1)
while ((opt = getopt(argc, argv, "ir")) != -1)
{
switch (opt)
{
case '1':
compression = T4_COMPRESSION_ITU_T4_1D;
break;
case '2':
compression = T4_COMPRESSION_ITU_T4_2D;
break;
case '6':
compression = T4_COMPRESSION_ITU_T6;
break;
case 'i':
photo_metric = PHOTOMETRIC_MINISBLACK;
break;
@ -637,7 +625,6 @@ int main(int argc, char *argv[])
image_length = sequence[i].length;
/* Write the image first.... */
row = 0;
switch (sequence[i].type)
{
case 0:

View File

@ -334,7 +334,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
s->rx_handler = (span_rx_handler_t *) &v17_rx;
s->rx_handler = (span_rx_handler_t) &v17_rx;
s->rx_user_data = &s->fast_modems.v17_rx;
}
return 0;
@ -355,7 +355,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
s->rx_handler = (span_rx_handler_t *) &v27ter_rx;
s->rx_handler = (span_rx_handler_t) &v27ter_rx;
s->rx_user_data = &s->fast_modems.v27ter_rx;
}
return 0;
@ -376,7 +376,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
s->rx_handler = (span_rx_handler_t *) &v29_rx;
s->rx_handler = (span_rx_handler_t) &v29_rx;
s->rx_user_data = &s->fast_modems.v29_rx;
}
return 0;
@ -482,7 +482,7 @@ void faxtester_set_rx_type(void *user_data, int type, int bit_rate, int short_tr
tone,
tone_detected,
(void *) s);
t->rx_handler = (span_rx_handler_t *) &modem_connect_tones_rx;
t->rx_handler = (span_rx_handler_t) &modem_connect_tones_rx;
t->rx_user_data = &t->connect_rx;
s->tone_state = MODEM_CONNECT_TONES_NONE;
break;
@ -491,31 +491,31 @@ void faxtester_set_rx_type(void *user_data, int type, int bit_rate, int short_tr
s->flush_handler(s, s->flush_user_data, 3);
fsk_rx_init(&t->v21_rx, &preset_fsk_specs[FSK_V21CH2], FSK_FRAME_MODE_SYNC, (put_bit_func_t) hdlc_rx_put_bit, put_bit_user_data);
fsk_rx_signal_cutoff(&t->v21_rx, -45.5);
t->rx_handler = (span_rx_handler_t *) &fsk_rx;
t->rx_handler = (span_rx_handler_t) &fsk_rx;
t->rx_user_data = &t->v21_rx;
break;
case T30_MODEM_V27TER:
v27ter_rx_restart(&t->fast_modems.v27ter_rx, bit_rate, FALSE);
v27ter_rx_set_put_bit(&t->fast_modems.v27ter_rx, put_bit_func, put_bit_user_data);
t->rx_handler = (span_rx_handler_t *) &v27ter_v21_rx;
t->rx_handler = (span_rx_handler_t) &v27ter_v21_rx;
t->rx_user_data = s;
break;
case T30_MODEM_V29:
v29_rx_restart(&t->fast_modems.v29_rx, bit_rate, FALSE);
v29_rx_set_put_bit(&t->fast_modems.v29_rx, put_bit_func, put_bit_user_data);
t->rx_handler = (span_rx_handler_t *) &v29_v21_rx;
t->rx_handler = (span_rx_handler_t) &v29_v21_rx;
t->rx_user_data = s;
break;
case T30_MODEM_V17:
v17_rx_restart(&t->fast_modems.v17_rx, bit_rate, short_train);
v17_rx_set_put_bit(&t->fast_modems.v17_rx, put_bit_func, put_bit_user_data);
t->rx_handler = (span_rx_handler_t *) &v17_v21_rx;
t->rx_handler = (span_rx_handler_t) &v17_v21_rx;
t->rx_user_data = s;
break;
case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
default:
t->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
t->rx_handler = (span_rx_handler_t) &span_dummy_rx;
t->rx_user_data = s;
break;
}
@ -549,7 +549,7 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
{
case T30_MODEM_PAUSE:
silence_gen_alter(&t->silence_gen, ms_to_samples(short_train));
t->tx_handler = (span_tx_handler_t *) &silence_gen;
t->tx_handler = (span_tx_handler_t) &silence_gen;
t->tx_user_data = &t->silence_gen;
s->transmit = TRUE;
break;
@ -560,14 +560,14 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
else
tone = MODEM_CONNECT_TONES_FAX_CNG;
modem_connect_tones_tx_init(&t->connect_tx, tone);
t->tx_handler = (span_tx_handler_t *) &modem_connect_tones_tx;
t->tx_handler = (span_tx_handler_t) &modem_connect_tones_tx;
t->tx_user_data = &t->connect_tx;
s->transmit = TRUE;
break;
case T30_MODEM_V21:
fsk_tx_init(&t->v21_tx, &preset_fsk_specs[FSK_V21CH2], get_bit_func, get_bit_user_data);
fsk_tx_set_modem_status_handler(&t->v21_tx, modem_tx_status, (void *) s);
t->tx_handler = (span_tx_handler_t *) &fsk_tx;
t->tx_handler = (span_tx_handler_t) &fsk_tx;
t->tx_user_data = &t->v21_tx;
s->transmit = TRUE;
break;
@ -575,7 +575,7 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
v27ter_tx_restart(&t->fast_modems.v27ter_tx, bit_rate, t->use_tep);
v27ter_tx_set_get_bit(&t->fast_modems.v27ter_tx, get_bit_func, get_bit_user_data);
v27ter_tx_set_modem_status_handler(&t->fast_modems.v27ter_tx, modem_tx_status, (void *) s);
t->tx_handler = (span_tx_handler_t *) &v27ter_tx;
t->tx_handler = (span_tx_handler_t) &v27ter_tx;
t->tx_user_data = &t->fast_modems.v27ter_tx;
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
@ -585,7 +585,7 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
v29_tx_restart(&t->fast_modems.v29_tx, bit_rate, t->use_tep);
v29_tx_set_get_bit(&t->fast_modems.v29_tx, get_bit_func, get_bit_user_data);
v29_tx_set_modem_status_handler(&t->fast_modems.v29_tx, modem_tx_status, (void *) s);
t->tx_handler = (span_tx_handler_t *) &v29_tx;
t->tx_handler = (span_tx_handler_t) &v29_tx;
t->tx_user_data = &t->fast_modems.v29_tx;
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
@ -595,7 +595,7 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
v17_tx_restart(&t->fast_modems.v17_tx, bit_rate, t->use_tep, short_train);
v17_tx_set_get_bit(&t->fast_modems.v17_tx, get_bit_func, get_bit_user_data);
v17_tx_set_modem_status_handler(&t->fast_modems.v17_tx, modem_tx_status, (void *) s);
t->tx_handler = (span_tx_handler_t *) &v17_tx;
t->tx_handler = (span_tx_handler_t) &v17_tx;
t->tx_user_data = &t->fast_modems.v17_tx;
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
@ -606,7 +606,7 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
/* Fall through */
default:
silence_gen_alter(&t->silence_gen, 0);
t->tx_handler = (span_tx_handler_t *) &silence_gen;
t->tx_handler = (span_tx_handler_t) &silence_gen;
t->tx_user_data = &t->silence_gen;
s->transmit = FALSE;
break;
@ -636,21 +636,21 @@ void faxtester_set_tep_mode(faxtester_state_t *s, int use_tep)
}
/*- End of function --------------------------------------------------------*/
void faxtester_set_real_time_frame_handler(faxtester_state_t *s, faxtester_real_time_frame_handler_t *handler, void *user_data)
void faxtester_set_real_time_frame_handler(faxtester_state_t *s, faxtester_real_time_frame_handler_t handler, void *user_data)
{
s->real_time_frame_handler = handler;
s->real_time_frame_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
void faxtester_set_front_end_step_complete_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t *handler, void *user_data)
void faxtester_set_front_end_step_complete_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t handler, void *user_data)
{
s->front_end_step_complete_handler = handler;
s->front_end_step_complete_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
void faxtester_set_front_end_step_timeout_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t *handler, void *user_data)
void faxtester_set_front_end_step_timeout_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t handler, void *user_data)
{
s->front_end_step_timeout_handler = handler;
s->front_end_step_timeout_user_data = user_data;
@ -686,9 +686,9 @@ static void faxtester_fax_modems_init(fax_modems_state_t *s, int use_tep, void *
dc_restore_init(&s->dc_restore);
s->rx_signal_present = FALSE;
s->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
s->rx_handler = (span_rx_handler_t) &span_dummy_rx;
s->rx_user_data = NULL;
s->tx_handler = (span_tx_handler_t *) &silence_gen;
s->tx_handler = (span_tx_handler_t) &silence_gen;
s->tx_user_data = &s->silence_gen;
}
/*- End of function --------------------------------------------------------*/
@ -725,7 +725,7 @@ int faxtester_free(faxtester_state_t *s)
}
/*- End of function --------------------------------------------------------*/
void faxtester_set_flush_handler(faxtester_state_t *s, faxtester_flush_handler_t *handler, void *user_data)
void faxtester_set_flush_handler(faxtester_state_t *s, faxtester_flush_handler_t handler, void *user_data)
{
s->flush_handler = handler;
s->flush_user_data = user_data;

View File

@ -102,14 +102,12 @@ int rows_read = 0;
static void dump_image_as_xxx(t4_state_t *state)
{
uint8_t *s;
int i;
int j;
int k;
/* Dump the entire image as text 'X's and spaces */
printf("Image (%d x %d):\n", receive_state.image_width, receive_state.image_length);
s = state->image_buffer;
for (i = 0; i < state->image_length; i++)
{
for (j = 0; j < state->bytes_per_row; j++)
@ -305,7 +303,7 @@ int main(int argc, char *argv[])
int compression;
int compression_step;
int add_page_headers;
int overlay_page_headers;
//int overlay_page_headers;
int min_row_bits;
int restart_pages;
int block_size;
@ -329,7 +327,7 @@ int main(int argc, char *argv[])
compression = -1;
compression_step = 0;
add_page_headers = FALSE;
overlay_page_headers = FALSE;
//overlay_page_headers = FALSE;
restart_pages = FALSE;
in_file_name = IN_FILE_NAME;
decode_file_name = NULL;
@ -395,11 +393,11 @@ int main(int argc, char *argv[])
break;
case 'h':
add_page_headers = TRUE;
overlay_page_headers = FALSE;
//overlay_page_headers = FALSE;
break;
case 'H':
add_page_headers = TRUE;
overlay_page_headers = TRUE;
//overlay_page_headers = TRUE;
break;
case 'r':
restart_pages = TRUE;