have no functional effect.
float offset;
float amp;
float phase;
- float delay;
+ //float delay;
float pw;
#if defined(HAVE_FFTW3_H)
double in[FFT_SIZE][2];
amp = (1.0 - offset)*ad[l - 1].ad[j] + offset*ad[l].ad[j];
amp = pow(10.0, -amp/20.0);
}
- delay = 0.0f;
+ //delay = 0.0f;
for (l = 0; l < (int) (sizeof(edd)/sizeof(edd[0])); l++)
{
if (f < edd[l].freq)
if (l < (int) (sizeof(edd)/sizeof(edd[0])))
{
offset = (f - edd[l - 1].freq)/(edd[l].freq - edd[l - 1].freq);
- delay = (1.0f - offset)*edd[l - 1].edd[k] + offset*edd[l].edd[k];
+ //delay = (1.0f - offset)*edd[l - 1].edd[k] + offset*edd[l].edd[k];
}
//phase = 2.0f*M_PI*f*delay*0.001f;
phase = 0.0f;
float offset;
float amp;
float phase;
- float delay;
+ //float delay;
float pw;
int index;
int i;
/* Linear interpolation */
amp = ((1.0f - offset)*proakis[index].amp + offset*proakis[index + 1].amp)/2.3f;
- delay = (1.0f - offset)*proakis[index].delay + offset*proakis[index + 1].delay;
+ //delay = (1.0f - offset)*proakis[index].delay + offset*proakis[index + 1].delay;
//phase = 2.0f*M_PI*f*delay*0.001f;
phase = 0.0f;
#if defined(HAVE_FFTW3_H)
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
- at_tx_handler_t *at_tx_handler,
+ at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
- at_modem_control_handler_t *modem_control_handler,
+ at_modem_control_handler_t modem_control_handler,
void *modem_control_user_data)
{
if (s == NULL)
/*- End of function --------------------------------------------------------*/
static void set_rx_handler(fax_state_t *s,
- span_rx_handler_t *rx_handler,
- span_rx_fillin_handler_t *fillin_handler,
+ span_rx_handler_t rx_handler,
+ span_rx_fillin_handler_t fillin_handler,
void *user_data)
{
s->modems.rx_handler = rx_handler;
}
/*- End of function --------------------------------------------------------*/
-static void fax_modems_set_tx_handler(fax_state_t *s, span_tx_handler_t *handler, void *user_data)
+static void fax_modems_set_tx_handler(fax_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->modems.tx_handler = handler;
s->modems.tx_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-static void fax_modems_set_next_tx_handler(fax_state_t *s, span_tx_handler_t *handler, void *user_data)
+static void fax_modems_set_next_tx_handler(fax_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->modems.next_tx_handler = handler;
s->modems.next_tx_user_data = user_data;
{
/* The fast modem has trained, so we no longer need to run the slow one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v17_rx, (span_rx_fillin_handler_t *) &v17_rx_fillin, &s->fast_modems.v17_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v17_rx, (span_rx_fillin_handler_t) &v17_rx_fillin, &s->fast_modems.v17_rx);
}
else
{
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return 0;
{
/* The fast modem has trained, so we no longer need to run the slow one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v27ter_rx, (span_rx_fillin_handler_t *) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v27ter_rx, (span_rx_fillin_handler_t) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
}
else
{
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return 0;
{
/* The fast modem has trained, so we no longer need to run the slow one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v29_rx, (span_rx_fillin_handler_t *) &v29_rx_fillin, &s->fast_modems.v29_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v29_rx, (span_rx_fillin_handler_t) &v29_rx_fillin, &s->fast_modems.v29_rx);
}
else
{
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return 0;
}
/* If there is nothing else to change to, so use zero length silence */
silence_gen_alter(&t->silence_gen, 0);
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE;
return -1;
}
case T30_MODEM_V21:
fsk_rx_init(&t->v21_rx, &preset_fsk_specs[FSK_V21CH2], FSK_FRAME_MODE_SYNC, (put_bit_func_t) hdlc_rx_put_bit, put_bit_user_data);
fsk_rx_signal_cutoff(&t->v21_rx, -45.5f);
- set_rx_handler(s, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &t->v21_rx);
+ set_rx_handler(s, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
break;
case T30_MODEM_V27TER:
v27ter_rx_restart(&t->fast_modems.v27ter_rx, bit_rate, FALSE);
case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
default:
- set_rx_handler(s, (span_rx_handler_t *) &span_dummy_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
+ set_rx_handler(s, (span_rx_handler_t) &span_dummy_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
break;
}
}
{
case T30_MODEM_PAUSE:
silence_gen_alter(&t->silence_gen, ms_to_samples(short_train));
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE;
break;
case T30_MODEM_CED:
else
tone = MODEM_CONNECT_TONES_FAX_CNG;
modem_connect_tones_tx_init(&t->connect_tx, tone);
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = TRUE;
break;
case T30_MODEM_V21:
a 75ms gap before any V.21 transmission is harmless, adds little to the overall length of
a call, and ensures the receiving end is ready. */
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &fsk_tx, &t->v21_tx);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
t->transmit = TRUE;
break;
case T30_MODEM_V27TER:
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v27ter_tx_restart(&t->fast_modems.v27ter_tx, bit_rate, t->use_tep);
v27ter_tx_set_get_bit(&t->fast_modems.v27ter_tx, get_bit_func, get_bit_user_data);
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &v27ter_tx, &t->fast_modems.v27ter_tx);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
t->transmit = TRUE;
break;
case T30_MODEM_V29:
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v29_tx_restart(&t->fast_modems.v29_tx, bit_rate, t->use_tep);
v29_tx_set_get_bit(&t->fast_modems.v29_tx, get_bit_func, get_bit_user_data);
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &v29_tx, &t->fast_modems.v29_tx);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
t->transmit = TRUE;
break;
case T30_MODEM_V17:
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v17_tx_restart(&t->fast_modems.v17_tx, bit_rate, t->use_tep, short_train);
v17_tx_set_get_bit(&t->fast_modems.v17_tx, get_bit_func, get_bit_user_data);
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) &v17_tx, &t->fast_modems.v17_tx);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
t->transmit = TRUE;
break;
case T30_MODEM_DONE:
/* Fall through */
default:
silence_gen_alter(&t->silence_gen, 0);
- fax_modems_set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- fax_modems_set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ fax_modems_set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
t->transmit = FALSE;
break;
}
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- s->rx_handler = (span_rx_handler_t *) &fsk_rx;
- s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin;
+ s->rx_handler = (span_rx_handler_t) &fsk_rx;
+ s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx;
}
return 0;
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- s->rx_handler = (span_rx_handler_t *) &fsk_rx;
- s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin;
+ s->rx_handler = (span_rx_handler_t) &fsk_rx;
+ s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx;
}
return 0;
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- s->rx_handler = (span_rx_handler_t *) &fsk_rx;
- s->rx_fillin_handler = (span_rx_fillin_handler_t *) &fsk_rx_fillin;
+ s->rx_handler = (span_rx_handler_t) &fsk_rx;
+ s->rx_fillin_handler = (span_rx_fillin_handler_t) &fsk_rx_fillin;
s->rx_user_data = &s->v21_rx;
}
return 0;
static void v21_rx_status_handler(void *user_data, int status)
{
+#if 0
fax_modems_state_t *s;
s = (fax_modems_state_t *) user_data;
+#endif
}
/*- End of function --------------------------------------------------------*/
{
case SIG_STATUS_TRAINING_SUCCEEDED:
span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
- s->rx_handler = (span_rx_handler_t *) &v17_rx;
- s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v17_rx_fillin;
+ s->rx_handler = (span_rx_handler_t) &v17_rx;
+ s->rx_fillin_handler = (span_rx_fillin_handler_t) &v17_rx_fillin;
s->rx_user_data = &s->fast_modems.v17_rx;
break;
}
{
case SIG_STATUS_TRAINING_SUCCEEDED:
span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
- s->rx_handler = (span_rx_handler_t *) &v27ter_rx;
- s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v27ter_rx_fillin;
+ s->rx_handler = (span_rx_handler_t) &v27ter_rx;
+ s->rx_fillin_handler = (span_rx_fillin_handler_t) &v27ter_rx_fillin;
s->rx_user_data = &s->fast_modems.v27ter_rx;
break;
}
{
case SIG_STATUS_TRAINING_SUCCEEDED:
span_log(&s->logging, SPAN_LOG_FLOW, "Switching to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
- s->rx_handler = (span_rx_handler_t *) &v29_rx;
- s->rx_fillin_handler = (span_rx_fillin_handler_t *) &v29_rx_fillin;
+ s->rx_handler = (span_rx_handler_t) &v29_rx;
+ s->rx_fillin_handler = (span_rx_fillin_handler_t) &v29_rx_fillin;
s->rx_user_data = &s->fast_modems.v29_rx;
break;
}
dc_restore_init(&s->dc_restore);
s->rx_signal_present = FALSE;
- s->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
- s->rx_fillin_handler = (span_rx_fillin_handler_t *) &span_dummy_rx;
+ s->rx_handler = (span_rx_handler_t) &span_dummy_rx;
+ s->rx_fillin_handler = (span_rx_fillin_handler_t) &span_dummy_rx;
s->rx_user_data = NULL;
- s->tx_handler = (span_tx_handler_t *) &silence_gen;
+ s->tx_handler = (span_tx_handler_t) &silence_gen;
s->tx_user_data = &s->silence_gen;
return s;
}
typedef struct at_state_s at_state_t;
-typedef int (at_modem_control_handler_t)(at_state_t *s, void *user_data, int op, const char *num);
-typedef int (at_tx_handler_t)(at_state_t *s, void *user_data, const uint8_t *buf, size_t len);
-typedef int (at_class1_handler_t)(at_state_t *s, void *user_data, int direction, int operation, int val);
+typedef int (*at_modem_control_handler_t)(at_state_t *s, void *user_data, int op, const char *num);
+typedef int (*at_tx_handler_t)(at_state_t *s, void *user_data, const uint8_t *buf, size_t len);
+typedef int (*at_class1_handler_t)(at_state_t *s, void *user_data, int direction, int operation, int val);
enum at_rx_mode_e
{
\param modem_control_user_data x.
\return A pointer to the AT context, or NULL if there was a problem. */
SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
- at_tx_handler_t *at_tx_handler,
+ at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
- at_modem_control_handler_t *modem_control_handler,
+ at_modem_control_handler_t modem_control_handler,
void *modem_control_user_data);
/*! Release an AT interpreter context.
char line[256];
int line_ptr;
- at_modem_control_handler_t *modem_control_handler;
+ at_modem_control_handler_t modem_control_handler;
void *modem_control_user_data;
- at_tx_handler_t *at_tx_handler;
+ at_tx_handler_t at_tx_handler;
void *at_tx_user_data;
- at_class1_handler_t *class1_handler;
+ at_class1_handler_t class1_handler;
void *class1_user_data;
/*! \brief Error and flow logging control */
int rx_frame_received;
/*! \brief The current receive signal handler */
- span_rx_handler_t *rx_handler;
+ span_rx_handler_t rx_handler;
/*! \brief The current receive missing signal fill-in handler */
- span_rx_fillin_handler_t *rx_fillin_handler;
+ span_rx_fillin_handler_t rx_fillin_handler;
void *rx_user_data;
/*! \brief The current transmit signal handler */
- span_tx_handler_t *tx_handler;
+ span_tx_handler_t tx_handler;
void *tx_user_data;
/*! The next transmit signal handler, for two stage transmit operations.
E.g. a short silence followed by a modem signal. */
- span_tx_handler_t *next_tx_handler;
+ span_tx_handler_t next_tx_handler;
void *next_tx_user_data;
/*! The current bit rate of the transmitter. */
/*! \brief A pointer to a callback routine to be called when phase B events
occur. */
- t30_phase_b_handler_t *phase_b_handler;
+ t30_phase_b_handler_t phase_b_handler;
/*! \brief An opaque pointer supplied in event B callbacks. */
void *phase_b_user_data;
/*! \brief A pointer to a callback routine to be called when phase D events
occur. */
- t30_phase_d_handler_t *phase_d_handler;
+ t30_phase_d_handler_t phase_d_handler;
/*! \brief An opaque pointer supplied in event D callbacks. */
void *phase_d_user_data;
/*! \brief A pointer to a callback routine to be called when phase E events
occur. */
- t30_phase_e_handler_t *phase_e_handler;
+ t30_phase_e_handler_t phase_e_handler;
/*! \brief An opaque pointer supplied in event E callbacks. */
void *phase_e_user_data;
/*! \brief A pointer to a callback routine to be called when frames are
exchanged. */
- t30_real_time_frame_handler_t *real_time_frame_handler;
+ t30_real_time_frame_handler_t real_time_frame_handler;
/*! \brief An opaque pointer supplied in real time frame callbacks. */
void *real_time_frame_user_data;
/*! \brief A pointer to a callback routine to be called when document events
(e.g. end of transmitted document) occur. */
- t30_document_handler_t *document_handler;
+ t30_document_handler_t document_handler;
/*! \brief An opaque pointer supplied in document callbacks. */
void *document_user_data;
/*! \brief The handler for changes to the receive mode */
- t30_set_handler_t *set_rx_type_handler;
+ t30_set_handler_t set_rx_type_handler;
/*! \brief An opaque pointer passed to the handler for changes to the receive mode */
void *set_rx_type_user_data;
/*! \brief The handler for changes to the transmit mode */
- t30_set_handler_t *set_tx_type_handler;
+ t30_set_handler_t set_tx_type_handler;
/*! \brief An opaque pointer passed to the handler for changes to the transmit mode */
void *set_tx_type_user_data;
/*! \brief The transmitted HDLC frame handler. */
- t30_send_hdlc_handler_t *send_hdlc_handler;
+ t30_send_hdlc_handler_t send_hdlc_handler;
/*! \brief An opaque pointer passed to the transmitted HDLC frame handler. */
void *send_hdlc_user_data;
v8_state_t v8;
/*! The transmit signal handler to be used when the current one has finished sending. */
- span_tx_handler_t *next_tx_handler;
+ span_tx_handler_t next_tx_handler;
void *next_tx_user_data;
/*! \brief No of data bits in current_byte. */
struct t31_state_s
{
at_state_t at_state;
- t31_modem_control_handler_t *modem_control_handler;
+ t31_modem_control_handler_t modem_control_handler;
void *modem_control_user_data;
t31_audio_front_end_state_t audio;
struct t38_core_state_s
{
/*! \brief Handler routine to transmit IFP packets generated by the T.38 protocol engine */
- t38_tx_packet_handler_t *tx_packet_handler;
+ t38_tx_packet_handler_t tx_packet_handler;
/*! \brief An opaque pointer passed to tx_packet_handler */
void *tx_packet_user_data;
/*! \brief Handler routine to process received indicator packets */
- t38_rx_indicator_handler_t *rx_indicator_handler;
+ t38_rx_indicator_handler_t rx_indicator_handler;
/*! \brief Handler routine to process received data packets */
- t38_rx_data_handler_t *rx_data_handler;
+ t38_rx_data_handler_t rx_data_handler;
/*! \brief Handler routine to process the missing packet condition */
- t38_rx_missing_handler_t *rx_missing_handler;
+ t38_rx_missing_handler_t rx_missing_handler;
/*! \brief An opaque pointer passed to any of the above receive handling routines */
void *rx_user_data;
fax_modems_state_t modems;
/*! \brief The current receive signal handler. Actual receiving hops between this
and a dummy receive routine. */
- span_rx_handler_t *base_rx_handler;
- span_rx_fillin_handler_t *base_rx_fillin_handler;
+ span_rx_handler_t base_rx_handler;
+ span_rx_fillin_handler_t base_rx_fillin_handler;
} t38_gateway_audio_state_t;
/*!
/*! \brief A pointer to a callback routine to be called when frames are
exchanged. */
- t38_gateway_real_time_frame_handler_t *real_time_frame_handler;
+ t38_gateway_real_time_frame_handler_t real_time_frame_handler;
/*! \brief An opaque pointer supplied in real time frame callbacks. */
void *real_time_frame_user_data;
} t38_gateway_core_state_t;
int calling_party;
/*! \brief A handler to process the V.8 signals */
- v8_result_handler_t *result_handler;
+ v8_result_handler_t result_handler;
/*! \brief An opaque pointer passed to result_handler */
void *result_handler_user_data;
\param result The phase B event code.
\return The new status. Normally, T30_ERR_OK is returned.
*/
-typedef int (t30_phase_b_handler_t)(t30_state_t *s, void *user_data, int result);
+typedef int (*t30_phase_b_handler_t)(t30_state_t *s, void *user_data, int result);
/*!
T.30 phase D callback handler.
\param result The phase D event code.
\return The new status. Normally, T30_ERR_OK is returned.
*/
-typedef int (t30_phase_d_handler_t)(t30_state_t *s, void *user_data, int result);
+typedef int (*t30_phase_d_handler_t)(t30_state_t *s, void *user_data, int result);
/*!
T.30 phase E callback handler.
\param user_data An opaque pointer.
\param completion_code The phase E completion code.
*/
-typedef void (t30_phase_e_handler_t)(t30_state_t *s, void *user_data, int completion_code);
+typedef void (*t30_phase_e_handler_t)(t30_state_t *s, void *user_data, int completion_code);
/*!
T.30 real time frame handler.
\param msg The HDLC message.
\param len The length of the message.
*/
-typedef void (t30_real_time_frame_handler_t)(t30_state_t *s,
- void *user_data,
- int direction,
- const uint8_t msg[],
- int len);
+typedef void (*t30_real_time_frame_handler_t)(t30_state_t *s,
+ void *user_data,
+ int direction,
+ const uint8_t msg[],
+ int len);
/*!
T.30 document handler.
\param user_data An opaque pointer.
\param result The document event code.
*/
-typedef int (t30_document_handler_t)(t30_state_t *s, void *user_data, int status);
+typedef int (*t30_document_handler_t)(t30_state_t *s, void *user_data, int status);
/*!
T.30 set a receive or transmit type handler.
\param short_train TRUE if the short training sequence should be used (where one exists).
\param use_hdlc FALSE for bit stream, TRUE for HDLC framing.
*/
-typedef void (t30_set_handler_t)(void *user_data, int type, int bit_rate, int short_train, int use_hdlc);
+typedef void (*t30_set_handler_t)(void *user_data, int type, int bit_rate, int short_train, int use_hdlc);
/*!
T.30 send HDLC handler.
\param msg The HDLC message.
\param len The length of the message.
*/
-typedef void (t30_send_hdlc_handler_t)(void *user_data, const uint8_t msg[], int len);
+typedef void (*t30_send_hdlc_handler_t)(void *user_data, const uint8_t msg[], int len);
/*!
T.30 protocol completion codes, at phase E.
\return A pointer to the context, or NULL if there was a problem. */
SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
int calling_party,
- t30_set_handler_t *set_rx_type_handler,
+ t30_set_handler_t set_rx_type_handler,
void *set_rx_type_user_data,
- t30_set_handler_t *set_tx_type_handler,
+ t30_set_handler_t set_tx_type_handler,
void *set_tx_type_user_data,
- t30_send_hdlc_handler_t *send_hdlc_handler,
+ t30_send_hdlc_handler_t send_hdlc_handler,
void *send_hdlc_user_data);
/*! Release a T.30 context.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
-SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t *handler, void *user_data);
+SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t handler, void *user_data);
/*! Set a callback function for T.30 phase D handling.
\brief Set a callback function for T.30 phase D handling.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
-SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t *handler, void *user_data);
+SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t handler, void *user_data);
/*! Set a callback function for T.30 phase E handling.
\brief Set a callback function for T.30 phase E handling.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
-SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t *handler, void *user_data);
+SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t handler, void *user_data);
/*! Set a callback function for T.30 end of document handling.
\brief Set a callback function for T.30 end of document handling.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
-SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t *handler, void *user_data);
+SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t handler, void *user_data);
/*! Set a callback function for T.30 frame exchange monitoring. This is called from the heart
of the signal processing, so don't take too long in the handler routine.
\param s The T.30 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
-SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t *handler, void *user_data);
+SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t handler, void *user_data);
/*! Get a pointer to the logging context associated with a T.30 context.
\brief Get a pointer to the logging context associated with a T.30 context.
*/
typedef struct t31_state_s t31_state_t;
-typedef int (t31_modem_control_handler_t)(t31_state_t *s, void *user_data, int op, const char *num);
+typedef int (*t31_modem_control_handler_t)(t31_state_t *s, void *user_data, int op, const char *num);
#define T31_TX_BUF_LEN (4096)
#define T31_TX_BUF_HIGH_TIDE (4096 - 1024)
\param tx_t38_packet_user_data ???
\return A pointer to the T.31 context. */
SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
- at_tx_handler_t *at_tx_handler,
+ at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
- t31_modem_control_handler_t *modem_control_handler,
+ t31_modem_control_handler_t modem_control_handler,
void *modem_control_user_data,
- t38_tx_packet_handler_t *tx_t38_packet_handler,
+ t38_tx_packet_handler_t tx_t38_packet_handler,
void *tx_t38_packet_user_data);
/*! Release a T.31 context.
*/
typedef struct t38_core_state_s t38_core_state_t;
-typedef int (t38_tx_packet_handler_t)(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count);
+typedef int (*t38_tx_packet_handler_t)(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count);
-typedef int (t38_rx_indicator_handler_t)(t38_core_state_t *s, void *user_data, int indicator);
-typedef int (t38_rx_data_handler_t)(t38_core_state_t *s, void *user_data, int data_type, int field_type, const uint8_t *buf, int len);
-typedef int (t38_rx_missing_handler_t)(t38_core_state_t *s, void *user_data, int rx_seq_no, int expected_seq_no);
+typedef int (*t38_rx_indicator_handler_t)(t38_core_state_t *s, void *user_data, int indicator);
+typedef int (*t38_rx_data_handler_t)(t38_core_state_t *s, void *user_data, int data_type, int field_type, const uint8_t *buf, int len);
+typedef int (*t38_rx_missing_handler_t)(t38_core_state_t *s, void *user_data, int rx_seq_no, int expected_seq_no);
#if defined(__cplusplus)
extern "C"
\param tx_packet_user_data An opaque pointer passed to the tx_packet_handler.
\return A pointer to the T.38 context, or NULL if there was a problem. */
SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
- t38_rx_indicator_handler_t *rx_indicator_handler,
- t38_rx_data_handler_t *rx_data_handler,
- t38_rx_missing_handler_t *rx_missing_handler,
+ t38_rx_indicator_handler_t rx_indicator_handler,
+ t38_rx_data_handler_t rx_data_handler,
+ t38_rx_missing_handler_t rx_missing_handler,
void *rx_user_data,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data);
/*! Release a signaling tone transmitter context.
\param msg The HDLC message.
\param len The length of the message.
*/
-typedef void (t38_gateway_real_time_frame_handler_t)(t38_gateway_state_t *s,
- void *user_data,
- int direction,
- const uint8_t *msg,
- int len);
+typedef void (*t38_gateway_real_time_frame_handler_t)(t38_gateway_state_t *s,
+ void *user_data,
+ int direction,
+ const uint8_t *msg,
+ int len);
/*!
T.38 gateway results.
\param tx_packet_user_data An opaque pointer passed to the tx_packet_handler routine.
\return A pointer to the termination mode T.38 context, or NULL if there was a problem. */
SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data);
/*! Release a gateway mode T.38 context.
\param handler The callback function.
\param user_data An opaque pointer passed to the callback function. */
SPAN_DECLARE(void) t38_gateway_set_real_time_frame_handler(t38_gateway_state_t *s,
- t38_gateway_real_time_frame_handler_t *handler,
+ t38_gateway_real_time_frame_handler_t handler,
void *user_data);
#if defined(__cplusplus)
\return A pointer to the termination mode T.38 context, or NULL if there was a problem. */
SPAN_DECLARE(t38_terminal_state_t *) t38_terminal_init(t38_terminal_state_t *s,
int calling_party,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data);
/*! Release a termination mode T.38 context.
#define DBOV_MAX_SINE_POWER (-3.02f)
/*! \brief A handler for pure receive. The buffer cannot be altered. */
-typedef int (span_rx_handler_t)(void *s, const int16_t amp[], int len);
+typedef int (*span_rx_handler_t)(void *s, const int16_t amp[], int len);
/*! \brief A handler for receive, where the buffer can be altered. */
-typedef int (span_mod_handler_t)(void *s, int16_t amp[], int len);
+typedef int (*span_mod_handler_t)(void *s, int16_t amp[], int len);
/*! \brief A handler for missing receive data fill-in. */
-typedef int (span_rx_fillin_handler_t)(void *s, int len);
+typedef int (*span_rx_fillin_handler_t)(void *s, int len);
/*! \brief A handler for transmit, where the buffer will be filled. */
-typedef int (span_tx_handler_t)(void *s, int16_t amp[], int max_len);
+typedef int (*span_tx_handler_t)(void *s, int16_t amp[], int max_len);
#define ms_to_samples(t) ((t)*(SAMPLE_RATE/1000))
#define us_to_samples(t) ((t)/(1000000/SAMPLE_RATE))
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
{
SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int calling_party,
v8_parms_t *parms,
- v8_result_handler_t *result_handler,
+ v8_result_handler_t result_handler,
void *user_data);
/*! Release a V.8 context.
SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
int calling_party,
- t30_set_handler_t *set_rx_type_handler,
+ t30_set_handler_t set_rx_type_handler,
void *set_rx_type_user_data,
- t30_set_handler_t *set_tx_type_handler,
+ t30_set_handler_t set_tx_type_handler,
void *set_tx_type_user_data,
- t30_send_hdlc_handler_t *send_hdlc_handler,
+ t30_send_hdlc_handler_t send_hdlc_handler,
void *send_hdlc_user_data)
{
if (s == NULL)
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t *handler, void *user_data)
+SPAN_DECLARE(void) t30_set_phase_b_handler(t30_state_t *s, t30_phase_b_handler_t handler, void *user_data)
{
s->phase_b_handler = handler;
s->phase_b_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t *handler, void *user_data)
+SPAN_DECLARE(void) t30_set_phase_d_handler(t30_state_t *s, t30_phase_d_handler_t handler, void *user_data)
{
s->phase_d_handler = handler;
s->phase_d_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t *handler, void *user_data)
+SPAN_DECLARE(void) t30_set_phase_e_handler(t30_state_t *s, t30_phase_e_handler_t handler, void *user_data)
{
s->phase_e_handler = handler;
s->phase_e_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t *handler, void *user_data)
+SPAN_DECLARE(void) t30_set_document_handler(t30_state_t *s, t30_document_handler_t handler, void *user_data)
{
s->document_handler = handler;
s->document_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t *handler, void *user_data)
+SPAN_DECLARE(void) t30_set_real_time_frame_handler(t30_state_t *s, t30_real_time_frame_handler_t handler, void *user_data)
{
s->real_time_frame_handler = handler;
s->real_time_frame_user_data = user_data;
static int restart_modem(t31_state_t *s, int new_modem);
static void hdlc_accept_frame(void *user_data, const uint8_t *msg, int len, int ok);
-static void set_rx_handler(t31_state_t *s, span_rx_handler_t *rx_handler, span_rx_fillin_handler_t *fillin_handler, void *user_data);
-static void set_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data);
-static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data);
+static void set_rx_handler(t31_state_t *s, span_rx_handler_t rx_handler, span_rx_fillin_handler_t fillin_handler, void *user_data);
+static void set_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data);
+static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data);
static int v17_v21_rx(void *user_data, const int16_t amp[], int len);
static int v17_v21_rx_fillin(void *user_data, int len);
static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
}
/*- End of function --------------------------------------------------------*/
+#if 0
static void v8_handler(void *user_data, v8_parms_t *result)
{
t31_state_t *s;
span_log(&s->logging, SPAN_LOG_FLOW, "V.8 report received\n");
}
/*- End of function --------------------------------------------------------*/
+#endif
static void hdlc_tx_underflow(void *user_data)
{
s->at_state.rx_signal_present = FALSE;
s->at_state.rx_trained = FALSE;
s->rx_frame_received = FALSE;
- set_rx_handler(s, (span_rx_handler_t *) &span_dummy_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, NULL);
+ set_rx_handler(s, (span_rx_handler_t) &span_dummy_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
use_hdlc = FALSE;
switch (s->modem)
{
/* Do V.21/HDLC receive in parallel. The other end may send its
first message at any time. The CNG tone will continue until
we get a valid preamble. */
- set_rx_handler(s, (span_rx_handler_t *) &cng_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
+ set_rx_handler(s, (span_rx_handler_t) &cng_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
t31_v21_rx(s);
- set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = TRUE;
break;
}
else
{
- set_rx_handler(s, (span_rx_handler_t *) &cng_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
+ set_rx_handler(s, (span_rx_handler_t) &cng_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
t31_v21_rx(s);
silence_gen_set(&t->silence_gen, 0);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
}
s->at_state.transmit = FALSE;
break;
else
{
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED);
- set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = TRUE;
break;
/* The spec says 1s +-15% of preamble. So, the minimum is 32 octets. */
hdlc_tx_flags(&t->hdlc_tx, 32);
fsk_tx_init(&t->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &t->hdlc_tx);
- set_tx_handler(s, (span_tx_handler_t *) &fsk_tx, &t->v21_tx);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->hdlc_tx.final = FALSE;
s->hdlc_tx.len = 0;
}
else
{
- set_rx_handler(s, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &t->v21_rx);
+ set_rx_handler(s, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
t31_v21_rx(s);
}
break;
else
{
v17_tx_restart(&t->fast_modems.v17_tx, s->bit_rate, FALSE, s->short_train);
- set_tx_handler(s, (span_tx_handler_t *) &v17_tx, &t->fast_modems.v17_tx);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->tx.out_bytes = 0;
s->tx.data_started = FALSE;
case FAX_MODEM_V17_RX:
if (!s->t38_mode)
{
- set_rx_handler(s, (span_rx_handler_t *) &v17_v21_rx, (span_rx_fillin_handler_t *) &v17_v21_rx_fillin, s);
+ set_rx_handler(s, (span_rx_handler_t) &v17_v21_rx, (span_rx_fillin_handler_t) &v17_v21_rx_fillin, s);
v17_rx_restart(&t->fast_modems.v17_rx, s->bit_rate, s->short_train);
/* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s);
else
{
v27ter_tx_restart(&t->fast_modems.v27ter_tx, s->bit_rate, FALSE);
- set_tx_handler(s, (span_tx_handler_t *) &v27ter_tx, &t->fast_modems.v27ter_tx);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->tx.out_bytes = 0;
s->tx.data_started = FALSE;
case FAX_MODEM_V27TER_RX:
if (!s->t38_mode)
{
- set_rx_handler(s, (span_rx_handler_t *) &v27ter_v21_rx, (span_rx_fillin_handler_t *) &v27ter_v21_rx_fillin, s);
+ set_rx_handler(s, (span_rx_handler_t) &v27ter_v21_rx, (span_rx_fillin_handler_t) &v27ter_v21_rx_fillin, s);
v27ter_rx_restart(&t->fast_modems.v27ter_rx, s->bit_rate, FALSE);
/* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s);
else
{
v29_tx_restart(&t->fast_modems.v29_tx, s->bit_rate, FALSE);
- set_tx_handler(s, (span_tx_handler_t *) &v29_tx, &t->fast_modems.v29_tx);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->tx.out_bytes = 0;
s->tx.data_started = FALSE;
case FAX_MODEM_V29_RX:
if (!s->t38_mode)
{
- set_rx_handler(s, (span_rx_handler_t *) &v29_v21_rx, (span_rx_fillin_handler_t *) &v29_v21_rx_fillin, s);
+ set_rx_handler(s, (span_rx_handler_t) &v29_v21_rx, (span_rx_fillin_handler_t) &v29_v21_rx_fillin, s);
v29_rx_restart(&t->fast_modems.v29_rx, s->bit_rate, FALSE);
/* Allow for +FCERROR/+FRH:3 */
t31_v21_rx(s);
else
{
silence_gen_set(&t->silence_gen, 0);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = FALSE;
break;
case FAX_MODEM_SILENCE_RX:
if (!s->t38_mode)
{
- set_rx_handler(s, (span_rx_handler_t *) &silence_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, s);
+ set_rx_handler(s, (span_rx_handler_t) &silence_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, s);
silence_gen_set(&t->silence_gen, 0);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
}
s->at_state.transmit = FALSE;
break;
{
s->modem = FAX_MODEM_SILENCE_TX;
silence_gen_alter(&t->silence_gen, ms_to_samples(200));
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
s->at_state.transmit = TRUE;
}
break;
s->at_state.rx_data_bytes = 0;
s->at_state.transmit = FALSE;
s->modem = FAX_MODEM_SILENCE_TX;
- set_rx_handler(s, (span_rx_handler_t *) &span_dummy_rx, (span_rx_fillin_handler_t *) &span_dummy_rx_fillin, NULL);
+ set_rx_handler(s, (span_rx_handler_t) &span_dummy_rx, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
t31_set_at_rx_mode(s, AT_MODE_OFFHOOK_COMMAND);
at_put_response_code(&s->at_state, AT_RESPONSE_CODE_OK);
}
/*- End of function --------------------------------------------------------*/
static void set_rx_handler(t31_state_t *s,
- span_rx_handler_t *rx_handler,
- span_rx_fillin_handler_t *fillin_handler,
+ span_rx_handler_t rx_handler,
+ span_rx_fillin_handler_t fillin_handler,
void *user_data)
{
s->audio.modems.rx_handler = rx_handler;
}
/*- End of function --------------------------------------------------------*/
-static void set_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data)
+static void set_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.tx_handler = handler;
s->audio.modems.tx_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t *handler, void *user_data)
+static void set_next_tx_handler(t31_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.next_tx_handler = handler;
s->audio.modems.next_tx_user_data = user_data;
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v17_rx, (span_rx_fillin_handler_t *) &v17_rx_fillin, &s->fast_modems.v17_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v17_rx, (span_rx_fillin_handler_t) &v17_rx_fillin, &s->fast_modems.v17_rx);
}
else
{
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return len;
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v27ter_rx, (span_rx_fillin_handler_t *) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v27ter_rx, (span_rx_fillin_handler_t) &v27ter_rx_fillin, &s->fast_modems.v27ter_rx);
}
else
{
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return len;
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v29_rx, (span_rx_fillin_handler_t *) &v29_rx_fillin, &s->fast_modems.v29_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v29_rx, (span_rx_fillin_handler_t) &v29_rx_fillin, &s->fast_modems.v29_rx);
}
else
{
/* We have received something, and the fast modem has not trained. We must
be receiving valid V.21 */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
}
return len;
if (s->audio.next_tx_handler)
{
set_tx_handler(s, s->audio.next_tx_handler, s->audio.next_tx_user_data);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
return 0;
}
/* There is nothing else to change to, so use zero length silence */
silence_gen_alter(&s->audio.modems.silence_gen, 0);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &s->audio.modems.silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &s->audio.modems.silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
return -1;
}
/*- End of function --------------------------------------------------------*/
/*- End of function --------------------------------------------------------*/
static int t31_t38_fe_init(t31_state_t *t,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
t31_t38_front_end_state_t *s;
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
- at_tx_handler_t *at_tx_handler,
+ at_tx_handler_t at_tx_handler,
void *at_tx_user_data,
- t31_modem_control_handler_t *modem_control_handler,
+ t31_modem_control_handler_t modem_control_handler,
void *modem_control_user_data,
- t38_tx_packet_handler_t *tx_t38_packet_handler,
+ t38_tx_packet_handler_t tx_t38_packet_handler,
void *tx_t38_packet_user_data)
{
#if 0
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t38_core_state_t *) t38_core_init(t38_core_state_t *s,
- t38_rx_indicator_handler_t *rx_indicator_handler,
- t38_rx_data_handler_t *rx_data_handler,
- t38_rx_missing_handler_t *rx_missing_handler,
+ t38_rx_indicator_handler_t rx_indicator_handler,
+ t38_rx_data_handler_t rx_data_handler,
+ t38_rx_missing_handler_t rx_missing_handler,
void *rx_user_data,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
if (s == NULL)
static void non_ecm_push_residue(t38_gateway_state_t *s);
static void tone_detected(void *user_data, int tone, int level, int delay);
-static void set_rx_handler(t38_gateway_state_t *s, span_rx_handler_t *handler, span_rx_fillin_handler_t *fillin_handler, void *user_data)
+static void set_rx_handler(t38_gateway_state_t *s, span_rx_handler_t handler, span_rx_fillin_handler_t fillin_handler, void *user_data)
{
if (s->audio.modems.rx_handler != span_dummy_rx)
{
}
/*- End of function --------------------------------------------------------*/
-static void set_tx_handler(t38_gateway_state_t *s, span_tx_handler_t *handler, void *user_data)
+static void set_tx_handler(t38_gateway_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.tx_handler = handler;
s->audio.modems.tx_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-static void set_next_tx_handler(t38_gateway_state_t *s, span_tx_handler_t *handler, void *user_data)
+static void set_next_tx_handler(t38_gateway_state_t *s, span_tx_handler_t handler, void *user_data)
{
s->audio.modems.next_tx_handler = handler;
s->audio.modems.next_tx_user_data = user_data;
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v17_rx, (span_rx_fillin_handler_t *) &v17_rx_fillin, &s->fast_modems.v17_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v17_rx, (span_rx_fillin_handler_t) &v17_rx_fillin, &s->fast_modems.v17_rx);
}
else
{
if (s->rx_signal_present)
{
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
/*endif*/
}
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v27ter_rx, (span_rx_fillin_handler_t *) &v27ter_v21_rx_fillin, &s->fast_modems.v27ter_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v27ter_rx, (span_rx_fillin_handler_t) &v27ter_v21_rx_fillin, &s->fast_modems.v27ter_rx);
}
else
{
if (s->rx_signal_present)
{
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
/*endif*/
}
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
- set_rx_handler(t, (span_rx_handler_t *) &v29_rx, (span_rx_fillin_handler_t *) &v29_rx_fillin, &s->fast_modems.v29_rx);
+ set_rx_handler(t, (span_rx_handler_t) &v29_rx, (span_rx_fillin_handler_t) &v29_rx_fillin, &s->fast_modems.v29_rx);
}
else
{
if (s->rx_signal_present)
{
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.21 (%.2fdBm0)\n", fsk_rx_signal_power(&s->v21_rx));
- set_rx_handler(t, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &s->v21_rx);
+ set_rx_handler(t, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
}
/*endif*/
}
/* There is a handler queued, so that is the next one. */
set_tx_handler(s, t->next_tx_handler, t->next_tx_user_data);
set_next_tx_handler(s, NULL, NULL);
- if (t->tx_handler == (span_tx_handler_t *) &(silence_gen)
+ if (t->tx_handler == (span_tx_handler_t) &(silence_gen)
||
- t->tx_handler == (span_tx_handler_t *) &(tone_gen))
+ t->tx_handler == (span_tx_handler_t) &(tone_gen))
{
set_rx_active(s, TRUE);
}
t->tx_bit_rate = 0;
/* Impose 75ms minimum on transmitted silence */
//silence_gen_set(&t->silence_gen, ms_to_samples(75));
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
set_rx_active(s, TRUE);
break;
case T38_IND_CNG:
t->tx_bit_rate = 0;
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
- set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
+ set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
silence_gen_set(&t->silence_gen, 0);
- set_next_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
set_rx_active(s, TRUE);
break;
case T38_IND_CED:
t->tx_bit_rate = 0;
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED);
- set_tx_handler(s, (span_tx_handler_t *) &modem_connect_tones_tx, &t->connect_tx);
- set_next_tx_handler(s, (span_tx_handler_t *) NULL, NULL);
+ set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
+ set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
set_rx_active(s, TRUE);
break;
case T38_IND_V21_PREAMBLE:
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
u->buf[u->in].len = 0;
fsk_tx_init(&t->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &t->hdlc_tx);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) &fsk_tx, &t->v21_tx);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V27TER_2400_TRAINING:
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
v27ter_tx_restart(&t->fast_modems.v27ter_tx, t->tx_bit_rate, t->use_tep);
v27ter_tx_set_get_bit(&t->fast_modems.v27ter_tx, get_bit_func, get_bit_user_data);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) &v27ter_tx, &t->fast_modems.v27ter_tx);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V29_7200_TRAINING:
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
v29_tx_restart(&t->fast_modems.v29_tx, t->tx_bit_rate, t->use_tep);
v29_tx_set_get_bit(&t->fast_modems.v29_tx, get_bit_func, get_bit_user_data);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) &v29_tx, &t->fast_modems.v29_tx);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V17_7200_SHORT_TRAINING:
silence_gen_alter(&t->silence_gen, ms_to_samples(75));
v17_tx_restart(&t->fast_modems.v17_tx, t->tx_bit_rate, t->use_tep, short_train);
v17_tx_set_get_bit(&t->fast_modems.v17_tx, get_bit_func, get_bit_user_data);
- set_tx_handler(s, (span_tx_handler_t *) &silence_gen, &t->silence_gen);
- set_next_tx_handler(s, (span_tx_handler_t *) &v17_tx, &t->fast_modems.v17_tx);
+ set_tx_handler(s, (span_tx_handler_t) &silence_gen, &t->silence_gen);
+ set_next_tx_handler(s, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
set_rx_active(s, TRUE);
break;
case T38_IND_V8_ANSAM:
s->core.fast_rx_active = FAX_MODEM_V17_RX;
break;
default:
- set_rx_handler(s, (span_rx_handler_t *) &fsk_rx, (span_rx_fillin_handler_t *) &fsk_rx_fillin, &t->v21_rx);
+ set_rx_handler(s, (span_rx_handler_t) &fsk_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &t->v21_rx);
s->core.fast_rx_active = FAX_MODEM_NONE;
break;
}
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(void) t38_gateway_set_real_time_frame_handler(t38_gateway_state_t *s,
- t38_gateway_real_time_frame_handler_t *handler,
+ t38_gateway_real_time_frame_handler_t handler,
void *user_data)
{
s->core.real_time_frame_handler = handler;
/*- End of function --------------------------------------------------------*/
static int t38_gateway_t38_init(t38_gateway_state_t *t,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
t38_gateway_t38_state_t *s;
/*- End of function --------------------------------------------------------*/
SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
if (tx_packet_handler == NULL)
/*- End of function --------------------------------------------------------*/
static int t38_terminal_t38_fe_init(t38_terminal_state_t *t,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
t38_terminal_front_end_state_t *s;
SPAN_DECLARE(t38_terminal_state_t *) t38_terminal_init(t38_terminal_state_t *s,
int calling_party,
- t38_tx_packet_handler_t *tx_packet_handler,
+ t38_tx_packet_handler_t tx_packet_handler,
void *tx_packet_user_data)
{
if (tx_packet_handler == NULL)
SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int calling_party,
v8_parms_t *parms,
- v8_result_handler_t *result_handler,
+ v8_result_handler_t result_handler,
void *user_data)
{
if (s == NULL)
int main(int argc, char *argv[])
{
- int row;
TIFF *tiff_file;
struct tm *tm;
time_t now;
int i;
int image_length;
int opt;
- int compression;
- compression = T4_COMPRESSION_ITU_T6;
photo_metric = PHOTOMETRIC_MINISWHITE;
fill_order = FILLORDER_LSB2MSB;
- while ((opt = getopt(argc, argv, "126ir")) != -1)
+ while ((opt = getopt(argc, argv, "ir")) != -1)
{
switch (opt)
{
- case '1':
- compression = T4_COMPRESSION_ITU_T4_1D;
- break;
- case '2':
- compression = T4_COMPRESSION_ITU_T4_2D;
- break;
- case '6':
- compression = T4_COMPRESSION_ITU_T6;
- break;
case 'i':
photo_metric = PHOTOMETRIC_MINISBLACK;
break;
image_length = sequence[i].length;
/* Write the image first.... */
- row = 0;
switch (sequence[i].type)
{
case 0:
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
- s->rx_handler = (span_rx_handler_t *) &v17_rx;
+ s->rx_handler = (span_rx_handler_t) &v17_rx;
s->rx_user_data = &s->fast_modems.v17_rx;
}
return 0;
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
- s->rx_handler = (span_rx_handler_t *) &v27ter_rx;
+ s->rx_handler = (span_rx_handler_t) &v27ter_rx;
s->rx_user_data = &s->fast_modems.v27ter_rx;
}
return 0;
/* The fast modem has trained, so we no longer need to run the slow
one in parallel. */
span_log(&t->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
- s->rx_handler = (span_rx_handler_t *) &v29_rx;
+ s->rx_handler = (span_rx_handler_t) &v29_rx;
s->rx_user_data = &s->fast_modems.v29_rx;
}
return 0;
tone,
tone_detected,
(void *) s);
- t->rx_handler = (span_rx_handler_t *) &modem_connect_tones_rx;
+ t->rx_handler = (span_rx_handler_t) &modem_connect_tones_rx;
t->rx_user_data = &t->connect_rx;
s->tone_state = MODEM_CONNECT_TONES_NONE;
break;
s->flush_handler(s, s->flush_user_data, 3);
fsk_rx_init(&t->v21_rx, &preset_fsk_specs[FSK_V21CH2], FSK_FRAME_MODE_SYNC, (put_bit_func_t) hdlc_rx_put_bit, put_bit_user_data);
fsk_rx_signal_cutoff(&t->v21_rx, -45.5);
- t->rx_handler = (span_rx_handler_t *) &fsk_rx;
+ t->rx_handler = (span_rx_handler_t) &fsk_rx;
t->rx_user_data = &t->v21_rx;
break;
case T30_MODEM_V27TER:
v27ter_rx_restart(&t->fast_modems.v27ter_rx, bit_rate, FALSE);
v27ter_rx_set_put_bit(&t->fast_modems.v27ter_rx, put_bit_func, put_bit_user_data);
- t->rx_handler = (span_rx_handler_t *) &v27ter_v21_rx;
+ t->rx_handler = (span_rx_handler_t) &v27ter_v21_rx;
t->rx_user_data = s;
break;
case T30_MODEM_V29:
v29_rx_restart(&t->fast_modems.v29_rx, bit_rate, FALSE);
v29_rx_set_put_bit(&t->fast_modems.v29_rx, put_bit_func, put_bit_user_data);
- t->rx_handler = (span_rx_handler_t *) &v29_v21_rx;
+ t->rx_handler = (span_rx_handler_t) &v29_v21_rx;
t->rx_user_data = s;
break;
case T30_MODEM_V17:
v17_rx_restart(&t->fast_modems.v17_rx, bit_rate, short_train);
v17_rx_set_put_bit(&t->fast_modems.v17_rx, put_bit_func, put_bit_user_data);
- t->rx_handler = (span_rx_handler_t *) &v17_v21_rx;
+ t->rx_handler = (span_rx_handler_t) &v17_v21_rx;
t->rx_user_data = s;
break;
case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
default:
- t->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
+ t->rx_handler = (span_rx_handler_t) &span_dummy_rx;
t->rx_user_data = s;
break;
}
{
case T30_MODEM_PAUSE:
silence_gen_alter(&t->silence_gen, ms_to_samples(short_train));
- t->tx_handler = (span_tx_handler_t *) &silence_gen;
+ t->tx_handler = (span_tx_handler_t) &silence_gen;
t->tx_user_data = &t->silence_gen;
s->transmit = TRUE;
break;
else
tone = MODEM_CONNECT_TONES_FAX_CNG;
modem_connect_tones_tx_init(&t->connect_tx, tone);
- t->tx_handler = (span_tx_handler_t *) &modem_connect_tones_tx;
+ t->tx_handler = (span_tx_handler_t) &modem_connect_tones_tx;
t->tx_user_data = &t->connect_tx;
s->transmit = TRUE;
break;
case T30_MODEM_V21:
fsk_tx_init(&t->v21_tx, &preset_fsk_specs[FSK_V21CH2], get_bit_func, get_bit_user_data);
fsk_tx_set_modem_status_handler(&t->v21_tx, modem_tx_status, (void *) s);
- t->tx_handler = (span_tx_handler_t *) &fsk_tx;
+ t->tx_handler = (span_tx_handler_t) &fsk_tx;
t->tx_user_data = &t->v21_tx;
s->transmit = TRUE;
break;
v27ter_tx_restart(&t->fast_modems.v27ter_tx, bit_rate, t->use_tep);
v27ter_tx_set_get_bit(&t->fast_modems.v27ter_tx, get_bit_func, get_bit_user_data);
v27ter_tx_set_modem_status_handler(&t->fast_modems.v27ter_tx, modem_tx_status, (void *) s);
- t->tx_handler = (span_tx_handler_t *) &v27ter_tx;
+ t->tx_handler = (span_tx_handler_t) &v27ter_tx;
t->tx_user_data = &t->fast_modems.v27ter_tx;
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v29_tx_restart(&t->fast_modems.v29_tx, bit_rate, t->use_tep);
v29_tx_set_get_bit(&t->fast_modems.v29_tx, get_bit_func, get_bit_user_data);
v29_tx_set_modem_status_handler(&t->fast_modems.v29_tx, modem_tx_status, (void *) s);
- t->tx_handler = (span_tx_handler_t *) &v29_tx;
+ t->tx_handler = (span_tx_handler_t) &v29_tx;
t->tx_user_data = &t->fast_modems.v29_tx;
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
v17_tx_restart(&t->fast_modems.v17_tx, bit_rate, t->use_tep, short_train);
v17_tx_set_get_bit(&t->fast_modems.v17_tx, get_bit_func, get_bit_user_data);
v17_tx_set_modem_status_handler(&t->fast_modems.v17_tx, modem_tx_status, (void *) s);
- t->tx_handler = (span_tx_handler_t *) &v17_tx;
+ t->tx_handler = (span_tx_handler_t) &v17_tx;
t->tx_user_data = &t->fast_modems.v17_tx;
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
/* Fall through */
default:
silence_gen_alter(&t->silence_gen, 0);
- t->tx_handler = (span_tx_handler_t *) &silence_gen;
+ t->tx_handler = (span_tx_handler_t) &silence_gen;
t->tx_user_data = &t->silence_gen;
s->transmit = FALSE;
break;
}
/*- End of function --------------------------------------------------------*/
-void faxtester_set_real_time_frame_handler(faxtester_state_t *s, faxtester_real_time_frame_handler_t *handler, void *user_data)
+void faxtester_set_real_time_frame_handler(faxtester_state_t *s, faxtester_real_time_frame_handler_t handler, void *user_data)
{
s->real_time_frame_handler = handler;
s->real_time_frame_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void faxtester_set_front_end_step_complete_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t *handler, void *user_data)
+void faxtester_set_front_end_step_complete_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t handler, void *user_data)
{
s->front_end_step_complete_handler = handler;
s->front_end_step_complete_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void faxtester_set_front_end_step_timeout_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t *handler, void *user_data)
+void faxtester_set_front_end_step_timeout_handler(faxtester_state_t *s, faxtester_front_end_step_complete_handler_t handler, void *user_data)
{
s->front_end_step_timeout_handler = handler;
s->front_end_step_timeout_user_data = user_data;
dc_restore_init(&s->dc_restore);
s->rx_signal_present = FALSE;
- s->rx_handler = (span_rx_handler_t *) &span_dummy_rx;
+ s->rx_handler = (span_rx_handler_t) &span_dummy_rx;
s->rx_user_data = NULL;
- s->tx_handler = (span_tx_handler_t *) &silence_gen;
+ s->tx_handler = (span_tx_handler_t) &silence_gen;
s->tx_user_data = &s->silence_gen;
}
/*- End of function --------------------------------------------------------*/
}
/*- End of function --------------------------------------------------------*/
-void faxtester_set_flush_handler(faxtester_state_t *s, faxtester_flush_handler_t *handler, void *user_data)
+void faxtester_set_flush_handler(faxtester_state_t *s, faxtester_flush_handler_t handler, void *user_data)
{
s->flush_handler = handler;
s->flush_user_data = user_data;
static void dump_image_as_xxx(t4_state_t *state)
{
- uint8_t *s;
int i;
int j;
int k;
/* Dump the entire image as text 'X's and spaces */
printf("Image (%d x %d):\n", receive_state.image_width, receive_state.image_length);
- s = state->image_buffer;
for (i = 0; i < state->image_length; i++)
{
for (j = 0; j < state->bytes_per_row; j++)
int compression;
int compression_step;
int add_page_headers;
- int overlay_page_headers;
+ //int overlay_page_headers;
int min_row_bits;
int restart_pages;
int block_size;
compression = -1;
compression_step = 0;
add_page_headers = FALSE;
- overlay_page_headers = FALSE;
+ //overlay_page_headers = FALSE;
restart_pages = FALSE;
in_file_name = IN_FILE_NAME;
decode_file_name = NULL;
break;
case 'h':
add_page_headers = TRUE;
- overlay_page_headers = FALSE;
+ //overlay_page_headers = FALSE;
break;
case 'H':
add_page_headers = TRUE;
- overlay_page_headers = TRUE;
+ //overlay_page_headers = TRUE;
break;
case 'r':
restart_pages = TRUE;