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 offset;
float amp; float amp;
float phase; float phase;
float delay; //float delay;
float pw; float pw;
#if defined(HAVE_FFTW3_H) #if defined(HAVE_FFTW3_H)
double in[FFT_SIZE][2]; 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 = (1.0 - offset)*ad[l - 1].ad[j] + offset*ad[l].ad[j];
amp = pow(10.0, -amp/20.0); amp = pow(10.0, -amp/20.0);
} }
delay = 0.0f; //delay = 0.0f;
for (l = 0; l < (int) (sizeof(edd)/sizeof(edd[0])); l++) for (l = 0; l < (int) (sizeof(edd)/sizeof(edd[0])); l++)
{ {
if (f < edd[l].freq) if (f < edd[l].freq)
@ -845,7 +845,7 @@ static void generate_ad_edd(void)
if (l < (int) (sizeof(edd)/sizeof(edd[0]))) if (l < (int) (sizeof(edd)/sizeof(edd[0])))
{ {
offset = (f - edd[l - 1].freq)/(edd[l].freq - edd[l - 1].freq); 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 = 2.0f*M_PI*f*delay*0.001f;
phase = 0.0f; phase = 0.0f;
@ -915,7 +915,7 @@ static void generate_proakis(void)
float offset; float offset;
float amp; float amp;
float phase; float phase;
float delay; //float delay;
float pw; float pw;
int index; int index;
int i; int i;
@ -953,7 +953,7 @@ static void generate_proakis(void)
/* Linear interpolation */ /* Linear interpolation */
amp = ((1.0f - offset)*proakis[index].amp + offset*proakis[index + 1].amp)/2.3f; 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 = 2.0f*M_PI*f*delay*0.001f;
phase = 0.0f; phase = 0.0f;
#if defined(HAVE_FFTW3_H) #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 --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(at_state_t *) at_init(at_state_t *s, 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, 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) void *modem_control_user_data)
{ {
if (s == NULL) if (s == NULL)

View File

@ -173,8 +173,8 @@ static void hdlc_underflow_handler(void *user_data)
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
static void set_rx_handler(fax_state_t *s, static void set_rx_handler(fax_state_t *s,
span_rx_handler_t *rx_handler, span_rx_handler_t rx_handler,
span_rx_fillin_handler_t *fillin_handler, span_rx_fillin_handler_t fillin_handler,
void *user_data) void *user_data)
{ {
s->modems.rx_handler = rx_handler; s->modems.rx_handler = rx_handler;
@ -183,14 +183,14 @@ static void set_rx_handler(fax_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->modems.tx_user_data = user_data; s->modems.tx_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->modems.next_tx_user_data = user_data; 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. */ /* 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)); 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 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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; 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. */ /* 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)); 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 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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; 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. */ /* 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)); 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 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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; 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 */ /* If there is nothing else to change to, so use zero length silence */
silence_gen_alter(&t->silence_gen, 0); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE; t->transmit = FALSE;
return -1; 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: 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_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); 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; break;
case T30_MODEM_V27TER: case T30_MODEM_V27TER:
v27ter_rx_restart(&t->fast_modems.v27ter_rx, bit_rate, FALSE); 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: case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n"); span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
default: 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; 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: case T30_MODEM_PAUSE:
silence_gen_alter(&t->silence_gen, ms_to_samples(short_train)); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE; t->transmit = TRUE;
break; break;
case T30_MODEM_CED: 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 else
tone = MODEM_CONNECT_TONES_FAX_CNG; tone = MODEM_CONNECT_TONES_FAX_CNG;
modem_connect_tones_tx_init(&t->connect_tx, tone); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE; t->transmit = TRUE;
break; break;
case T30_MODEM_V21: 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 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. */ a call, and ensures the receiving end is ready. */
silence_gen_alter(&t->silence_gen, ms_to_samples(75)); 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_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_next_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
t->transmit = TRUE; t->transmit = TRUE;
break; break;
case T30_MODEM_V27TER: 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)); 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_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_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_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_next_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
t->transmit = TRUE; t->transmit = TRUE;
break; break;
case T30_MODEM_V29: 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)); 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_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_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_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_next_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
t->transmit = TRUE; t->transmit = TRUE;
break; break;
case T30_MODEM_V17: 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)); 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_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_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_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_next_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
t->transmit = TRUE; t->transmit = TRUE;
break; break;
case T30_MODEM_DONE: 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 */ /* Fall through */
default: default:
silence_gen_alter(&t->silence_gen, 0); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE; t->transmit = FALSE;
break; 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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_handler = (span_rx_handler_t) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin; s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx; s->rx_user_data = &s->v21_rx;
} }
return 0; 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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_handler = (span_rx_handler_t) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin; s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx; s->rx_user_data = &s->v21_rx;
} }
return 0; 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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_handler = (span_rx_handler_t) &fsk_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin; s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx; s->rx_user_data = &s->v21_rx;
} }
return 0; 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) static void v21_rx_status_handler(void *user_data, int status)
{ {
#if 0
fax_modems_state_t *s; fax_modems_state_t *s;
s = (fax_modems_state_t *) user_data; s = (fax_modems_state_t *) user_data;
#endif
} }
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
@ -196,8 +198,8 @@ static void v17_rx_status_handler(void *user_data, int status)
{ {
case SIG_STATUS_TRAINING_SUCCEEDED: 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)); 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_handler = (span_rx_handler_t) &v17_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v17_rx_fillin; s->rx_fillin_handler = (span_rx_fillin_handler_t) &v17_rx_fillin;
s->rx_user_data = &s->fast_modems.v17_rx; s->rx_user_data = &s->fast_modems.v17_rx;
break; break;
} }
@ -213,8 +215,8 @@ static void v27ter_rx_status_handler(void *user_data, int status)
{ {
case SIG_STATUS_TRAINING_SUCCEEDED: 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)); 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_handler = (span_rx_handler_t) &v27ter_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v27ter_rx_fillin; s->rx_fillin_handler = (span_rx_fillin_handler_t) &v27ter_rx_fillin;
s->rx_user_data = &s->fast_modems.v27ter_rx; s->rx_user_data = &s->fast_modems.v27ter_rx;
break; break;
} }
@ -230,8 +232,8 @@ static void v29_rx_status_handler(void *user_data, int status)
{ {
case SIG_STATUS_TRAINING_SUCCEEDED: 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)); 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_handler = (span_rx_handler_t) &v29_rx;
s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v29_rx_fillin; s->rx_fillin_handler = (span_rx_fillin_handler_t) &v29_rx_fillin;
s->rx_user_data = &s->fast_modems.v29_rx; s->rx_user_data = &s->fast_modems.v29_rx;
break; 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); dc_restore_init(&s->dc_restore);
s->rx_signal_present = FALSE; 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_fillin_handler = (span_rx_fillin_handler_t *) &span_dummy_rx; s->rx_fillin_handler = (span_rx_fillin_handler_t) &span_dummy_rx;
s->rx_user_data = NULL; 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; s->tx_user_data = &s->silence_gen;
return s; return s;
} }

View File

@ -38,9 +38,9 @@ modem control commands.
typedef struct at_state_s at_state_t; 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_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_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_class1_handler_t)(at_state_t *s, void *user_data, int direction, int operation, int val);
enum at_rx_mode_e 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. \param modem_control_user_data x.
\return A pointer to the AT context, or NULL if there was a problem. */ \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, 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, 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); void *modem_control_user_data);
/*! Release an AT interpreter context. /*! Release an AT interpreter context.

View File

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

View File

@ -95,18 +95,18 @@ struct fax_modems_state_s
int rx_frame_received; int rx_frame_received;
/*! \brief The current receive signal handler */ /*! \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 */ /*! \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; void *rx_user_data;
/*! \brief The current transmit signal handler */ /*! \brief The current transmit signal handler */
span_tx_handler_t *tx_handler; span_tx_handler_t tx_handler;
void *tx_user_data; void *tx_user_data;
/*! The next transmit signal handler, for two stage transmit operations. /*! The next transmit signal handler, for two stage transmit operations.
E.g. a short silence followed by a modem signal. */ 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; void *next_tx_user_data;
/*! The current bit rate of the transmitter. */ /*! 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 /*! \brief A pointer to a callback routine to be called when phase B events
occur. */ 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. */ /*! \brief An opaque pointer supplied in event B callbacks. */
void *phase_b_user_data; void *phase_b_user_data;
/*! \brief A pointer to a callback routine to be called when phase D events /*! \brief A pointer to a callback routine to be called when phase D events
occur. */ 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. */ /*! \brief An opaque pointer supplied in event D callbacks. */
void *phase_d_user_data; void *phase_d_user_data;
/*! \brief A pointer to a callback routine to be called when phase E events /*! \brief A pointer to a callback routine to be called when phase E events
occur. */ 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. */ /*! \brief An opaque pointer supplied in event E callbacks. */
void *phase_e_user_data; void *phase_e_user_data;
/*! \brief A pointer to a callback routine to be called when frames are /*! \brief A pointer to a callback routine to be called when frames are
exchanged. */ 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. */ /*! \brief An opaque pointer supplied in real time frame callbacks. */
void *real_time_frame_user_data; void *real_time_frame_user_data;
/*! \brief A pointer to a callback routine to be called when document events /*! \brief A pointer to a callback routine to be called when document events
(e.g. end of transmitted document) occur. */ (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. */ /*! \brief An opaque pointer supplied in document callbacks. */
void *document_user_data; void *document_user_data;
/*! \brief The handler for changes to the receive mode */ /*! \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 */ /*! \brief An opaque pointer passed to the handler for changes to the receive mode */
void *set_rx_type_user_data; void *set_rx_type_user_data;
/*! \brief The handler for changes to the transmit mode */ /*! \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 */ /*! \brief An opaque pointer passed to the handler for changes to the transmit mode */
void *set_tx_type_user_data; void *set_tx_type_user_data;
/*! \brief The transmitted HDLC frame handler. */ /*! \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. */ /*! \brief An opaque pointer passed to the transmitted HDLC frame handler. */
void *send_hdlc_user_data; void *send_hdlc_user_data;

View File

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

View File

@ -32,16 +32,16 @@
struct t38_core_state_s struct t38_core_state_s
{ {
/*! \brief Handler routine to transmit IFP packets generated by the T.38 protocol engine */ /*! \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 */ /*! \brief An opaque pointer passed to tx_packet_handler */
void *tx_packet_user_data; void *tx_packet_user_data;
/*! \brief Handler routine to process received indicator packets */ /*! \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 */ /*! \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 */ /*! \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 */ /*! \brief An opaque pointer passed to any of the above receive handling routines */
void *rx_user_data; void *rx_user_data;

View File

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

View File

@ -32,7 +32,7 @@ struct v8_state_s
int calling_party; int calling_party;
/*! \brief A handler to process the V.8 signals */ /*! \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 */ /*! \brief An opaque pointer passed to result_handler */
void *result_handler_user_data; 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. \param result The phase B event code.
\return The new status. Normally, T30_ERR_OK is returned. \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. 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. \param result The phase D event code.
\return The new status. Normally, T30_ERR_OK is returned. \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. 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 user_data An opaque pointer.
\param completion_code The phase E completion code. \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. 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 msg The HDLC message.
\param len The length of the message. \param len The length of the message.
*/ */
typedef void (t30_real_time_frame_handler_t)(t30_state_t *s, typedef void (*t30_real_time_frame_handler_t)(t30_state_t *s,
void *user_data, void *user_data,
int direction, int direction,
const uint8_t msg[], const uint8_t msg[],
int len); int len);
/*! /*!
T.30 document handler. 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 user_data An opaque pointer.
\param result The document event code. \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. 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 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 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. 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 msg The HDLC message.
\param len The length of the 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. 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. */ \return A pointer to the context, or NULL if there was a problem. */
SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s, SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
int calling_party, 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, 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, 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); void *send_hdlc_user_data);
/*! Release a T.30 context. /*! 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 s The T.30 context.
\param handler The callback function. \param handler The callback function.
\param user_data An opaque pointer passed to 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. /*! Set a callback function for T.30 phase D handling.
\brief 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 s The T.30 context.
\param handler The callback function. \param handler The callback function.
\param user_data An opaque pointer passed to 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. /*! Set a callback function for T.30 phase E handling.
\brief 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 s The T.30 context.
\param handler The callback function. \param handler The callback function.
\param user_data An opaque pointer passed to 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. /*! Set a callback function for T.30 end of document handling.
\brief 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 s The T.30 context.
\param handler The callback function. \param handler The callback function.
\param user_data An opaque pointer passed to 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 /*! 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. 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 s The T.30 context.
\param handler The callback function. \param handler The callback function.
\param user_data An opaque pointer passed to 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. /*! 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. \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 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_LEN (4096)
#define T31_TX_BUF_HIGH_TIDE (4096 - 1024) #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 ??? \param tx_t38_packet_user_data ???
\return A pointer to the T.31 context. */ \return A pointer to the T.31 context. */
SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s, 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, 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, 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); void *tx_t38_packet_user_data);
/*! Release a T.31 context. /*! Release a T.31 context.

View File

@ -201,11 +201,11 @@ typedef struct
*/ */
typedef struct t38_core_state_s t38_core_state_t; 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_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_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_missing_handler_t)(t38_core_state_t *s, void *user_data, int rx_seq_no, int expected_seq_no);
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" 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. \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. */ \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, SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
t38_rx_indicator_handler_t *rx_indicator_handler, t38_rx_indicator_handler_t rx_indicator_handler,
t38_rx_data_handler_t *rx_data_handler, t38_rx_data_handler_t rx_data_handler,
t38_rx_missing_handler_t *rx_missing_handler, t38_rx_missing_handler_t rx_missing_handler,
void *rx_user_data, 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); void *tx_packet_user_data);
/*! Release a signaling tone transmitter context. /*! 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 msg The HDLC message.
\param len The length of the message. \param len The length of the message.
*/ */
typedef void (t38_gateway_real_time_frame_handler_t)(t38_gateway_state_t *s, typedef void (*t38_gateway_real_time_frame_handler_t)(t38_gateway_state_t *s,
void *user_data, void *user_data,
int direction, int direction,
const uint8_t *msg, const uint8_t *msg,
int len); int len);
/*! /*!
T.38 gateway results. 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. \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. */ \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, 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); void *tx_packet_user_data);
/*! Release a gateway mode T.38 context. /*! 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 handler The callback function.
\param user_data An opaque pointer passed to 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, 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); void *user_data);
#if defined(__cplusplus) #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. */ \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, SPAN_DECLARE(t38_terminal_state_t *) t38_terminal_init(t38_terminal_state_t *s,
int calling_party, int calling_party,
t38_tx_packet_handler_t *tx_packet_handler, t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data); void *tx_packet_user_data);
/*! Release a termination mode T.38 context. /*! Release a termination mode T.38 context.

View File

@ -56,16 +56,16 @@
#define DBOV_MAX_SINE_POWER (-3.02f) #define DBOV_MAX_SINE_POWER (-3.02f)
/*! \brief A handler for pure receive. The buffer cannot be altered. */ /*! \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. */ /*! \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. */ /*! \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. */ /*! \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 ms_to_samples(t) ((t)*(SAMPLE_RATE/1000))
#define us_to_samples(t) ((t)/(1000000/SAMPLE_RATE)) #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 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 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, SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int calling_party, int calling_party,
v8_parms_t *parms, v8_parms_t *parms,
v8_result_handler_t *result_handler, v8_result_handler_t result_handler,
void *user_data); void *user_data);
/*! Release a V.8 context. /*! 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, SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
int calling_party, 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, 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, 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) void *send_hdlc_user_data)
{ {
if (s == NULL) 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 --------------------------------------------------------*/ /*- 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_handler = handler;
s->phase_b_user_data = user_data; s->phase_b_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->phase_d_user_data = user_data; s->phase_d_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->phase_e_user_data = user_data; s->phase_e_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->document_user_data = user_data; s->document_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->real_time_frame_user_data = user_data; 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 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 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_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_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_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(void *user_data, const int16_t amp[], int len);
static int v17_v21_rx_fillin(void *user_data, 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); 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 --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
#if 0
static void v8_handler(void *user_data, v8_parms_t *result) static void v8_handler(void *user_data, v8_parms_t *result)
{ {
t31_state_t *s; 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"); span_log(&s->logging, SPAN_LOG_FLOW, "V.8 report received\n");
} }
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
#endif
static void hdlc_tx_underflow(void *user_data) 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_signal_present = FALSE;
s->at_state.rx_trained = FALSE; s->at_state.rx_trained = FALSE;
s->rx_frame_received = 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; use_hdlc = FALSE;
switch (s->modem) 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 /* Do V.21/HDLC receive in parallel. The other end may send its
first message at any time. The CNG tone will continue until first message at any time. The CNG tone will continue until
we get a valid preamble. */ 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); t31_v21_rx(s);
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);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL); set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->at_state.transmit = TRUE; s->at_state.transmit = TRUE;
break; break;
@ -1596,10 +1598,10 @@ static int restart_modem(t31_state_t *s, int new_modem)
} }
else 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); t31_v21_rx(s);
silence_gen_set(&t->silence_gen, 0); 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; s->at_state.transmit = FALSE;
break; break;
@ -1613,8 +1615,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else else
{ {
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->at_state.transmit = TRUE; s->at_state.transmit = TRUE;
break; 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. */ /* The spec says 1s +-15% of preamble. So, the minimum is 32 octets. */
hdlc_tx_flags(&t->hdlc_tx, 32); 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); 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_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL); set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->hdlc_tx.final = FALSE; s->hdlc_tx.final = FALSE;
s->hdlc_tx.len = 0; s->hdlc_tx.len = 0;
@ -1647,7 +1649,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
} }
else 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); t31_v21_rx(s);
} }
break; break;
@ -1679,8 +1681,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else else
{ {
v17_tx_restart(&t->fast_modems.v17_tx, s->bit_rate, FALSE, s->short_train); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->tx.out_bytes = 0; s->tx.out_bytes = 0;
s->tx.data_started = FALSE; 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: case FAX_MODEM_V17_RX:
if (!s->t38_mode) 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); v17_rx_restart(&t->fast_modems.v17_rx, s->bit_rate, s->short_train);
/* Allow for +FCERROR/+FRH:3 */ /* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s); t31_v21_rx(s);
@ -1716,8 +1718,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else else
{ {
v27ter_tx_restart(&t->fast_modems.v27ter_tx, s->bit_rate, FALSE); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->tx.out_bytes = 0; s->tx.out_bytes = 0;
s->tx.data_started = FALSE; 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: case FAX_MODEM_V27TER_RX:
if (!s->t38_mode) 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); v27ter_rx_restart(&t->fast_modems.v27ter_rx, s->bit_rate, FALSE);
/* Allow for +FCERROR/+FRH:3 */ /* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s); t31_v21_rx(s);
@ -1753,8 +1755,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
else else
{ {
v29_tx_restart(&t->fast_modems.v29_tx, s->bit_rate, FALSE); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->tx.out_bytes = 0; s->tx.out_bytes = 0;
s->tx.data_started = FALSE; 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: case FAX_MODEM_V29_RX:
if (!s->t38_mode) 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); v29_rx_restart(&t->fast_modems.v29_rx, s->bit_rate, FALSE);
/* Allow for +FCERROR/+FRH:3 */ /* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s); t31_v21_rx(s);
@ -1781,18 +1783,18 @@ static int restart_modem(t31_state_t *s, int new_modem)
else else
{ {
silence_gen_set(&t->silence_gen, 0); 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);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL); set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->at_state.transmit = FALSE; s->at_state.transmit = FALSE;
break; break;
case FAX_MODEM_SILENCE_RX: case FAX_MODEM_SILENCE_RX:
if (!s->t38_mode) 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); 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);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL); set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
} }
s->at_state.transmit = FALSE; s->at_state.transmit = FALSE;
break; break;
@ -1806,8 +1808,8 @@ static int restart_modem(t31_state_t *s, int new_modem)
{ {
s->modem = FAX_MODEM_SILENCE_TX; s->modem = FAX_MODEM_SILENCE_TX;
silence_gen_alter(&t->silence_gen, ms_to_samples(200)); silence_gen_alter(&t->silence_gen, ms_to_samples(200));
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);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL); set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
s->at_state.transmit = TRUE; s->at_state.transmit = TRUE;
} }
break; 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.rx_data_bytes = 0;
s->at_state.transmit = FALSE; s->at_state.transmit = FALSE;
s->modem = FAX_MODEM_SILENCE_TX; 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); t31_set_at_rx_mode(s, AT_MODE_OFFHOOK_COMMAND);
at_put_response_code(&s->at_state, AT_RESPONSE_CODE_OK); 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 --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
static void set_rx_handler(t31_state_t *s, static void set_rx_handler(t31_state_t *s,
span_rx_handler_t *rx_handler, span_rx_handler_t rx_handler,
span_rx_fillin_handler_t *fillin_handler, span_rx_fillin_handler_t fillin_handler,
void *user_data) void *user_data)
{ {
s->audio.modems.rx_handler = rx_handler; s->audio.modems.rx_handler = rx_handler;
@ -2187,14 +2189,14 @@ static void set_rx_handler(t31_state_t *s,
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->audio.modems.tx_user_data = user_data; s->audio.modems.tx_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->audio.modems.next_tx_user_data = user_data; 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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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; 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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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; 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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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 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 /* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */ 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)); 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; return len;
@ -2461,13 +2463,13 @@ static int set_next_tx_type(t31_state_t *s)
if (s->audio.next_tx_handler) if (s->audio.next_tx_handler)
{ {
set_tx_handler(s, s->audio.next_tx_handler, s->audio.next_tx_user_data); 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; return 0;
} }
/* There is nothing else to change to, so use zero length silence */ /* There is nothing else to change to, so use zero length silence */
silence_gen_alter(&s->audio.modems.silence_gen, 0); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
return -1; return -1;
} }
/*- End of function --------------------------------------------------------*/ /*- 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 --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
static int t31_t38_fe_init(t31_state_t *t, 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) void *tx_packet_user_data)
{ {
t31_t38_front_end_state_t *s; t31_t38_front_end_state_t *s;
@ -2589,11 +2591,11 @@ static int t31_t38_fe_init(t31_state_t *t,
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s, 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, 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, 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) void *tx_t38_packet_user_data)
{ {
#if 0 #if 0

View File

@ -1100,11 +1100,11 @@ SPAN_DECLARE(int) t38_core_restart(t38_core_state_t *s)
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s, SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
t38_rx_indicator_handler_t *rx_indicator_handler, t38_rx_indicator_handler_t rx_indicator_handler,
t38_rx_data_handler_t *rx_data_handler, t38_rx_data_handler_t rx_data_handler,
t38_rx_missing_handler_t *rx_missing_handler, t38_rx_missing_handler_t rx_missing_handler,
void *rx_user_data, 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) void *tx_packet_user_data)
{ {
if (s == NULL) 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 non_ecm_push_residue(t38_gateway_state_t *s);
static void tone_detected(void *user_data, int tone, int level, int delay); 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) 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 --------------------------------------------------------*/ /*- 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_handler = handler;
s->audio.modems.tx_user_data = user_data; s->audio.modems.tx_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->audio.modems.next_tx_user_data = user_data; 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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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 else
{ {
@ -275,7 +275,7 @@ static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
if (s->rx_signal_present) 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)); 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*/ /*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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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 else
{ {
@ -318,7 +318,7 @@ static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
if (s->rx_signal_present) 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)); 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*/ /*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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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 else
{ {
@ -361,7 +361,7 @@ static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
if (s->rx_signal_present) 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)); 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*/ /*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. */ /* 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_tx_handler(s, t->next_tx_handler, t->next_tx_user_data);
set_next_tx_handler(s, NULL, NULL); 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); 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; t->tx_bit_rate = 0;
/* Impose 75ms minimum on transmitted silence */ /* Impose 75ms minimum on transmitted silence */
//silence_gen_set(&t->silence_gen, ms_to_samples(75)); //silence_gen_set(&t->silence_gen, ms_to_samples(75));
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);
set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL); set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
set_rx_active(s, TRUE); set_rx_active(s, TRUE);
break; break;
case T38_IND_CNG: case T38_IND_CNG:
t->tx_bit_rate = 0; t->tx_bit_rate = 0;
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CNG); 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); 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); set_rx_active(s, TRUE);
break; break;
case T38_IND_CED: case T38_IND_CED:
t->tx_bit_rate = 0; t->tx_bit_rate = 0;
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED); 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_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_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
set_rx_active(s, TRUE); set_rx_active(s, TRUE);
break; break;
case T38_IND_V21_PREAMBLE: 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)); silence_gen_alter(&t->silence_gen, ms_to_samples(75));
u->buf[u->in].len = 0; 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); 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_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_next_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
set_rx_active(s, TRUE); set_rx_active(s, TRUE);
break; break;
case T38_IND_V27TER_2400_TRAINING: 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)); 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_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); 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_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_next_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
set_rx_active(s, TRUE); set_rx_active(s, TRUE);
break; break;
case T38_IND_V29_7200_TRAINING: 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)); 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_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); 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_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_next_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
set_rx_active(s, TRUE); set_rx_active(s, TRUE);
break; break;
case T38_IND_V17_7200_SHORT_TRAINING: 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)); 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_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); 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_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_next_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
set_rx_active(s, TRUE); set_rx_active(s, TRUE);
break; break;
case T38_IND_V8_ANSAM: 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; s->core.fast_rx_active = FAX_MODEM_V17_RX;
break; break;
default: 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; s->core.fast_rx_active = FAX_MODEM_NONE;
break; break;
} }
@ -2393,7 +2393,7 @@ SPAN_DECLARE(void) t38_gateway_set_fill_bit_removal(t38_gateway_state_t *s, int
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t38_gateway_set_real_time_frame_handler(t38_gateway_state_t *s, 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) void *user_data)
{ {
s->core.real_time_frame_handler = handler; 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 --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
static int t38_gateway_t38_init(t38_gateway_state_t *t, 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) void *tx_packet_user_data)
{ {
t38_gateway_t38_state_t *s; t38_gateway_t38_state_t *s;
@ -2447,7 +2447,7 @@ static int t38_gateway_t38_init(t38_gateway_state_t *t,
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s, 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) void *tx_packet_user_data)
{ {
if (tx_packet_handler == NULL) 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 --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
static int t38_terminal_t38_fe_init(t38_terminal_state_t *t, 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) void *tx_packet_user_data)
{ {
t38_terminal_front_end_state_t *s; 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, SPAN_DECLARE(t38_terminal_state_t *) t38_terminal_init(t38_terminal_state_t *s,
int calling_party, int calling_party,
t38_tx_packet_handler_t *tx_packet_handler, t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data) void *tx_packet_user_data)
{ {
if (tx_packet_handler == NULL) 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, SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int calling_party, int calling_party,
v8_parms_t *parms, v8_parms_t *parms,
v8_result_handler_t *result_handler, v8_result_handler_t result_handler,
void *user_data) void *user_data)
{ {
if (s == NULL) if (s == NULL)

View File

@ -543,7 +543,6 @@ static int create_error_page(TIFF *tiff_file)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
int row;
TIFF *tiff_file; TIFF *tiff_file;
struct tm *tm; struct tm *tm;
time_t now; time_t now;
@ -553,24 +552,13 @@ int main(int argc, char *argv[])
int i; int i;
int image_length; int image_length;
int opt; int opt;
int compression;
compression = T4_COMPRESSION_ITU_T6;
photo_metric = PHOTOMETRIC_MINISWHITE; photo_metric = PHOTOMETRIC_MINISWHITE;
fill_order = FILLORDER_LSB2MSB; fill_order = FILLORDER_LSB2MSB;
while ((opt = getopt(argc, argv, "126ir")) != -1) while ((opt = getopt(argc, argv, "ir")) != -1)
{ {
switch (opt) 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': case 'i':
photo_metric = PHOTOMETRIC_MINISBLACK; photo_metric = PHOTOMETRIC_MINISBLACK;
break; break;
@ -637,7 +625,6 @@ int main(int argc, char *argv[])
image_length = sequence[i].length; image_length = sequence[i].length;
/* Write the image first.... */ /* Write the image first.... */
row = 0;
switch (sequence[i].type) switch (sequence[i].type)
{ {
case 0: 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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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; s->rx_user_data = &s->fast_modems.v17_rx;
} }
return 0; 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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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; s->rx_user_data = &s->fast_modems.v27ter_rx;
} }
return 0; 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 /* The fast modem has trained, so we no longer need to run the slow
one in parallel. */ 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)); 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; s->rx_user_data = &s->fast_modems.v29_rx;
} }
return 0; return 0;
@ -482,7 +482,7 @@ void faxtester_set_rx_type(void *user_data, int type, int bit_rate, int short_tr
tone, tone,
tone_detected, tone_detected,
(void *) s); (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; t->rx_user_data = &t->connect_rx;
s->tone_state = MODEM_CONNECT_TONES_NONE; s->tone_state = MODEM_CONNECT_TONES_NONE;
break; 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); 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_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); 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; t->rx_user_data = &t->v21_rx;
break; break;
case T30_MODEM_V27TER: case T30_MODEM_V27TER:
v27ter_rx_restart(&t->fast_modems.v27ter_rx, bit_rate, FALSE); 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); 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; t->rx_user_data = s;
break; break;
case T30_MODEM_V29: case T30_MODEM_V29:
v29_rx_restart(&t->fast_modems.v29_rx, bit_rate, FALSE); 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); 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; t->rx_user_data = s;
break; break;
case T30_MODEM_V17: case T30_MODEM_V17:
v17_rx_restart(&t->fast_modems.v17_rx, bit_rate, short_train); 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); 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; t->rx_user_data = s;
break; break;
case T30_MODEM_DONE: case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n"); span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
default: 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; t->rx_user_data = s;
break; 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: case T30_MODEM_PAUSE:
silence_gen_alter(&t->silence_gen, ms_to_samples(short_train)); 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; t->tx_user_data = &t->silence_gen;
s->transmit = TRUE; s->transmit = TRUE;
break; break;
@ -560,14 +560,14 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
else else
tone = MODEM_CONNECT_TONES_FAX_CNG; tone = MODEM_CONNECT_TONES_FAX_CNG;
modem_connect_tones_tx_init(&t->connect_tx, tone); 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; t->tx_user_data = &t->connect_tx;
s->transmit = TRUE; s->transmit = TRUE;
break; break;
case T30_MODEM_V21: case T30_MODEM_V21:
fsk_tx_init(&t->v21_tx, &preset_fsk_specs[FSK_V21CH2], get_bit_func, get_bit_user_data); 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); 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; t->tx_user_data = &t->v21_tx;
s->transmit = TRUE; s->transmit = TRUE;
break; 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_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_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); 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; t->tx_user_data = &t->fast_modems.v27ter_tx;
/* For any fast modem, set 200ms of preamble flags */ /* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5)); 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_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_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); 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; t->tx_user_data = &t->fast_modems.v29_tx;
/* For any fast modem, set 200ms of preamble flags */ /* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5)); 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_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_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); 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; t->tx_user_data = &t->fast_modems.v17_tx;
/* For any fast modem, set 200ms of preamble flags */ /* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5)); 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 */ /* Fall through */
default: default:
silence_gen_alter(&t->silence_gen, 0); 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; t->tx_user_data = &t->silence_gen;
s->transmit = FALSE; s->transmit = FALSE;
break; break;
@ -636,21 +636,21 @@ void faxtester_set_tep_mode(faxtester_state_t *s, int use_tep)
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->real_time_frame_user_data = user_data; s->real_time_frame_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->front_end_step_complete_user_data = user_data; s->front_end_step_complete_user_data = user_data;
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->front_end_step_timeout_user_data = user_data; 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); dc_restore_init(&s->dc_restore);
s->rx_signal_present = FALSE; 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->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; s->tx_user_data = &s->silence_gen;
} }
/*- End of function --------------------------------------------------------*/ /*- End of function --------------------------------------------------------*/
@ -725,7 +725,7 @@ int faxtester_free(faxtester_state_t *s)
} }
/*- End of function --------------------------------------------------------*/ /*- 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_handler = handler;
s->flush_user_data = user_data; 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) static void dump_image_as_xxx(t4_state_t *state)
{ {
uint8_t *s;
int i; int i;
int j; int j;
int k; int k;
/* Dump the entire image as text 'X's and spaces */ /* Dump the entire image as text 'X's and spaces */
printf("Image (%d x %d):\n", receive_state.image_width, receive_state.image_length); 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 (i = 0; i < state->image_length; i++)
{ {
for (j = 0; j < state->bytes_per_row; j++) for (j = 0; j < state->bytes_per_row; j++)
@ -305,7 +303,7 @@ int main(int argc, char *argv[])
int compression; int compression;
int compression_step; int compression_step;
int add_page_headers; int add_page_headers;
int overlay_page_headers; //int overlay_page_headers;
int min_row_bits; int min_row_bits;
int restart_pages; int restart_pages;
int block_size; int block_size;
@ -329,7 +327,7 @@ int main(int argc, char *argv[])
compression = -1; compression = -1;
compression_step = 0; compression_step = 0;
add_page_headers = FALSE; add_page_headers = FALSE;
overlay_page_headers = FALSE; //overlay_page_headers = FALSE;
restart_pages = FALSE; restart_pages = FALSE;
in_file_name = IN_FILE_NAME; in_file_name = IN_FILE_NAME;
decode_file_name = NULL; decode_file_name = NULL;
@ -395,11 +393,11 @@ int main(int argc, char *argv[])
break; break;
case 'h': case 'h':
add_page_headers = TRUE; add_page_headers = TRUE;
overlay_page_headers = FALSE; //overlay_page_headers = FALSE;
break; break;
case 'H': case 'H':
add_page_headers = TRUE; add_page_headers = TRUE;
overlay_page_headers = TRUE; //overlay_page_headers = TRUE;
break; break;
case 'r': case 'r':
restart_pages = TRUE; restart_pages = TRUE;