}
/*- End of function --------------------------------------------------------*/
-int adsi_rx(adsi_rx_state_t *s, const int16_t *amp, int len)
+SPAN_DECLARE(int) adsi_rx(adsi_rx_state_t *s, const int16_t *amp, int len)
{
switch (s->standard)
{
}
/*- End of function --------------------------------------------------------*/
-adsi_rx_state_t *adsi_rx_init(adsi_rx_state_t *s,
+SPAN_DECLARE(adsi_rx_state_t *) adsi_rx_init(adsi_rx_state_t *s,
int standard,
put_msg_func_t put_msg,
void *user_data)
}
/*- End of function --------------------------------------------------------*/
-int adsi_rx_free(adsi_rx_state_t *s)
+SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int adsi_tx(adsi_tx_state_t *s, int16_t *amp, int max_len)
+SPAN_DECLARE(int) adsi_tx(adsi_tx_state_t *s, int16_t *amp, int max_len)
{
int len;
int lenx;
}
/*- End of function --------------------------------------------------------*/
-void adsi_tx_send_alert_tone(adsi_tx_state_t *s)
+SPAN_DECLARE(void) adsi_tx_send_alert_tone(adsi_tx_state_t *s)
{
tone_gen_init(&(s->alert_tone_gen), &(s->alert_tone_desc));
}
/*- End of function --------------------------------------------------------*/
-void adsi_tx_set_preamble(adsi_tx_state_t *s,
+SPAN_DECLARE(void) adsi_tx_set_preamble(adsi_tx_state_t *s,
int preamble_len,
int preamble_ones_len,
int postamble_ones_len,
}
/*- End of function --------------------------------------------------------*/
-int adsi_tx_put_message(adsi_tx_state_t *s, const uint8_t *msg, int len)
+SPAN_DECLARE(int) adsi_tx_put_message(adsi_tx_state_t *s, const uint8_t *msg, int len)
{
int i;
int j;
}
/*- End of function --------------------------------------------------------*/
-adsi_tx_state_t *adsi_tx_init(adsi_tx_state_t *s, int standard)
+SPAN_DECLARE(adsi_tx_state_t *) adsi_tx_init(adsi_tx_state_t *s, int standard)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int adsi_tx_free(adsi_tx_state_t *s)
+SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int adsi_next_field(adsi_rx_state_t *s, const uint8_t *msg, int msg_len, int pos, uint8_t *field_type, uint8_t const **field_body, int *field_len)
+SPAN_DECLARE(int) adsi_next_field(adsi_rx_state_t *s, const uint8_t *msg, int msg_len, int pos, uint8_t *field_type, uint8_t const **field_body, int *field_len)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int adsi_add_field(adsi_tx_state_t *s, uint8_t *msg, int len, uint8_t field_type, uint8_t const *field_body, int field_len)
+SPAN_DECLARE(int) adsi_add_field(adsi_tx_state_t *s, uint8_t *msg, int len, uint8_t field_type, uint8_t const *field_body, int field_len)
{
int i;
int x;
}
/*- End of function --------------------------------------------------------*/
-const char *adsi_standard_to_str(int standard)
+SPAN_DECLARE(const char *) adsi_standard_to_str(int standard)
{
switch (standard)
{
#include "spandsp/private/async.h"
-const char *signal_status_to_str(int status)
+SPAN_DECLARE(const char *) signal_status_to_str(int status)
{
switch (status)
{
}
/*- End of function --------------------------------------------------------*/
-async_rx_state_t *async_rx_init(async_rx_state_t *s,
+SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
int data_bits,
int parity,
int stop_bits,
}
/*- End of function --------------------------------------------------------*/
-async_tx_state_t *async_tx_init(async_tx_state_t *s,
+SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
int data_bits,
int parity,
int stop_bits,
"+FRH:3"
};
-void at_set_at_rx_mode(at_state_t *s, int new_mode)
+SPAN_DECLARE(void) at_set_at_rx_mode(at_state_t *s, int new_mode)
{
/* The use of a DTE timeout is mode dependent. Set the timeout appropriately in
the modem. */
}
/*- End of function --------------------------------------------------------*/
-void at_put_response(at_state_t *s, const char *t)
+SPAN_DECLARE(void) at_put_response(at_state_t *s, const char *t)
{
uint8_t buf[3];
}
/*- End of function --------------------------------------------------------*/
-void at_put_numeric_response(at_state_t *s, int val)
+SPAN_DECLARE(void) at_put_numeric_response(at_state_t *s, int val)
{
char buf[20];
}
/*- End of function --------------------------------------------------------*/
-void at_put_response_code(at_state_t *s, int code)
+SPAN_DECLARE(void) at_put_response_code(at_state_t *s, int code)
{
uint8_t buf[20];
}
/*- End of function --------------------------------------------------------*/
-void at_call_event(at_state_t *s, int event)
+SPAN_DECLARE(void) at_call_event(at_state_t *s, int event)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Call event %d received\n", event);
switch (event)
}
/*- End of function --------------------------------------------------------*/
-void at_reset_call_info(at_state_t *s)
+SPAN_DECLARE(void) at_reset_call_info(at_state_t *s)
{
at_call_id_t *call_id;
at_call_id_t *next;
}
/*- End of function --------------------------------------------------------*/
-void at_set_call_info(at_state_t *s, char const *id, char const *value)
+SPAN_DECLARE(void) at_set_call_info(at_state_t *s, char const *id, char const *value)
{
at_call_id_t *new_call_id;
at_call_id_t *call_id;
}
/*- End of function --------------------------------------------------------*/
-void at_display_call_info(at_state_t *s)
+SPAN_DECLARE(void) at_display_call_info(at_state_t *s)
{
char buf[132 + 1];
at_call_id_t *call_id = s->call_id;
}
/*- End of function --------------------------------------------------------*/
-int at_modem_control(at_state_t *s, int op, const char *num)
+SPAN_DECLARE(int) at_modem_control(at_state_t *s, int op, const char *num)
{
switch (op)
{
}
/*- End of function --------------------------------------------------------*/
-void at_interpreter(at_state_t *s, const char *cmd, int len)
+SPAN_DECLARE(void) at_interpreter(at_state_t *s, const char *cmd, int len)
{
int i;
int c;
}
/*- End of function --------------------------------------------------------*/
-void at_set_class1_handler(at_state_t *s, at_class1_handler_t handler, void *user_data)
+SPAN_DECLARE(void) at_set_class1_handler(at_state_t *s, at_class1_handler_t handler, void *user_data)
{
s->class1_handler = handler;
s->class1_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-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,
void *at_tx_user_data,
at_modem_control_handler_t *modem_control_handler,
}
/*- End of function --------------------------------------------------------*/
-int at_free(at_state_t *s)
+SPAN_DECLARE(int) at_free(at_state_t *s)
{
at_reset_call_info(s);
if (s->local_id)
}
/*- End of function --------------------------------------------------------*/
-awgn_state_t *awgn_init_dbm0(awgn_state_t *s, int idum, float level)
+SPAN_DECLARE(awgn_state_t *) awgn_init_dbm0(awgn_state_t *s, int idum, float level)
{
return awgn_init_dbov(s, idum, level - DBM0_MAX_POWER);
}
/*- End of function --------------------------------------------------------*/
-awgn_state_t *awgn_init_dbov(awgn_state_t *s, int idum, float level)
+SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float level)
{
int j;
}
/*- End of function --------------------------------------------------------*/
-int16_t awgn(awgn_state_t *s)
+SPAN_DECLARE(int16_t) awgn(awgn_state_t *s)
{
double fac;
double r;
}
/*- End of function --------------------------------------------------------*/
-int bell_mf_tx(bell_mf_tx_state_t *s, int16_t amp[], int max_samples)
+SPAN_DECLARE(int) bell_mf_tx(bell_mf_tx_state_t *s, int16_t amp[], int max_samples)
{
int len;
const char *cp;
}
/*- End of function --------------------------------------------------------*/
-int bell_mf_tx_put(bell_mf_tx_state_t *s, const char *digits, int len)
+SPAN_DECLARE(int) bell_mf_tx_put(bell_mf_tx_state_t *s, const char *digits, int len)
{
size_t space;
}
/*- End of function --------------------------------------------------------*/
-bell_mf_tx_state_t *bell_mf_tx_init(bell_mf_tx_state_t *s)
+SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int bell_mf_tx_free(bell_mf_tx_state_t *s)
+SPAN_DECLARE(int) bell_mf_tx_free(bell_mf_tx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int r2_mf_tx(r2_mf_tx_state_t *s, int16_t amp[], int samples)
+SPAN_DECLARE(int) r2_mf_tx(r2_mf_tx_state_t *s, int16_t amp[], int samples)
{
int len;
}
/*- End of function --------------------------------------------------------*/
-int r2_mf_tx_put(r2_mf_tx_state_t *s, char digit)
+SPAN_DECLARE(int) r2_mf_tx_put(r2_mf_tx_state_t *s, char digit)
{
char *cp;
}
/*- End of function --------------------------------------------------------*/
-r2_mf_tx_state_t *r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd)
+SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd)
{
int i;
const mf_digit_tones_t *tones;
}
/*- End of function --------------------------------------------------------*/
-int r2_mf_tx_free(r2_mf_tx_state_t *s)
+SPAN_DECLARE(int) r2_mf_tx_free(r2_mf_tx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int bell_mf_rx(bell_mf_rx_state_t *s, const int16_t amp[], int samples)
+SPAN_DECLARE(int) bell_mf_rx(bell_mf_rx_state_t *s, const int16_t amp[], int samples)
{
#if defined(SPANDSP_USE_FIXED_POINT)
int32_t energy[6];
}
/*- End of function --------------------------------------------------------*/
-size_t bell_mf_rx_get(bell_mf_rx_state_t *s, char *buf, int max)
+SPAN_DECLARE(size_t) bell_mf_rx_get(bell_mf_rx_state_t *s, char *buf, int max)
{
if (max > s->current_digits)
max = s->current_digits;
}
/*- End of function --------------------------------------------------------*/
-bell_mf_rx_state_t *bell_mf_rx_init(bell_mf_rx_state_t *s,
+SPAN_DECLARE(bell_mf_rx_state_t *) bell_mf_rx_init(bell_mf_rx_state_t *s,
digits_rx_callback_t callback,
void *user_data)
{
}
/*- End of function --------------------------------------------------------*/
-int bell_mf_rx_free(bell_mf_rx_state_t *s)
+SPAN_DECLARE(int) bell_mf_rx_free(bell_mf_rx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int r2_mf_rx(r2_mf_rx_state_t *s, const int16_t amp[], int samples)
+SPAN_DECLARE(int) r2_mf_rx(r2_mf_rx_state_t *s, const int16_t amp[], int samples)
{
#if defined(SPANDSP_USE_FIXED_POINT)
int32_t energy[6];
}
/*- End of function --------------------------------------------------------*/
-int r2_mf_rx_get(r2_mf_rx_state_t *s)
+SPAN_DECLARE(int) r2_mf_rx_get(r2_mf_rx_state_t *s)
{
return s->current_digit;
}
/*- End of function --------------------------------------------------------*/
-r2_mf_rx_state_t *r2_mf_rx_init(r2_mf_rx_state_t *s,
+SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
int fwd,
tone_report_func_t callback,
void *user_data)
}
/*- End of function --------------------------------------------------------*/
-int r2_mf_rx_free(r2_mf_rx_state_t *s)
+SPAN_DECLARE(int) r2_mf_rx_free(r2_mf_rx_state_t *s)
{
free(s);
return 0;
static const char *qbf = "VoyeZ Le BricK GeanT QuE J'ExaminE PreS Du WharF 123 456 7890 + - * : = $ % ( )"
"ThE QuicK BrowN FoX JumpS OveR ThE LazY DoG 123 456 7890 + - * : = $ % ( )";
-const char *bert_event_to_str(int event)
+SPAN_DECLARE(const char *) bert_event_to_str(int event)
{
switch (event)
{
}
/*- End of function --------------------------------------------------------*/
-int bert_get_bit(bert_state_t *s)
+SPAN_DECLARE(int) bert_get_bit(bert_state_t *s)
{
int bit;
}
/*- End of function --------------------------------------------------------*/
-void bert_put_bit(bert_state_t *s, int bit)
+SPAN_DECLARE(void) bert_put_bit(bert_state_t *s, int bit)
{
if (bit < 0)
{
}
/*- End of function --------------------------------------------------------*/
-int bert_result(bert_state_t *s, bert_results_t *results)
+SPAN_DECLARE(int) bert_result(bert_state_t *s, bert_results_t *results)
{
results->total_bits = s->results.total_bits;
results->bad_bits = s->results.bad_bits;
}
/*- End of function --------------------------------------------------------*/
-void bert_set_report(bert_state_t *s, int freq, bert_report_func_t reporter, void *user_data)
+SPAN_DECLARE(void) bert_set_report(bert_state_t *s, int freq, bert_report_func_t reporter, void *user_data)
{
s->report_frequency = freq;
s->reporter = reporter;
}
/*- End of function --------------------------------------------------------*/
-bert_state_t *bert_init(bert_state_t *s, int limit, int pattern, int resync_len, int resync_percent)
+SPAN_DECLARE(bert_state_t *) bert_init(bert_state_t *s, int limit, int pattern, int resync_len, int resync_percent)
{
int i;
int j;
#include "spandsp/telephony.h"
#include "spandsp/bit_operations.h"
-uint16_t bit_reverse16(uint16_t x)
+SPAN_DECLARE(uint16_t) bit_reverse16(uint16_t x)
{
x = (x >> 8) | (x << 8);
x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);
}
/*- End of function --------------------------------------------------------*/
-uint32_t bit_reverse32(uint32_t x)
+SPAN_DECLARE(uint32_t) bit_reverse32(uint32_t x)
{
x = (x >> 16) | (x << 16);
x = ((x & 0xFF00FF00) >> 8) | ((x & 0x00FF00FF) << 8);
}
/*- End of function --------------------------------------------------------*/
-uint32_t bit_reverse_4bytes(uint32_t x)
+SPAN_DECLARE(uint32_t) bit_reverse_4bytes(uint32_t x)
{
x = ((x & 0xF0F0F0F0) >> 4) | ((x & 0x0F0F0F0F) << 4);
x = ((x & 0xCCCCCCCC) >> 2) | ((x & 0x33333333) << 2);
/*- End of function --------------------------------------------------------*/
#endif
-void bit_reverse(uint8_t to[], const uint8_t from[], int len)
+SPAN_DECLARE(void) bit_reverse(uint8_t to[], const uint8_t from[], int len)
{
#if defined(SPANDSP_MISALIGNED_ACCESS_FAILS)
int i;
}
/*- End of function --------------------------------------------------------*/
-int one_bits32(uint32_t x)
+SPAN_DECLARE(int) one_bits32(uint32_t x)
{
x = x - ((x >> 1) & 0x55555555);
/* We now have 16 2-bit counts */
}
/*- End of function --------------------------------------------------------*/
-uint32_t make_mask32(uint32_t x)
+SPAN_DECLARE(uint32_t) make_mask32(uint32_t x)
{
x |= (x >> 1);
x |= (x >> 2);
}
/*- End of function --------------------------------------------------------*/
-uint16_t make_mask16(uint16_t x)
+SPAN_DECLARE(uint16_t) make_mask16(uint16_t x)
{
x |= (x >> 1);
x |= (x >> 2);
#include "spandsp/complex.h"
#include "spandsp/complex_filters.h"
-filter_t *filter_create(fspec_t *fs)
+SPAN_DECLARE(filter_t *) filter_create(fspec_t *fs)
{
int i;
filter_t *fi;
return fi;
}
-void filter_delete(filter_t *fi)
+SPAN_DECLARE(void) filter_delete(filter_t *fi)
{
if (fi)
free(fi);
}
-float filter_step(filter_t *fi, float x)
+SPAN_DECLARE(float) filter_step(filter_t *fi, float x)
{
return fi->fs->fsf(fi, x);
}
-cfilter_t *cfilter_create(fspec_t *fs)
+SPAN_DECLARE(cfilter_t *) cfilter_create(fspec_t *fs)
{
cfilter_t *cfi;
return cfi;
}
-void cfilter_delete(cfilter_t *cfi)
+SPAN_DECLARE(void) cfilter_delete(cfilter_t *cfi)
{
if (cfi)
{
}
}
-complexf_t cfilter_step(cfilter_t *cfi, const complexf_t *z)
+SPAN_DECLARE(complexf_t) cfilter_step(cfilter_t *cfi, const complexf_t *z)
{
complexf_t cc;
#include "spandsp/complex_vector_float.h"
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE3)
-void cvec_mulf(complexf_t z[], const complexf_t x[], const complexf_t y[], int n)
+SPAN_DECLARE(void) cvec_mulf(complexf_t z[], const complexf_t x[], const complexf_t y[], int n)
{
int i;
__m128 n0;
}
}
#else
-void cvec_mulf(complexf_t z[], const complexf_t x[], const complexf_t y[], int n)
+SPAN_DECLARE(void) cvec_mulf(complexf_t z[], const complexf_t x[], const complexf_t y[], int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void cvec_mul(complex_t z[], const complex_t x[], const complex_t y[], int n)
+SPAN_DECLARE(void) cvec_mul(complex_t z[], const complex_t x[], const complex_t y[], int n)
{
int i;
/*- End of function --------------------------------------------------------*/
#endif
-complexf_t cvec_dot_prodf(const complexf_t x[], const complexf_t y[], int n)
+SPAN_DECLARE(complexf_t) cvec_dot_prodf(const complexf_t x[], const complexf_t y[], int n)
{
int i;
complexf_t z;
}
/*- End of function --------------------------------------------------------*/
-complex_t cvec_dot_prod(const complex_t x[], const complex_t y[], int n)
+SPAN_DECLARE(complex_t) cvec_dot_prod(const complex_t x[], const complex_t y[], int n)
{
int i;
complex_t z;
/*- End of function --------------------------------------------------------*/
#endif
-complexf_t cvec_circular_dot_prodf(const complexf_t x[], const complexf_t y[], int n, int pos)
+SPAN_DECLARE(complexf_t) cvec_circular_dot_prodf(const complexf_t x[], const complexf_t y[], int n, int pos)
{
complexf_t z;
complexf_t z1;
#define LMS_LEAK_RATE 0.9999f
-void cvec_lmsf(const complexf_t x[], complexf_t y[], int n, const complexf_t *error)
+SPAN_DECLARE(void) cvec_lmsf(const complexf_t x[], complexf_t y[], int n, const complexf_t *error)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-void cvec_circular_lmsf(const complexf_t x[], complexf_t y[], int n, int pos, const complexf_t *error)
+SPAN_DECLARE(void) cvec_circular_lmsf(const complexf_t x[], complexf_t y[], int n, int pos, const complexf_t *error)
{
cvec_lmsf(&x[pos], &y[0], n - pos, error);
cvec_lmsf(&x[0], &y[n - pos], pos, error);
#include "spandsp/vector_int.h"
#include "spandsp/complex_vector_int.h"
-complexi32_t cvec_dot_prodi16(const complexi16_t x[], const complexi16_t y[], int n)
+SPAN_DECLARE(complexi32_t) cvec_dot_prodi16(const complexi16_t x[], const complexi16_t y[], int n)
{
int i;
complexi32_t z;
}
/*- End of function --------------------------------------------------------*/
-complexi32_t cvec_dot_prodi32(const complexi32_t x[], const complexi32_t y[], int n)
+SPAN_DECLARE(complexi32_t) cvec_dot_prodi32(const complexi32_t x[], const complexi32_t y[], int n)
{
int i;
complexi32_t z;
}
/*- End of function --------------------------------------------------------*/
-complexi32_t cvec_circular_dot_prodi16(const complexi16_t x[], const complexi16_t y[], int n, int pos)
+SPAN_DECLARE(complexi32_t) cvec_circular_dot_prodi16(const complexi16_t x[], const complexi16_t y[], int n, int pos)
{
complexi32_t z;
complexi32_t z1;
}
/*- End of function --------------------------------------------------------*/
-void cvec_lmsi16(const complexi16_t x[], complexi16_t y[], int n, const complexi16_t *error)
+SPAN_DECLARE(void) cvec_lmsi16(const complexi16_t x[], complexi16_t y[], int n, const complexi16_t *error)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-void cvec_circular_lmsi16(const complexi16_t x[], complexi16_t y[], int n, int pos, const complexi16_t *error)
+SPAN_DECLARE(void) cvec_circular_lmsi16(const complexi16_t x[], complexi16_t y[], int n, int pos, const complexi16_t *error)
{
cvec_lmsi16(&x[pos], &y[0], n - pos, error);
cvec_lmsi16(&x[0], &y[n - pos], pos, error);
0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
};
-uint32_t crc_itu32_calc(const uint8_t *buf, int len, uint32_t crc)
+SPAN_DECLARE(uint32_t) crc_itu32_calc(const uint8_t *buf, int len, uint32_t crc)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int crc_itu32_append(uint8_t *buf, int len)
+SPAN_DECLARE(int) crc_itu32_append(uint8_t *buf, int len)
{
uint32_t crc;
int new_len;
}
/*- End of function --------------------------------------------------------*/
-int crc_itu32_check(const uint8_t *buf, int len)
+SPAN_DECLARE(int) crc_itu32_check(const uint8_t *buf, int len)
{
uint32_t crc;
int i;
0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78
};
-uint16_t crc_itu16_calc(const uint8_t *buf, int len, uint16_t crc)
+SPAN_DECLARE(uint16_t) crc_itu16_calc(const uint8_t *buf, int len, uint16_t crc)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int crc_itu16_append(uint8_t *buf, int len)
+SPAN_DECLARE(int) crc_itu16_append(uint8_t *buf, int len)
{
uint16_t crc;
int new_len;
}
/*- End of function --------------------------------------------------------*/
-int crc_itu16_check(const uint8_t *buf, int len)
+SPAN_DECLARE(int) crc_itu16_check(const uint8_t *buf, int len)
{
uint16_t crc;
int i;
-0.00306796f
};
-int32_t dds_phase_ratef(float frequency)
+SPAN_DECLARE(int32_t) dds_phase_ratef(float frequency)
{
return (int32_t) (frequency*65536.0f*65536.0f/SAMPLE_RATE);
}
/*- End of function --------------------------------------------------------*/
-float dds_frequencyf(int32_t phase_rate)
+SPAN_DECLARE(float) dds_frequencyf(int32_t phase_rate)
{
return (float) phase_rate*(float) SAMPLE_RATE/(65536.0f*65536.0f);
}
/*- End of function --------------------------------------------------------*/
-float dds_scaling_dbm0f(float level)
+SPAN_DECLARE(float) dds_scaling_dbm0f(float level)
{
return powf(10.0f, (level - DBM0_MAX_SINE_POWER)/20.0f)*32767.0f;
}
/*- End of function --------------------------------------------------------*/
-float dds_scaling_dbovf(float level)
+SPAN_DECLARE(float) dds_scaling_dbovf(float level)
{
return powf(10.0f, (level - DBOV_MAX_SINE_POWER)/20.0f)*32767.0f;
}
/*- End of function --------------------------------------------------------*/
-void dds_advancef(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(void) dds_advancef(uint32_t *phase_acc, int32_t phase_rate)
{
*phase_acc += phase_rate;
}
/*- End of function --------------------------------------------------------*/
-float ddsf(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(float) ddsf(uint32_t *phase_acc, int32_t phase_rate)
{
float amp;
}
/*- End of function --------------------------------------------------------*/
-float dds_lookupf(uint32_t phase)
+SPAN_DECLARE(float) dds_lookupf(uint32_t phase)
{
return sine_table[phase >> (32 - SLENK)];
}
/*- End of function --------------------------------------------------------*/
-float dds_modf(uint32_t *phase_acc, int32_t phase_rate, float scale, int32_t phase)
+SPAN_DECLARE(float) dds_modf(uint32_t *phase_acc, int32_t phase_rate, float scale, int32_t phase)
{
float amp;
}
/*- End of function --------------------------------------------------------*/
-complexf_t dds_complexf(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(complexf_t) dds_complexf(uint32_t *phase_acc, int32_t phase_rate)
{
complexf_t amp;
}
/*- End of function --------------------------------------------------------*/
-complexf_t dds_lookup_complexf(uint32_t phase)
+SPAN_DECLARE(complexf_t) dds_lookup_complexf(uint32_t phase)
{
return complex_setf(sine_table[(phase + (1 << 30)) >> (32 - SLENK)],
sine_table[phase >> (32 - SLENK)]);
}
/*- End of function --------------------------------------------------------*/
-complexf_t dds_complex_modf(uint32_t *phase_acc, int32_t phase_rate, float scale, int32_t phase)
+SPAN_DECLARE(complexf_t) dds_complex_modf(uint32_t *phase_acc, int32_t phase_rate, float scale, int32_t phase)
{
complexf_t amp;
32767,
};
-int32_t dds_phase_rate(float frequency)
+SPAN_DECLARE(int32_t) dds_phase_rate(float frequency)
{
return (int32_t) (frequency*65536.0f*65536.0f/SAMPLE_RATE);
}
/*- End of function --------------------------------------------------------*/
-float dds_frequency(int32_t phase_rate)
+SPAN_DECLARE(float) dds_frequency(int32_t phase_rate)
{
return (float) phase_rate*(float) SAMPLE_RATE/(65536.0f*65536.0f);
}
/*- End of function --------------------------------------------------------*/
-int16_t dds_scaling_dbm0(float level)
+SPAN_DECLARE(int16_t) dds_scaling_dbm0(float level)
{
return (int16_t) (powf(10.0f, (level - DBM0_MAX_SINE_POWER)/20.0f)*32767.0f);
}
/*- End of function --------------------------------------------------------*/
-int16_t dds_scaling_dbov(float level)
+SPAN_DECLARE(int16_t) dds_scaling_dbov(float level)
{
return (int16_t) (powf(10.0f, (level - DBOV_MAX_SINE_POWER)/20.0f)*32767.0f);
}
/*- End of function --------------------------------------------------------*/
-int16_t dds_lookup(uint32_t phase)
+SPAN_DECLARE(int16_t) dds_lookup(uint32_t phase)
{
uint32_t step;
int16_t amp;
}
/*- End of function --------------------------------------------------------*/
-int16_t dds_offset(uint32_t phase_acc, int32_t phase_offset)
+SPAN_DECLARE(int16_t) dds_offset(uint32_t phase_acc, int32_t phase_offset)
{
return dds_lookup(phase_acc + phase_offset);
}
/*- End of function --------------------------------------------------------*/
-void dds_advance(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(void) dds_advance(uint32_t *phase_acc, int32_t phase_rate)
{
*phase_acc += phase_rate;
}
/*- End of function --------------------------------------------------------*/
-int16_t dds(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(int16_t) dds(uint32_t *phase_acc, int32_t phase_rate)
{
int16_t amp;
}
/*- End of function --------------------------------------------------------*/
-int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
+SPAN_DECLARE(int16_t) dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
int16_t amp;
}
/*- End of function --------------------------------------------------------*/
-complexi_t dds_lookup_complexi(uint32_t phase)
+SPAN_DECLARE(complexi_t) dds_lookup_complexi(uint32_t phase)
{
return complex_seti(dds_lookup(phase + (1 << 30)), dds_lookup(phase));
}
/*- End of function --------------------------------------------------------*/
-complexi_t dds_complexi(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(complexi_t) dds_complexi(uint32_t *phase_acc, int32_t phase_rate)
{
complexi_t amp;
}
/*- End of function --------------------------------------------------------*/
-complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
+SPAN_DECLARE(complexi_t) dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
complexi_t amp;
}
/*- End of function --------------------------------------------------------*/
-complexi16_t dds_lookup_complexi16(uint32_t phase)
+SPAN_DECLARE(complexi16_t) dds_lookup_complexi16(uint32_t phase)
{
return complex_seti16(dds_lookup(phase + (1 << 30)), dds_lookup(phase));
}
/*- End of function --------------------------------------------------------*/
-complexi16_t dds_complexi16(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(complexi16_t) dds_complexi16(uint32_t *phase_acc, int32_t phase_rate)
{
complexi16_t amp;
}
/*- End of function --------------------------------------------------------*/
-complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
+SPAN_DECLARE(complexi16_t) dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
complexi16_t amp;
}
/*- End of function --------------------------------------------------------*/
-complexi32_t dds_lookup_complexi32(uint32_t phase)
+SPAN_DECLARE(complexi32_t) dds_lookup_complexi32(uint32_t phase)
{
return complex_seti32(dds_lookup(phase + (1 << 30)), dds_lookup(phase));
}
/*- End of function --------------------------------------------------------*/
-complexi32_t dds_complexi32(uint32_t *phase_acc, int32_t phase_rate)
+SPAN_DECLARE(complexi32_t) dds_complexi32(uint32_t *phase_acc, int32_t phase_rate)
{
complexi32_t amp;
}
/*- End of function --------------------------------------------------------*/
-complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
+SPAN_DECLARE(complexi32_t) dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
complexi32_t amp;
static int dtmf_tx_inited = FALSE;
static tone_gen_descriptor_t dtmf_digit_tones[16];
-int dtmf_rx(dtmf_rx_state_t *s, const int16_t amp[], int samples)
+SPAN_DECLARE(int) dtmf_rx(dtmf_rx_state_t *s, const int16_t amp[], int samples)
{
#if defined(SPANDSP_USE_FIXED_POINT)
int32_t row_energy[4];
}
/*- End of function --------------------------------------------------------*/
-int dtmf_rx_status(dtmf_rx_state_t *s)
+SPAN_DECLARE(int) dtmf_rx_status(dtmf_rx_state_t *s)
{
if (s->in_digit)
return s->in_digit;
}
/*- End of function --------------------------------------------------------*/
-size_t dtmf_rx_get(dtmf_rx_state_t *s, char *buf, int max)
+SPAN_DECLARE(size_t) dtmf_rx_get(dtmf_rx_state_t *s, char *buf, int max)
{
if (max > s->current_digits)
max = s->current_digits;
}
/*- End of function --------------------------------------------------------*/
-void dtmf_rx_set_realtime_callback(dtmf_rx_state_t *s,
+SPAN_DECLARE(void) dtmf_rx_set_realtime_callback(dtmf_rx_state_t *s,
tone_report_func_t callback,
void *user_data)
{
}
/*- End of function --------------------------------------------------------*/
-void dtmf_rx_parms(dtmf_rx_state_t *s,
+SPAN_DECLARE(void) dtmf_rx_parms(dtmf_rx_state_t *s,
int filter_dialtone,
int twist,
int reverse_twist,
}
/*- End of function --------------------------------------------------------*/
-dtmf_rx_state_t *dtmf_rx_init(dtmf_rx_state_t *s,
+SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
digits_rx_callback_t callback,
void *user_data)
{
}
/*- End of function --------------------------------------------------------*/
-int dtmf_rx_free(dtmf_rx_state_t *s)
+SPAN_DECLARE(int) dtmf_rx_free(dtmf_rx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int dtmf_tx(dtmf_tx_state_t *s, int16_t amp[], int max_samples)
+SPAN_DECLARE(int) dtmf_tx(dtmf_tx_state_t *s, int16_t amp[], int max_samples)
{
int len;
const char *cp;
}
/*- End of function --------------------------------------------------------*/
-int dtmf_tx_put(dtmf_tx_state_t *s, const char *digits, int len)
+SPAN_DECLARE(int) dtmf_tx_put(dtmf_tx_state_t *s, const char *digits, int len)
{
size_t space;
}
/*- End of function --------------------------------------------------------*/
-void dtmf_tx_set_level(dtmf_tx_state_t *s, int level, int twist)
+SPAN_DECLARE(void) dtmf_tx_set_level(dtmf_tx_state_t *s, int level, int twist)
{
s->low_level = dds_scaling_dbm0f((float) level);
s->high_level = dds_scaling_dbm0f((float) (level + twist));
}
/*- End of function --------------------------------------------------------*/
-void dtmf_tx_set_timing(dtmf_tx_state_t *s, int on_time, int off_time)
+SPAN_DECLARE(void) dtmf_tx_set_timing(dtmf_tx_state_t *s, int on_time, int off_time)
{
s->on_time = ((on_time >= 0) ? on_time : DEFAULT_DTMF_TX_ON_TIME)*SAMPLE_RATE/1000;
s->off_time = ((off_time >= 0) ? off_time : DEFAULT_DTMF_TX_OFF_TIME)*SAMPLE_RATE/1000;
}
/*- End of function --------------------------------------------------------*/
-dtmf_tx_state_t *dtmf_tx_init(dtmf_tx_state_t *s)
+SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int dtmf_tx_free(dtmf_tx_state_t *s)
+SPAN_DECLARE(int) dtmf_tx_free(dtmf_tx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-echo_can_state_t *echo_can_create(int len, int adaption_mode)
+SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode)
{
echo_can_state_t *ec;
int i;
}
/*- End of function --------------------------------------------------------*/
-void echo_can_free(echo_can_state_t *ec)
+SPAN_DECLARE(void) echo_can_free(echo_can_state_t *ec)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-void echo_can_adaption_mode(echo_can_state_t *ec, int adaption_mode)
+SPAN_DECLARE(void) echo_can_adaption_mode(echo_can_state_t *ec, int adaption_mode)
{
ec->adaption_mode = adaption_mode;
}
/*- End of function --------------------------------------------------------*/
-void echo_can_flush(echo_can_state_t *ec)
+SPAN_DECLARE(void) echo_can_flush(echo_can_state_t *ec)
{
int i;
int sample_no = 0;
-void echo_can_snapshot(echo_can_state_t *ec)
+SPAN_DECLARE(void) echo_can_snapshot(echo_can_state_t *ec)
{
memcpy(ec->snapshot, ec->fir_taps16[0], ec->taps*sizeof(int16_t));
}
}
/*- End of function --------------------------------------------------------*/
-int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx)
+SPAN_DECLARE(int16_t) echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx)
{
int32_t echo_value;
int clean_rx;
}
/*- End of function --------------------------------------------------------*/
-int16_t echo_can_hpf_tx(echo_can_state_t *ec, int16_t tx)
+SPAN_DECLARE(int16_t) echo_can_hpf_tx(echo_can_state_t *ec, int16_t tx)
{
if (ec->adaption_mode & ECHO_CAN_USE_TX_HPF)
tx = echo_can_hpf(ec->tx_hpf, tx);
}
/*- End of function --------------------------------------------------------*/
-int fax_rx(fax_state_t *s, int16_t *amp, int len)
+SPAN_DECLARE(int) fax_rx(fax_state_t *s, int16_t *amp, int len)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int fax_tx(fax_state_t *s, int16_t *amp, int max_len)
+SPAN_DECLARE(int) fax_tx(fax_state_t *s, int16_t *amp, int max_len)
{
int len;
#if defined(LOG_FAX_AUDIO)
}
/*- End of function --------------------------------------------------------*/
-void fax_set_transmit_on_idle(fax_state_t *s, int transmit_on_idle)
+SPAN_DECLARE(void) fax_set_transmit_on_idle(fax_state_t *s, int transmit_on_idle)
{
s->modems.transmit_on_idle = transmit_on_idle;
}
/*- End of function --------------------------------------------------------*/
-void fax_set_tep_mode(fax_state_t *s, int use_tep)
+SPAN_DECLARE(void) fax_set_tep_mode(fax_state_t *s, int use_tep)
{
s->modems.use_tep = use_tep;
}
/*- End of function --------------------------------------------------------*/
-t30_state_t *fax_get_t30_state(fax_state_t *s)
+SPAN_DECLARE(t30_state_t *) fax_get_t30_state(fax_state_t *s)
{
return &s->t30;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *fax_get_logging_state(fax_state_t *s)
+SPAN_DECLARE(logging_state_t *) fax_get_logging_state(fax_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-fax_state_t *fax_init(fax_state_t *s, int calling_party)
+SPAN_DECLARE(fax_state_t *) fax_init(fax_state_t *s, int calling_party)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int fax_release(fax_state_t *s)
+SPAN_DECLARE(int) fax_release(fax_state_t *s)
{
t30_release(&s->t30);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int fax_free(fax_state_t *s)
+SPAN_DECLARE(int) fax_free(fax_state_t *s)
{
t30_release(&s->t30);
free(s);
}
};
-fsk_tx_state_t *fsk_tx_init(fsk_tx_state_t *s,
+SPAN_DECLARE(fsk_tx_state_t *) fsk_tx_init(fsk_tx_state_t *s,
const fsk_spec_t *spec,
get_bit_func_t get_bit,
void *user_data)
}
/*- End of function --------------------------------------------------------*/
-int fsk_tx(fsk_tx_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) fsk_tx(fsk_tx_state_t *s, int16_t amp[], int len)
{
int sample;
int bit;
}
/*- End of function --------------------------------------------------------*/
-void fsk_tx_power(fsk_tx_state_t *s, float power)
+SPAN_DECLARE(void) fsk_tx_power(fsk_tx_state_t *s, float power)
{
s->scaling = dds_scaling_dbm0(power);
}
/*- End of function --------------------------------------------------------*/
-void fsk_tx_set_get_bit(fsk_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(void) fsk_tx_set_get_bit(fsk_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
{
s->get_bit = get_bit;
s->get_bit_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void fsk_tx_set_modem_status_handler(fsk_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) fsk_tx_set_modem_status_handler(fsk_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void fsk_rx_signal_cutoff(fsk_rx_state_t *s, float cutoff)
+SPAN_DECLARE(void) fsk_rx_signal_cutoff(fsk_rx_state_t *s, float cutoff)
{
/* The 6.04 allows for the gain of the DC blocker */
s->carrier_on_power = (int32_t) (power_meter_level_dbm0(cutoff + 2.5f - 6.04f));
}
/*- End of function --------------------------------------------------------*/
-float fsk_rx_signal_power(fsk_rx_state_t *s)
+SPAN_DECLARE(float) fsk_rx_signal_power(fsk_rx_state_t *s)
{
return power_meter_current_dbm0(&s->power);
}
/*- End of function --------------------------------------------------------*/
-void fsk_rx_set_put_bit(fsk_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(void) fsk_rx_set_put_bit(fsk_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
{
s->put_bit = put_bit;
s->put_bit_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void fsk_rx_set_modem_status_handler(fsk_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) fsk_rx_set_modem_status_handler(fsk_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-fsk_rx_state_t *fsk_rx_init(fsk_rx_state_t *s,
+SPAN_DECLARE(fsk_rx_state_t *) fsk_rx_init(fsk_rx_state_t *s,
const fsk_spec_t *spec,
int sync_mode,
put_bit_func_t put_bit,
}
/*- End of function --------------------------------------------------------*/
-int fsk_rx(fsk_rx_state_t *s, const int16_t *amp, int len)
+SPAN_DECLARE(int) fsk_rx(fsk_rx_state_t *s, const int16_t *amp, int len)
{
int buf_ptr;
int baudstate;
214, 215, 212, 213, 218, 219, 216, 217, 207, 207, 206, 206, 210, 211, 208, 209
};
-uint8_t alaw_to_ulaw(uint8_t alaw)
+SPAN_DECLARE(uint8_t) alaw_to_ulaw(uint8_t alaw)
{
return alaw_to_ulaw_table[alaw];
}
/*- End of function --------------------------------------------------------*/
-uint8_t ulaw_to_alaw(uint8_t ulaw)
+SPAN_DECLARE(uint8_t) ulaw_to_alaw(uint8_t ulaw)
{
return ulaw_to_alaw_table[ulaw];
}
/*- End of function --------------------------------------------------------*/
-int g711_decode(g711_state_t *s,
+SPAN_DECLARE(int) g711_decode(g711_state_t *s,
int16_t amp[],
const uint8_t g711_data[],
int g711_bytes)
}
/*- End of function --------------------------------------------------------*/
-int g711_encode(g711_state_t *s,
+SPAN_DECLARE(int) g711_encode(g711_state_t *s,
uint8_t g711_data[],
const int16_t amp[],
int len)
}
/*- End of function --------------------------------------------------------*/
-int g711_transcode(g711_state_t *s,
+SPAN_DECLARE(int) g711_transcode(g711_state_t *s,
uint8_t g711_out[],
const uint8_t g711_in[],
int g711_bytes)
}
/*- End of function --------------------------------------------------------*/
-g711_state_t *g711_init(g711_state_t *s, int mode)
+SPAN_DECLARE(g711_state_t *) g711_init(g711_state_t *s, int mode)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int g711_release(g711_state_t *s)
+SPAN_DECLARE(int) g711_release(g711_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-g722_decode_state_t *g722_decode_init(g722_decode_state_t *s, int rate, int options)
+SPAN_DECLARE(g722_decode_state_t *) g722_decode_init(g722_decode_state_t *s, int rate, int options)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int g722_decode_release(g722_decode_state_t *s)
+SPAN_DECLARE(int) g722_decode_release(g722_decode_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int g722_decode(g722_decode_state_t *s, int16_t amp[], const uint8_t g722_data[], int len)
+SPAN_DECLARE(int) g722_decode(g722_decode_state_t *s, int16_t amp[], const uint8_t g722_data[], int len)
{
int rlow;
int ihigh;
}
/*- End of function --------------------------------------------------------*/
-g722_encode_state_t *g722_encode_init(g722_encode_state_t *s, int rate, int options)
+SPAN_DECLARE(g722_encode_state_t *) g722_encode_init(g722_encode_state_t *s, int rate, int options)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int g722_encode_release(g722_encode_state_t *s)
+SPAN_DECLARE(int) g722_encode_release(g722_encode_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int g722_encode(g722_encode_state_t *s, uint8_t g722_data[], const int16_t amp[], int len)
+SPAN_DECLARE(int) g722_encode(g722_encode_state_t *s, uint8_t g722_data[], const int16_t amp[], int len)
{
int16_t dlow;
int16_t dhigh;
}
/*- End of function --------------------------------------------------------*/
-g726_state_t *g726_init(g726_state_t *s, int bit_rate, int ext_coding, int packing)
+SPAN_DECLARE(g726_state_t *) g726_init(g726_state_t *s, int bit_rate, int ext_coding, int packing)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int g726_release(g726_state_t *s)
+SPAN_DECLARE(int) g726_release(g726_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int g726_decode(g726_state_t *s,
+SPAN_DECLARE(int) g726_decode(g726_state_t *s,
int16_t amp[],
const uint8_t g726_data[],
int g726_bytes)
}
/*- End of function --------------------------------------------------------*/
-int g726_encode(g726_state_t *s,
+SPAN_DECLARE(int) g726_encode(g726_state_t *s,
uint8_t g726_data[],
const int16_t amp[],
int len)
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_unpack_none(gsm0610_frame_t *s, const uint8_t c[])
+SPAN_DECLARE(int) gsm0610_unpack_none(gsm0610_frame_t *s, const uint8_t c[])
{
int i;
int j;
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_unpack_wav49(gsm0610_frame_t *s, const uint8_t c[])
+SPAN_DECLARE(int) gsm0610_unpack_wav49(gsm0610_frame_t *s, const uint8_t c[])
{
uint16_t sr;
int i;
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_unpack_voip(gsm0610_frame_t *s, const uint8_t c[33])
+SPAN_DECLARE(int) gsm0610_unpack_voip(gsm0610_frame_t *s, const uint8_t c[33])
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_decode(gsm0610_state_t *s, int16_t amp[], const uint8_t code[], int len)
+SPAN_DECLARE(int) gsm0610_decode(gsm0610_state_t *s, int16_t amp[], const uint8_t code[], int len)
{
gsm0610_frame_t frame[2];
int bytes;
}
/*- End of function --------------------------------------------------------*/
-gsm0610_state_t *gsm0610_init(gsm0610_state_t *s, int packing)
+SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_set_packing(gsm0610_state_t *s, int packing)
+SPAN_DECLARE(int) gsm0610_set_packing(gsm0610_state_t *s, int packing)
{
s->packing = packing;
return 0;
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_release(gsm0610_state_t *s)
+SPAN_DECLARE(int) gsm0610_release(gsm0610_state_t *s)
{
if (s)
free(s);
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_pack_none(uint8_t c[], const gsm0610_frame_t *s)
+SPAN_DECLARE(int) gsm0610_pack_none(uint8_t c[], const gsm0610_frame_t *s)
{
int i;
int j;
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_pack_wav49(uint8_t c[], const gsm0610_frame_t *s)
+SPAN_DECLARE(int) gsm0610_pack_wav49(uint8_t c[], const gsm0610_frame_t *s)
{
uint16_t sr;
int i;
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_pack_voip(uint8_t c[33], const gsm0610_frame_t *s)
+SPAN_DECLARE(int) gsm0610_pack_voip(uint8_t c[33], const gsm0610_frame_t *s)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int gsm0610_encode(gsm0610_state_t *s, uint8_t code[], const int16_t amp[], int len)
+SPAN_DECLARE(int) gsm0610_encode(gsm0610_state_t *s, uint8_t code[], const int16_t amp[], int len)
{
gsm0610_frame_t frame[2];
int bytes;
}
/*- End of function --------------------------------------------------------*/
-void hdlc_rx_put_bit(hdlc_rx_state_t *s, int new_bit)
+SPAN_DECLARE(void) hdlc_rx_put_bit(hdlc_rx_state_t *s, int new_bit)
{
if (new_bit < 0)
{
}
/*- End of function --------------------------------------------------------*/
-void hdlc_rx_put_byte(hdlc_rx_state_t *s, int new_byte)
+SPAN_DECLARE(void) hdlc_rx_put_byte(hdlc_rx_state_t *s, int new_byte)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-void hdlc_rx_put(hdlc_rx_state_t *s, const uint8_t buf[], int len)
+SPAN_DECLARE(void) hdlc_rx_put(hdlc_rx_state_t *s, const uint8_t buf[], int len)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-void hdlc_rx_set_max_frame_len(hdlc_rx_state_t *s, size_t max_len)
+SPAN_DECLARE(void) hdlc_rx_set_max_frame_len(hdlc_rx_state_t *s, size_t max_len)
{
max_len += s->crc_bytes;
s->max_frame_len = (max_len <= sizeof(s->buffer)) ? max_len : sizeof(s->buffer);
}
/*- End of function --------------------------------------------------------*/
-void hdlc_rx_set_octet_counting_report_interval(hdlc_rx_state_t *s, int interval)
+SPAN_DECLARE(void) hdlc_rx_set_octet_counting_report_interval(hdlc_rx_state_t *s, int interval)
{
s->octet_count_report_interval = interval;
}
/*- End of function --------------------------------------------------------*/
-hdlc_rx_state_t *hdlc_rx_init(hdlc_rx_state_t *s,
+SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
int crc32,
int report_bad_frames,
int framing_ok_threshold,
}
/*- End of function --------------------------------------------------------*/
-int hdlc_rx_get_stats(hdlc_rx_state_t *s,
+SPAN_DECLARE(int) hdlc_rx_get_stats(hdlc_rx_state_t *s,
hdlc_rx_stats_t *t)
{
t->bytes = s->rx_bytes;
}
/*- End of function --------------------------------------------------------*/
-int hdlc_tx_frame(hdlc_tx_state_t *s, const uint8_t *frame, size_t len)
+SPAN_DECLARE(int) hdlc_tx_frame(hdlc_tx_state_t *s, const uint8_t *frame, size_t len)
{
if (len <= 0)
{
}
/*- End of function --------------------------------------------------------*/
-int hdlc_tx_flags(hdlc_tx_state_t *s, int len)
+SPAN_DECLARE(int) hdlc_tx_flags(hdlc_tx_state_t *s, int len)
{
/* Some HDLC applications require the ability to force a period of HDLC
flag words. */
}
/*- End of function --------------------------------------------------------*/
-int hdlc_tx_abort(hdlc_tx_state_t *s)
+SPAN_DECLARE(int) hdlc_tx_abort(hdlc_tx_state_t *s)
{
/* TODO: This is a really crude way of just fudging an abort out for simple
test purposes. */
}
/*- End of function --------------------------------------------------------*/
-int hdlc_tx_corrupt_frame(hdlc_tx_state_t *s)
+SPAN_DECLARE(int) hdlc_tx_corrupt_frame(hdlc_tx_state_t *s)
{
if (s->len <= 0)
return -1;
}
/*- End of function --------------------------------------------------------*/
-int hdlc_tx_get_byte(hdlc_tx_state_t *s)
+SPAN_DECLARE(int) hdlc_tx_get_byte(hdlc_tx_state_t *s)
{
int i;
int byte_in_progress;
}
/*- End of function --------------------------------------------------------*/
-int hdlc_tx_get_bit(hdlc_tx_state_t *s)
+SPAN_DECLARE(int) hdlc_tx_get_bit(hdlc_tx_state_t *s)
{
int txbit;
}
/*- End of function --------------------------------------------------------*/
-int hdlc_tx_get(hdlc_tx_state_t *s, uint8_t buf[], size_t max_len)
+SPAN_DECLARE(int) hdlc_tx_get(hdlc_tx_state_t *s, uint8_t buf[], size_t max_len)
{
size_t i;
int x;
}
/*- End of function --------------------------------------------------------*/
-void hdlc_tx_set_max_frame_len(hdlc_tx_state_t *s, size_t max_len)
+SPAN_DECLARE(void) hdlc_tx_set_max_frame_len(hdlc_tx_state_t *s, size_t max_len)
{
s->max_frame_len = (max_len <= HDLC_MAXFRAME_LEN) ? max_len : HDLC_MAXFRAME_LEN;
}
/*- End of function --------------------------------------------------------*/
-hdlc_tx_state_t *hdlc_tx_init(hdlc_tx_state_t *s,
+SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
int crc32,
int inter_frame_flags,
int progressive,
}
/*- End of function --------------------------------------------------------*/
-ima_adpcm_state_t *ima_adpcm_init(ima_adpcm_state_t *s, int variant, int chunk_size)
+SPAN_DECLARE(ima_adpcm_state_t *) ima_adpcm_init(ima_adpcm_state_t *s, int variant, int chunk_size)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int ima_adpcm_release(ima_adpcm_state_t *s)
+SPAN_DECLARE(int) ima_adpcm_release(ima_adpcm_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int ima_adpcm_decode(ima_adpcm_state_t *s,
+SPAN_DECLARE(int) ima_adpcm_decode(ima_adpcm_state_t *s,
int16_t amp[],
const uint8_t ima_data[],
int ima_bytes)
}
/*- End of function --------------------------------------------------------*/
-int ima_adpcm_encode(ima_adpcm_state_t *s,
+SPAN_DECLARE(int) ima_adpcm_encode(ima_adpcm_state_t *s,
uint8_t ima_data[],
const int16_t amp[],
int len)
<Configurations>\r
<Configuration\r
Name="Debug|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ OutputDirectory="$(SolutionDir)Debug"\r
IntermediateDirectory="$(ConfigurationName)"\r
ConfigurationType="2"\r
CharacterSet="1"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
DataExecutionPrevention="0"\r
+ ImportLibrary="./Debug\spandsp.lib"\r
TargetMachine="1"\r
/>\r
<Tool\r
</Configuration>\r
<Configuration\r
Name="Release|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ OutputDirectory="$(SolutionDir)Release"\r
IntermediateDirectory="$(ConfigurationName)"\r
ConfigurationType="2"\r
CharacterSet="1"\r
EnableCOMDATFolding="2"\r
RandomizedBaseAddress="1"\r
DataExecutionPrevention="0"\r
+ ImportLibrary="./Release\spandsp.lib"\r
TargetMachine="1"\r
/>\r
<Tool\r
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
>\r
-<File RelativePath="adsi.c"></File>\r
-<File RelativePath="async.c"></File>\r
-<File RelativePath="at_interpreter.c"></File>\r
-<File RelativePath="awgn.c"></File>\r
-<File RelativePath="bell_r2_mf.c"></File>\r
-<File RelativePath="bert.c"></File>\r
-<File RelativePath="bit_operations.c"></File>\r
-<File RelativePath="bitstream.c"></File>\r
-<File RelativePath="complex_filters.c"></File>\r
-<File RelativePath="complex_vector_float.c"></File>\r
-<File RelativePath="complex_vector_int.c"></File>\r
-<File RelativePath="crc.c"></File>\r
-<File RelativePath="dds_float.c"></File>\r
-<File RelativePath="dds_int.c"></File>\r
-<File RelativePath="dtmf.c"></File>\r
-<File RelativePath="echo.c"></File>\r
-<File RelativePath="fax.c"></File>\r
-<File RelativePath="fsk.c"></File>\r
-<File RelativePath="g711.c"></File>\r
-<File RelativePath="g722.c"></File>\r
-<File RelativePath="g726.c"></File>\r
-<File RelativePath="gsm0610_decode.c"></File>\r
-<File RelativePath="gsm0610_encode.c"></File>\r
-<File RelativePath="gsm0610_long_term.c"></File>\r
-<File RelativePath="gsm0610_lpc.c"></File>\r
-<File RelativePath="gsm0610_preprocess.c"></File>\r
-<File RelativePath="gsm0610_rpe.c"></File>\r
-<File RelativePath="gsm0610_short_term.c"></File>\r
-<File RelativePath="hdlc.c"></File>\r
-<File RelativePath="ima_adpcm.c"></File>\r
-<File RelativePath="logging.c"></File>\r
-<File RelativePath="lpc10_analyse.c"></File>\r
-<File RelativePath="lpc10_decode.c"></File>\r
-<File RelativePath="lpc10_encode.c"></File>\r
-<File RelativePath="lpc10_placev.c"></File>\r
-<File RelativePath="lpc10_voicing.c"></File>\r
-<File RelativePath="modem_echo.c"></File>\r
-<File RelativePath="modem_connect_tones.c"></File>\r
-<File RelativePath="noise.c"></File>\r
-<File RelativePath="oki_adpcm.c"></File>\r
-<File RelativePath="playout.c"></File>\r
-<File RelativePath="plc.c"></File>\r
-<File RelativePath="power_meter.c"></File>\r
-<File RelativePath="queue.c"></File>\r
-<File RelativePath="schedule.c"></File>\r
-<File RelativePath="sig_tone.c"></File>\r
-<File RelativePath="silence_gen.c"></File>\r
-<File RelativePath="super_tone_rx.c"></File>\r
-<File RelativePath="super_tone_tx.c"></File>\r
-<File RelativePath="t4.c"></File>\r
-<File RelativePath="t30.c"></File>\r
-<File RelativePath="t30_api.c"></File>\r
-<File RelativePath="t30_logging.c"></File>\r
-<File RelativePath="t31.c"></File>\r
-<File RelativePath="t35.c"></File>\r
-<File RelativePath="t38_core.c"></File>\r
-<File RelativePath="t38_gateway.c"></File>\r
-<File RelativePath="t38_non_ecm_buffer.c"></File>\r
-<File RelativePath="t38_terminal.c"></File>\r
-<File RelativePath="testcpuid.c"></File>\r
-<File RelativePath="time_scale.c"></File>\r
-<File RelativePath="tone_detect.c"></File>\r
-<File RelativePath="tone_generate.c"></File>\r
-<File RelativePath="v17rx.c"></File>\r
-<File RelativePath="v17tx.c"></File>\r
-<File RelativePath="v22bis_rx.c"></File>\r
-<File RelativePath="v22bis_tx.c"></File>\r
-<File RelativePath="v27ter_rx.c"></File>\r
-<File RelativePath="v27ter_tx.c"></File>\r
-<File RelativePath="v29rx.c"></File>\r
-<File RelativePath="v29tx.c"></File>\r
-<File RelativePath="v42.c"></File>\r
-<File RelativePath="v42bis.c"></File>\r
-<File RelativePath="v8.c"></File>\r
-<File RelativePath="vector_float.c"></File>\r
-<File RelativePath="vector_int.c"></File>\r
-<File RelativePath=".\msvc\gettimeofday.c"></File>\r
-</Filter><Filter Name="Header Files">\r
-<File RelativePath="spandsp/adsi.h"></File>\r
-<File RelativePath="spandsp/async.h"></File>\r
-<File RelativePath="spandsp/arctan2.h"></File>\r
-<File RelativePath="spandsp/at_interpreter.h"></File>\r
-<File RelativePath="spandsp/awgn.h"></File>\r
-<File RelativePath="spandsp/bell_r2_mf.h"></File>\r
-<File RelativePath="spandsp/bert.h"></File>\r
-<File RelativePath="spandsp/biquad.h"></File>\r
-<File RelativePath="spandsp/bit_operations.h"></File>\r
-<File RelativePath="spandsp/bitstream.h"></File>\r
-<File RelativePath="spandsp/crc.h"></File>\r
-<File RelativePath="spandsp/complex.h"></File>\r
-<File RelativePath="spandsp/complex_filters.h"></File>\r
-<File RelativePath="spandsp/complex_vector_float.h"></File>\r
-<File RelativePath="spandsp/complex_vector_int.h"></File>\r
-<File RelativePath="spandsp/dc_restore.h"></File>\r
-<File RelativePath="spandsp/dds.h"></File>\r
-<File RelativePath="spandsp/dtmf.h"></File>\r
-<File RelativePath="spandsp/echo.h"></File>\r
-<File RelativePath="spandsp/fax.h"></File>\r
-<File RelativePath="spandsp/fax_modems.h"></File>\r
-<File RelativePath="spandsp/fir.h"></File>\r
-<File RelativePath="spandsp/fsk.h"></File>\r
-<File RelativePath="spandsp/g168models.h"></File>\r
-<File RelativePath="spandsp/g711.h"></File>\r
-<File RelativePath="spandsp/g722.h"></File>\r
-<File RelativePath="spandsp/g726.h"></File>\r
-<File RelativePath="spandsp/gsm0610.h"></File>\r
-<File RelativePath="spandsp/hdlc.h"></File>\r
-<File RelativePath="spandsp/ima_adpcm.h"></File>\r
-<File RelativePath="spandsp/logging.h"></File>\r
-<File RelativePath="spandsp/lpc10.h"></File>\r
-<File RelativePath="spandsp/modem_echo.h"></File>\r
-<File RelativePath="spandsp/modem_connect_tones.h"></File>\r
-<File RelativePath="spandsp/noise.h"></File>\r
-<File RelativePath="spandsp/oki_adpcm.h"></File>\r
-<File RelativePath="spandsp/playout.h"></File>\r
-<File RelativePath="spandsp/plc.h"></File>\r
-<File RelativePath="spandsp/power_meter.h"></File>\r
-<File RelativePath="spandsp/queue.h"></File>\r
-<File RelativePath="spandsp/saturated.h"></File>\r
-<File RelativePath="spandsp/schedule.h"></File>\r
-<File RelativePath="spandsp/sig_tone.h"></File>\r
-<File RelativePath="spandsp/silence_gen.h"></File>\r
-<File RelativePath="spandsp/super_tone_rx.h"></File>\r
-<File RelativePath="spandsp/super_tone_tx.h"></File>\r
-<File RelativePath="spandsp/t4.h"></File>\r
-<File RelativePath="spandsp/t30.h"></File>\r
-<File RelativePath="spandsp/t30_api.h"></File>\r
-<File RelativePath="spandsp/t30_fcf.h"></File>\r
-<File RelativePath="spandsp/t30_logging.h"></File>\r
-<File RelativePath="spandsp/t31.h"></File>\r
-<File RelativePath="spandsp/t35.h"></File>\r
-<File RelativePath="spandsp/t38_core.h"></File>\r
-<File RelativePath="spandsp/t38_gateway.h"></File>\r
-<File RelativePath="spandsp/t38_non_ecm_buffer.h"></File>\r
-<File RelativePath="spandsp/t38_terminal.h"></File>\r
-<File RelativePath="spandsp/telephony.h"></File>\r
-<File RelativePath="spandsp/time_scale.h"></File>\r
-<File RelativePath="spandsp/timing.h"></File>\r
-<File RelativePath="spandsp/tone_detect.h"></File>\r
-<File RelativePath="spandsp/tone_generate.h"></File>\r
-<File RelativePath="spandsp/v17rx.h"></File>\r
-<File RelativePath="spandsp/v17tx.h"></File>\r
-<File RelativePath="spandsp/v22bis.h"></File>\r
-<File RelativePath="spandsp/v27ter_rx.h"></File>\r
-<File RelativePath="spandsp/v27ter_tx.h"></File>\r
-<File RelativePath="spandsp/v29rx.h"></File>\r
-<File RelativePath="spandsp/v29tx.h"></File>\r
-<File RelativePath="spandsp/v42.h"></File>\r
-<File RelativePath="spandsp/v42bis.h"></File>\r
-<File RelativePath="spandsp/v8.h"></File>\r
-<File RelativePath="spandsp/vector_float.h"></File>\r
-<File RelativePath="spandsp/vector_int.h"></File>\r
-<File RelativePath="spandsp/version.h"></File>\r
-<File RelativePath="spandsp/private/adsi.h"></File>\r
-<File RelativePath="spandsp/private/async.h"></File>\r
-<File RelativePath="spandsp/private/at_interpreter.h"></File>\r
-<File RelativePath="spandsp/private/awgn.h"></File>\r
-<File RelativePath="spandsp/private/bell_r2_mf.h"></File>\r
-<File RelativePath="spandsp/private/bert.h"></File>\r
-<File RelativePath="spandsp/private/bitstream.h"></File>\r
-<File RelativePath="spandsp/private/dtmf.h"></File>\r
-<File RelativePath="spandsp/private/fax.h"></File>\r
-<File RelativePath="spandsp/private/fax_modems.h"></File>\r
-<File RelativePath="spandsp/private/fsk.h"></File>\r
-<File RelativePath="spandsp/private/g711.h"></File>\r
-<File RelativePath="spandsp/private/g722.h"></File>\r
-<File RelativePath="spandsp/private/g726.h"></File>\r
-<File RelativePath="spandsp/private/gsm0610.h"></File>\r
-<File RelativePath="spandsp/private/hdlc.h"></File>\r
-<File RelativePath="spandsp/private/ima_adpcm.h"></File>\r
-<File RelativePath="spandsp/private/logging.h"></File>\r
-<File RelativePath="spandsp/private/lpc10.h"></File>\r
-<File RelativePath="spandsp/private/modem_connect_tones.h"></File>\r
-<File RelativePath="spandsp/private/noise.h"></File>\r
-<File RelativePath="spandsp/private/oki_adpcm.h"></File>\r
-<File RelativePath="spandsp/private/queue.h"></File>\r
-<File RelativePath="spandsp/private/schedule.h"></File>\r
-<File RelativePath="spandsp/private/sig_tone.h"></File>\r
-<File RelativePath="spandsp/private/super_tone_rx.h"></File>\r
-<File RelativePath="spandsp/private/super_tone_tx.h"></File>\r
-<File RelativePath="spandsp/private/t30.h"></File>\r
-<File RelativePath="spandsp/private/t31.h"></File>\r
-<File RelativePath="spandsp/private/t38_core.h"></File>\r
-<File RelativePath="spandsp/private/t38_gateway.h"></File>\r
-<File RelativePath="spandsp/private/t38_non_ecm_buffer.h"></File>\r
-<File RelativePath="spandsp/private/t38_terminal.h"></File>\r
-<File RelativePath="spandsp/private/t4.h"></File>\r
-<File RelativePath="spandsp/private/time_scale.h"></File>\r
-<File RelativePath="spandsp/private/tone_detect.h"></File>\r
-<File RelativePath="spandsp/private/tone_generate.h"></File>\r
-<File RelativePath="spandsp/private/v17rx.h"></File>\r
-<File RelativePath="spandsp/private/v17tx.h"></File>\r
-<File RelativePath="spandsp/private/v22bis.h"></File>\r
-<File RelativePath="spandsp/private/v27ter_rx.h"></File>\r
-<File RelativePath="spandsp/private/v27ter_tx.h"></File>\r
-<File RelativePath="spandsp/private/v29rx.h"></File>\r
-<File RelativePath="spandsp/private/v29tx.h"></File>\r
-<File RelativePath="spandsp/private/v42.h"></File>\r
-<File RelativePath="spandsp/private/v42bis.h"></File>\r
-<File RelativePath="spandsp/private/v8.h"></File>\r
-<File RelativePath="spandsp/expose.h"></File>\r
-<File RelativePath="spandsp.h"></File>\r
- </Filter>\r <Filter\r\r
- Name="Resource Files"\r Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r >\r </Filter>\r\r
- </Files>\r <Globals>\r </Globals>\r</VisualStudioProject>\r\r
+ <File\r
+ RelativePath="adsi.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="async.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="at_interpreter.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="awgn.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="bell_r2_mf.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="bert.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="bit_operations.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="bitstream.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="complex_filters.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="complex_vector_float.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="complex_vector_int.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="crc.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="dds_float.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="dds_int.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="dtmf.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="echo.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="fax.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="fsk.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="g711.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="g722.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="g726.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath=".\msvc\gettimeofday.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="gsm0610_decode.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="gsm0610_encode.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="gsm0610_long_term.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="gsm0610_lpc.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="gsm0610_preprocess.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="gsm0610_rpe.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="gsm0610_short_term.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="hdlc.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="ima_adpcm.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="logging.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="lpc10_analyse.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="lpc10_decode.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="lpc10_encode.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="lpc10_placev.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="lpc10_voicing.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="modem_connect_tones.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="modem_echo.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="noise.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="oki_adpcm.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="playout.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="plc.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="power_meter.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="queue.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="schedule.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="sig_tone.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="silence_gen.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="super_tone_rx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="super_tone_tx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t30.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t30_api.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t30_logging.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t31.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t35.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t38_core.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t38_gateway.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t38_non_ecm_buffer.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t38_terminal.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="t4.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="testcpuid.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="time_scale.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="tone_detect.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="tone_generate.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v17rx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v17tx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v22bis_rx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v22bis_tx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v27ter_rx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v27ter_tx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v29rx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v29tx.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v42.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v42bis.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="v8.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="vector_float.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="vector_int.c"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Header Files"\r
+ >\r
+ <File\r
+ RelativePath=".\msvc\spandsp.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/adsi.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/arctan2.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/async.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/at_interpreter.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/awgn.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/bell_r2_mf.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/bert.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/biquad.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/bit_operations.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/bitstream.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/complex.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/complex_filters.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/complex_vector_float.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/complex_vector_int.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/crc.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/dc_restore.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/dds.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/dtmf.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/echo.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/expose.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/fax.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/fax_modems.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/fir.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/fsk.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/g168models.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/g711.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/g722.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/g726.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/gsm0610.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/hdlc.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/ima_adpcm.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/logging.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/lpc10.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/modem_connect_tones.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/modem_echo.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/noise.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/oki_adpcm.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/playout.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/plc.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/power_meter.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/adsi.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/async.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/at_interpreter.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/awgn.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/bell_r2_mf.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/bert.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/bitstream.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/dtmf.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/fax.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/fax_modems.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/fsk.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/g711.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/g722.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/g726.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/gsm0610.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/hdlc.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/ima_adpcm.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/logging.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/lpc10.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/modem_connect_tones.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/noise.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/oki_adpcm.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/queue.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/schedule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/sig_tone.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/super_tone_rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/super_tone_tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/t30.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/t31.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/t38_core.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/t38_gateway.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/t38_non_ecm_buffer.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/t38_terminal.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/t4.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/time_scale.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/tone_detect.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/tone_generate.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v17rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v17tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v22bis.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v27ter_rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v27ter_tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v29rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v29tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v42.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v42bis.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/private/v8.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/queue.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/saturated.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/schedule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/sig_tone.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/silence_gen.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/super_tone_rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/super_tone_tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t30.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t30_api.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t30_fcf.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t30_logging.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t31.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t35.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t38_core.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t38_gateway.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t38_non_ecm_buffer.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t38_terminal.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/t4.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/telephony.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/time_scale.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/timing.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/tone_detect.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/tone_generate.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v17rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v17tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v22bis.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v27ter_rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v27ter_tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v29rx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v29tx.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v42.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v42bis.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/v8.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/vector_float.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/vector_int.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="spandsp/version.h"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Resource Files"\r
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+ >\r
+ </Filter>\r
+ </Files>\r
+ <Globals>\r
+ </Globals>\r
+</VisualStudioProject>\r
}
/*- End of function --------------------------------------------------------*/
-int span_log_test(logging_state_t *s, int level)
+SPAN_DECLARE(int) span_log_test(logging_state_t *s, int level)
{
if (s && (s->level & SPAN_LOG_SEVERITY_MASK) >= (level & SPAN_LOG_SEVERITY_MASK))
return TRUE;
}
/*- End of function --------------------------------------------------------*/
-int span_log_buf(logging_state_t *s, int level, const char *tag, const uint8_t *buf, int len)
+SPAN_DECLARE(int) span_log_buf(logging_state_t *s, int level, const char *tag, const uint8_t *buf, int len)
{
char msg[1024];
int i;
}
/*- End of function --------------------------------------------------------*/
-int span_log_init(logging_state_t *s, int level, const char *tag)
+SPAN_DECLARE(int) span_log_init(logging_state_t *s, int level, const char *tag)
{
s->span_error = __span_error;
s->span_message = __span_message;
}
/*- End of function --------------------------------------------------------*/
-int span_log_set_level(logging_state_t *s, int level)
+SPAN_DECLARE(int) span_log_set_level(logging_state_t *s, int level)
{
s->level = level;
}
/*- End of function --------------------------------------------------------*/
-int span_log_set_tag(logging_state_t *s, const char *tag)
+SPAN_DECLARE(int) span_log_set_tag(logging_state_t *s, const char *tag)
{
s->tag = tag;
}
/*- End of function --------------------------------------------------------*/
-int span_log_set_protocol(logging_state_t *s, const char *protocol)
+SPAN_DECLARE(int) span_log_set_protocol(logging_state_t *s, const char *protocol)
{
s->protocol = protocol;
}
/*- End of function --------------------------------------------------------*/
-int span_log_set_sample_rate(logging_state_t *s, int samples_per_second)
+SPAN_DECLARE(int) span_log_set_sample_rate(logging_state_t *s, int samples_per_second)
{
s->samples_per_second = samples_per_second;
}
/*- End of function --------------------------------------------------------*/
-int span_log_bump_samples(logging_state_t *s, int samples)
+SPAN_DECLARE(int) span_log_bump_samples(logging_state_t *s, int samples)
{
s->elapsed_samples += samples;
}
/*- End of function --------------------------------------------------------*/
-void span_log_set_message_handler(logging_state_t *s, message_handler_func_t func)
+SPAN_DECLARE(void) span_log_set_message_handler(logging_state_t *s, message_handler_func_t func)
{
s->span_message = func;
}
/*- End of function --------------------------------------------------------*/
-void span_log_set_error_handler(logging_state_t *s, error_handler_func_t func)
+SPAN_DECLARE(void) span_log_set_error_handler(logging_state_t *s, error_handler_func_t func)
{
s->span_error = func;
}
/*- End of function --------------------------------------------------------*/
-void span_set_message_handler(message_handler_func_t func)
+SPAN_DECLARE(void) span_set_message_handler(message_handler_func_t func)
{
__span_message = func;
}
/*- End of function --------------------------------------------------------*/
-void span_set_error_handler(error_handler_func_t func)
+SPAN_DECLARE(void) span_set_error_handler(error_handler_func_t func)
{
__span_error = func;
}
}
/*- End of function --------------------------------------------------------*/
-lpc10_decode_state_t *lpc10_decode_init(lpc10_decode_state_t *s, int error_correction)
+SPAN_DECLARE(lpc10_decode_state_t *) lpc10_decode_init(lpc10_decode_state_t *s, int error_correction)
{
static const int16_t rand_init[] =
{
}
/*- End of function --------------------------------------------------------*/
-int lpc10_decode_release(lpc10_decode_state_t *s)
+SPAN_DECLARE(int) lpc10_decode_release(lpc10_decode_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int lpc10_decode(lpc10_decode_state_t *s, int16_t amp[], const uint8_t code[], int len)
+SPAN_DECLARE(int) lpc10_decode(lpc10_decode_state_t *s, int16_t amp[], const uint8_t code[], int len)
{
int voice[2];
int32_t pitch;
}
/*- End of function --------------------------------------------------------*/
-lpc10_encode_state_t *lpc10_encode_init(lpc10_encode_state_t *s, int error_correction)
+SPAN_DECLARE(lpc10_encode_state_t *) lpc10_encode_init(lpc10_encode_state_t *s, int error_correction)
{
int i;
int j;
}
/*- End of function --------------------------------------------------------*/
-int lpc10_encode_release(lpc10_encode_state_t *s)
+SPAN_DECLARE(int) lpc10_encode_release(lpc10_encode_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int lpc10_encode(lpc10_encode_state_t *s, uint8_t code[], const int16_t amp[], int len)
+SPAN_DECLARE(int) lpc10_encode(lpc10_encode_state_t *s, uint8_t code[], const int16_t amp[], int len)
{
int32_t voice[2];
int32_t pitch;
#define HDLC_FRAMING_OK_THRESHOLD 5
-const char *modem_connect_tone_to_str(int tone)
+SPAN_DECLARE(const char *) modem_connect_tone_to_str(int tone)
{
switch (tone)
{
}
/*- End of function --------------------------------------------------------*/
-int modem_connect_tones_tx(modem_connect_tones_tx_state_t *s,
+SPAN_DECLARE(int) modem_connect_tones_tx(modem_connect_tones_tx_state_t *s,
int16_t amp[],
int len)
{
}
/*- End of function --------------------------------------------------------*/
-modem_connect_tones_tx_state_t *modem_connect_tones_tx_init(modem_connect_tones_tx_state_t *s,
+SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem_connect_tones_tx_state_t *s,
int tone_type)
{
int alloced;
}
/*- End of function --------------------------------------------------------*/
-int modem_connect_tones_tx_free(modem_connect_tones_tx_state_t *s)
+SPAN_DECLARE(int) modem_connect_tones_tx_free(modem_connect_tones_tx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int modem_connect_tones_rx(modem_connect_tones_rx_state_t *s, const int16_t amp[], int len)
+SPAN_DECLARE(int) modem_connect_tones_rx(modem_connect_tones_rx_state_t *s, const int16_t amp[], int len)
{
int i;
int16_t notched;
}
/*- End of function --------------------------------------------------------*/
-int modem_connect_tones_rx_get(modem_connect_tones_rx_state_t *s)
+SPAN_DECLARE(int) modem_connect_tones_rx_get(modem_connect_tones_rx_state_t *s)
{
int x;
}
/*- End of function --------------------------------------------------------*/
-modem_connect_tones_rx_state_t *modem_connect_tones_rx_init(modem_connect_tones_rx_state_t *s,
+SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem_connect_tones_rx_state_t *s,
int tone_type,
tone_report_func_t tone_callback,
void *user_data)
}
/*- End of function --------------------------------------------------------*/
-int modem_connect_tones_rx_free(modem_connect_tones_rx_state_t *s)
+SPAN_DECLARE(int) modem_connect_tones_rx_free(modem_connect_tones_rx_state_t *s)
{
free(s);
return 0;
#include "spandsp/dc_restore.h"
#include "spandsp/modem_echo.h"
-modem_echo_can_state_t *modem_echo_can_create(int len)
+SPAN_DECLARE(modem_echo_can_state_t *) modem_echo_can_create(int len)
{
modem_echo_can_state_t *ec;
}
/*- End of function --------------------------------------------------------*/
-void modem_echo_can_free(modem_echo_can_state_t *ec)
+SPAN_DECLARE(void) modem_echo_can_free(modem_echo_can_state_t *ec)
{
fir16_free(&ec->fir_state);
free(ec->fir_taps32);
}
/*- End of function --------------------------------------------------------*/
-void modem_echo_can_flush(modem_echo_can_state_t *ec)
+SPAN_DECLARE(void) modem_echo_can_flush(modem_echo_can_state_t *ec)
{
ec->tx_power = 0;
}
/*- End of function --------------------------------------------------------*/
-void modem_echo_can_adaption_mode(modem_echo_can_state_t *ec, int adapt)
+SPAN_DECLARE(void) modem_echo_can_adaption_mode(modem_echo_can_state_t *ec, int adapt)
{
ec->adapt = adapt;
}
/*- End of function --------------------------------------------------------*/
-int16_t modem_echo_can_update(modem_echo_can_state_t *ec, int16_t tx, int16_t rx)
+SPAN_DECLARE(int16_t) modem_echo_can_update(modem_echo_can_state_t *ec, int16_t tx, int16_t rx)
{
int32_t echo_value;
int clean_rx;
#define HAVE_MATH_H
#define HAVE_TGMATH_H
+#define SPANDSP_USE_EXPORT_CAPABILITY 1
+
#ifdef __cplusplus
extern "C" {
#endif
#undef SPANDSP_USE_FIXED_POINT
#undef SPANDSP_MISALIGNED_ACCESS_FAILS
-#define SPANDSP_USE_EXPORT_CAPABILITY 1
#include <stdlib.h>
#include <inttypes.h>
ProjectType="Visual C++"\r
Version="9.00"\r
Name="libspandsp"\r
- ProjectGUID="{CF70F278-3364-4395-A2E1-23501C9B8AD2}"\r
+ ProjectGUID="{1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}"\r
RootNamespace="libspandsp"\r
Keyword="Win32Proj"\r
TargetFrameworkVersion="131072"\r
>\r
- <Platforms>\r
- <Platform\r
+ <Platforms>\r
+ <Platform\r
Name="Win32"\r
/>\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
+ </Platforms>\r
+ <ToolFiles>\r
+ </ToolFiles>\r
+ <Configurations>\r
+ <Configuration\r
Name="Debug|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ OutputDirectory="$(SolutionDir)Debug"\r
IntermediateDirectory="$(ConfigurationName)"\r
ConfigurationType="2"\r
CharacterSet="1"\r
>\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
+ <Tool\r
Name="VCCLCompilerTool"\r
Optimization="0"\r
- AdditionalIncludeDirectories=".;.\spandsp;.\msvc;.\generated;..\..\tiff\libtiff"\r
+ AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"\r
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H"\r
MinimalRebuild="true"\r
BasicRuntimeChecks="3"\r
CompileAs="1"\r
DisableSpecificWarnings="4127"\r
/>\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
+ <Tool\r
Name="VCLinkerTool"\r
LinkIncremental="2"\r
GenerateDebugInformation="true"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
DataExecutionPrevention="0"\r
+ ImportLibrary="./Debug\spandsp.lib"\r
TargetMachine="1"\r
/>\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
+ </Configuration>\r
+ <Configuration\r
Name="Release|Win32"\r
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"\r
+ OutputDirectory="$(SolutionDir)Release"\r
IntermediateDirectory="$(ConfigurationName)"\r
ConfigurationType="2"\r
CharacterSet="1"\r
WholeProgramOptimization="1"\r
>\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
+ <Tool\r
Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories=".;.\spandsp;.\msvc;.\generated;..\..\tiff\libtiff"\r
+ AdditionalIncludeDirectories=".;.\spandsp;.\msvc;..\..\tiff-3.8.2\libtiff;.\generated"\r
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBSPANDSP_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;HAVE_CONFIG_H"\r
RuntimeLibrary="2"\r
UsePrecompiledHeader="0"\r
DebugInformationFormat="3"\r
DisableSpecificWarnings="4127"\r
/>\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
+ <Tool\r
Name="VCLinkerTool"\r
LinkIncremental="1"\r
GenerateDebugInformation="true"\r
EnableCOMDATFolding="2"\r
RandomizedBaseAddress="1"\r
DataExecutionPrevention="0"\r
+ ImportLibrary="./Release\spandsp.lib"\r
TargetMachine="1"\r
/>\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
+ </Configuration>\r
+ </Configurations>\r
+ <References>\r
+ </References>\r
+ <Files>\r
+ <Filter\r
Name="Source Files"\r
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
+ >
\ No newline at end of file
#include "spandsp/private/noise.h"
-int16_t noise(noise_state_t *s)
+SPAN_DECLARE(int16_t) noise(noise_state_t *s)
{
int32_t val;
int i;
}
/*- End of function --------------------------------------------------------*/
-noise_state_t *noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
+SPAN_DECLARE(noise_state_t *) noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
{
return noise_init_dbov(s, seed, (level - DBM0_MAX_POWER), class_of_noise, quality);
}
/*- End of function --------------------------------------------------------*/
-noise_state_t *noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
+SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality)
{
float rms;
}
/*- End of function --------------------------------------------------------*/
-int noise_free(noise_state_t *s)
+SPAN_DECLARE(int) noise_free(noise_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-oki_adpcm_state_t *oki_adpcm_init(oki_adpcm_state_t *s, int bit_rate)
+SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s, int bit_rate)
{
if (bit_rate != 32000 && bit_rate != 24000)
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int oki_adpcm_release(oki_adpcm_state_t *s)
+SPAN_DECLARE(int) oki_adpcm_release(oki_adpcm_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int oki_adpcm_decode(oki_adpcm_state_t *s,
+SPAN_DECLARE(int) oki_adpcm_decode(oki_adpcm_state_t *s,
int16_t amp[],
const uint8_t oki_data[],
int oki_bytes)
}
/*- End of function --------------------------------------------------------*/
-int oki_adpcm_encode(oki_adpcm_state_t *s,
+SPAN_DECLARE(int) oki_adpcm_encode(oki_adpcm_state_t *s,
uint8_t oki_data[],
const int16_t amp[],
int len)
}
/*- End of function --------------------------------------------------------*/
-timestamp_t playout_next_due(playout_state_t *s)
+SPAN_DECLARE(timestamp_t) playout_next_due(playout_state_t *s)
{
return s->last_speech_sender_stamp + s->last_speech_sender_len;
}
/*- End of function --------------------------------------------------------*/
-timestamp_t playout_current_length(playout_state_t *s)
+SPAN_DECLARE(timestamp_t) playout_current_length(playout_state_t *s)
{
return s->target_buffer_length;
}
/*- End of function --------------------------------------------------------*/
-playout_frame_t *playout_get_unconditional(playout_state_t *s)
+SPAN_DECLARE(playout_frame_t *) playout_get_unconditional(playout_state_t *s)
{
playout_frame_t *frame;
}
/*- End of function --------------------------------------------------------*/
-int playout_get(playout_state_t *s, playout_frame_t *frameout, timestamp_t now)
+SPAN_DECLARE(int) playout_get(playout_state_t *s, playout_frame_t *frameout, timestamp_t now)
{
playout_frame_t *frame;
}
/*- End of function --------------------------------------------------------*/
-int playout_put(playout_state_t *s, void *data, int type, timestamp_t sender_len, timestamp_t sender_stamp, timestamp_t receiver_stamp)
+SPAN_DECLARE(int) playout_put(playout_state_t *s, void *data, int type, timestamp_t sender_len, timestamp_t sender_stamp, timestamp_t receiver_stamp)
{
playout_frame_t *frame;
playout_frame_t *p;
}
/*- End of function --------------------------------------------------------*/
-void playout_restart(playout_state_t *s, int min_length, int max_length)
+SPAN_DECLARE(void) playout_restart(playout_state_t *s, int min_length, int max_length)
{
playout_frame_t *frame;
playout_frame_t *next;
}
/*- End of function --------------------------------------------------------*/
-playout_state_t *playout_new(int min_length, int max_length)
+SPAN_DECLARE(playout_state_t *) playout_new(int min_length, int max_length)
{
playout_state_t *s;
}
/*- End of function --------------------------------------------------------*/
-void playout_free(playout_state_t *s)
+SPAN_DECLARE(void) playout_free(playout_state_t *s)
{
playout_frame_t *frame;
playout_frame_t *next;
}
/*- End of function --------------------------------------------------------*/
-int plc_rx(plc_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) plc_rx(plc_state_t *s, int16_t amp[], int len)
{
int i;
int pitch_overlap;
}
/*- End of function --------------------------------------------------------*/
-int plc_fillin(plc_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) plc_fillin(plc_state_t *s, int16_t amp[], int len)
{
int i;
int pitch_overlap;
}
/*- End of function --------------------------------------------------------*/
-plc_state_t *plc_init(plc_state_t *s)
+SPAN_DECLARE(plc_state_t *) plc_init(plc_state_t *s)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int plc_free(plc_state_t *s)
+SPAN_DECLARE(int) plc_free(plc_state_t *s)
{
if (s)
free(s);
#include "spandsp/telephony.h"
#include "spandsp/power_meter.h"
-power_meter_t *power_meter_init(power_meter_t *s, int shift)
+SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-power_meter_t *power_meter_damping(power_meter_t *s, int shift)
+SPAN_DECLARE(power_meter_t *) power_meter_damping(power_meter_t *s, int shift)
{
s->shift = shift;
return s;
}
/*- End of function --------------------------------------------------------*/
-int32_t power_meter_update(power_meter_t *s, int16_t amp)
+SPAN_DECLARE(int32_t) power_meter_update(power_meter_t *s, int16_t amp)
{
s->reading += ((amp*amp - s->reading) >> s->shift);
return s->reading;
}
/*- End of function --------------------------------------------------------*/
-int32_t power_meter_level_dbm0(float level)
+SPAN_DECLARE(int32_t) power_meter_level_dbm0(float level)
{
float l;
}
/*- End of function --------------------------------------------------------*/
-int32_t power_meter_level_dbov(float level)
+SPAN_DECLARE(int32_t) power_meter_level_dbov(float level)
{
float l;
}
/*- End of function --------------------------------------------------------*/
-int32_t power_meter_current(power_meter_t *s)
+SPAN_DECLARE(int32_t) power_meter_current(power_meter_t *s)
{
return s->reading;
}
/*- End of function --------------------------------------------------------*/
-float power_meter_current_dbm0(power_meter_t *s)
+SPAN_DECLARE(float) power_meter_current_dbm0(power_meter_t *s)
{
if (s->reading <= 0)
return FLT_MIN;
}
/*- End of function --------------------------------------------------------*/
-float power_meter_current_dbov(power_meter_t *s)
+SPAN_DECLARE(float) power_meter_current_dbov(power_meter_t *s)
{
if (s->reading <= 0)
return FLT_MIN;
#include "spandsp/private/queue.h"
-int queue_empty(queue_state_t *s)
+SPAN_DECLARE(int) queue_empty(queue_state_t *s)
{
return (s->iptr == s->optr);
}
/*- End of function --------------------------------------------------------*/
-int queue_free_space(queue_state_t *s)
+SPAN_DECLARE(int) queue_free_space(queue_state_t *s)
{
int len;
}
/*- End of function --------------------------------------------------------*/
-int queue_contents(queue_state_t *s)
+SPAN_DECLARE(int) queue_contents(queue_state_t *s)
{
int len;
}
/*- End of function --------------------------------------------------------*/
-void queue_flush(queue_state_t *s)
+SPAN_DECLARE(void) queue_flush(queue_state_t *s)
{
s->optr = s->iptr;
}
/*- End of function --------------------------------------------------------*/
-int queue_view(queue_state_t *s, uint8_t *buf, int len)
+SPAN_DECLARE(int) queue_view(queue_state_t *s, uint8_t *buf, int len)
{
int real_len;
int to_end;
}
/*- End of function --------------------------------------------------------*/
-int queue_read(queue_state_t *s, uint8_t *buf, int len)
+SPAN_DECLARE(int) queue_read(queue_state_t *s, uint8_t *buf, int len)
{
int real_len;
int to_end;
}
/*- End of function --------------------------------------------------------*/
-int queue_read_byte(queue_state_t *s)
+SPAN_DECLARE(int) queue_read_byte(queue_state_t *s)
{
int real_len;
int to_end;
}
/*- End of function --------------------------------------------------------*/
-int queue_write(queue_state_t *s, const uint8_t *buf, int len)
+SPAN_DECLARE(int) queue_write(queue_state_t *s, const uint8_t *buf, int len)
{
int real_len;
int to_end;
}
/*- End of function --------------------------------------------------------*/
-int queue_write_byte(queue_state_t *s, uint8_t byte)
+SPAN_DECLARE(int) queue_write_byte(queue_state_t *s, uint8_t byte)
{
int real_len;
int iptr;
}
/*- End of function --------------------------------------------------------*/
-int queue_state_test_msg(queue_state_t *s)
+SPAN_DECLARE(int) queue_state_test_msg(queue_state_t *s)
{
uint16_t lenx;
}
/*- End of function --------------------------------------------------------*/
-int queue_read_msg(queue_state_t *s, uint8_t *buf, int len)
+SPAN_DECLARE(int) queue_read_msg(queue_state_t *s, uint8_t *buf, int len)
{
uint16_t lenx;
}
/*- End of function --------------------------------------------------------*/
-int queue_write_msg(queue_state_t *s, const uint8_t *buf, int len)
+SPAN_DECLARE(int) queue_write_msg(queue_state_t *s, const uint8_t *buf, int len)
{
int real_len;
int to_end;
}
/*- End of function --------------------------------------------------------*/
-queue_state_t *queue_init(queue_state_t *s, int len, int flags)
+SPAN_DECLARE(queue_state_t *) queue_init(queue_state_t *s, int len, int flags)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int queue_free(queue_state_t *s)
+SPAN_DECLARE(int) queue_free(queue_state_t *s)
{
free(s);
return 0;
#include "spandsp/private/logging.h"
#include "spandsp/private/schedule.h"
-int span_schedule_event(span_sched_state_t *s, int us, span_sched_callback_func_t function, void *user_data)
+SPAN_DECLARE(int) span_schedule_event(span_sched_state_t *s, int us, span_sched_callback_func_t function, void *user_data)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-uint64_t span_schedule_next(span_sched_state_t *s)
+SPAN_DECLARE(uint64_t) span_schedule_next(span_sched_state_t *s)
{
int i;
uint64_t earliest;
}
/*- End of function --------------------------------------------------------*/
-uint64_t span_schedule_time(span_sched_state_t *s)
+SPAN_DECLARE(uint64_t) span_schedule_time(span_sched_state_t *s)
{
return s->ticker;
}
/*- End of function --------------------------------------------------------*/
-void span_schedule_update(span_sched_state_t *s, int us)
+SPAN_DECLARE(void) span_schedule_update(span_sched_state_t *s, int us)
{
int i;
span_sched_callback_func_t callback;
}
/*- End of function --------------------------------------------------------*/
-void span_schedule_del(span_sched_state_t *s, int i)
+SPAN_DECLARE(void) span_schedule_del(span_sched_state_t *s, int i)
{
if (i >= s->max_to_date
||
}
/*- End of function --------------------------------------------------------*/
-span_sched_state_t *span_schedule_init(span_sched_state_t *s)
+SPAN_DECLARE(span_sched_state_t *) span_schedule_init(span_sched_state_t *s)
{
memset(s, 0, sizeof(*s));
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
}
/*- End of function --------------------------------------------------------*/
-int span_schedule_release(span_sched_state_t *s)
+SPAN_DECLARE(int) span_schedule_release(span_sched_state_t *s)
{
if (s->sched)
{
}
};
-int sig_tone_tx(sig_tone_tx_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) sig_tone_tx(sig_tone_tx_state_t *s, int16_t amp[], int len)
{
int i;
int j;
}
/*- End of function --------------------------------------------------------*/
-void sig_tone_tx_set_mode(sig_tone_tx_state_t *s, int mode)
+SPAN_DECLARE(void) sig_tone_tx_set_mode(sig_tone_tx_state_t *s, int mode)
{
if ((mode & 0x03) == 0x03 && !(s->current_tx_tone & SIG_TONE_1_PRESENT))
s->high_low_timer = s->desc->high_low_timeout;
}
/*- End of function --------------------------------------------------------*/
-sig_tone_tx_state_t *sig_tone_tx_init(sig_tone_tx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data)
+SPAN_DECLARE(sig_tone_tx_state_t *) sig_tone_tx_init(sig_tone_tx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int sig_tone_rx(sig_tone_rx_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) sig_tone_rx(sig_tone_rx_state_t *s, int16_t amp[], int len)
{
#if defined(SPANDSP_USE_FIXED_POINT)
int32_t x;
}
/*- End of function --------------------------------------------------------*/
-sig_tone_rx_state_t *sig_tone_rx_init(sig_tone_rx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data)
+SPAN_DECLARE(sig_tone_rx_state_t *) sig_tone_rx_init(sig_tone_rx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data)
{
if (sig_update == NULL || tone_type < 1 || tone_type > 3)
return NULL;
#include "spandsp/async.h"
#include "spandsp/silence_gen.h"
-int silence_gen(silence_gen_state_t *s, int16_t *amp, int max_len)
+SPAN_DECLARE(int) silence_gen(silence_gen_state_t *s, int16_t *amp, int max_len)
{
if (s->remaining_samples != INT_MAX)
{
}
/*- End of function --------------------------------------------------------*/
-void silence_gen_always(silence_gen_state_t *s)
+SPAN_DECLARE(void) silence_gen_always(silence_gen_state_t *s)
{
s->remaining_samples = INT_MAX;
}
/*- End of function --------------------------------------------------------*/
-void silence_gen_set(silence_gen_state_t *s, int silent_samples)
+SPAN_DECLARE(void) silence_gen_set(silence_gen_state_t *s, int silent_samples)
{
s->remaining_samples = silent_samples;
s->total_samples = 0;
}
/*- End of function --------------------------------------------------------*/
-void silence_gen_alter(silence_gen_state_t *s, int silent_samples)
+SPAN_DECLARE(void) silence_gen_alter(silence_gen_state_t *s, int silent_samples)
{
/* Block negative silences */
if (silent_samples < 0)
}
/*- End of function --------------------------------------------------------*/
-int silence_gen_remainder(silence_gen_state_t *s)
+SPAN_DECLARE(int) silence_gen_remainder(silence_gen_state_t *s)
{
return s->remaining_samples;
}
/*- End of function --------------------------------------------------------*/
-int silence_gen_generated(silence_gen_state_t *s)
+SPAN_DECLARE(int) silence_gen_generated(silence_gen_state_t *s)
{
return s->total_samples;
}
/*- End of function --------------------------------------------------------*/
-void silence_gen_status_handler(silence_gen_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) silence_gen_status_handler(silence_gen_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-silence_gen_state_t *silence_gen_init(silence_gen_state_t *s, int silent_samples)
+SPAN_DECLARE(silence_gen_state_t *) silence_gen_init(silence_gen_state_t *s, int silent_samples)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int span_dummy_mod(void *user_data, int16_t amp[], int len)
+SPAN_DECLARE(int) span_dummy_mod(void *user_data, int16_t amp[], int len)
{
return len;
}
\param user_data An opaque pointer for the callback routine.
\return A pointer to the initialised context, or NULL if there was a problem.
*/
-SPAN_DECLARE(adsi_rx_state_t) *adsi_rx_init(adsi_rx_state_t *s, int standard, put_msg_func_t put_msg, void *user_data);
+SPAN_DECLARE(adsi_rx_state_t *) adsi_rx_init(adsi_rx_state_t *s, int standard, put_msg_func_t put_msg, void *user_data);
SPAN_DECLARE(int) adsi_rx_free(adsi_rx_state_t *s);
\param standard The code for the ADSI standard to be used.
\return A pointer to the initialised context, or NULL if there was a problem.
*/
-SPAN_DECLARE(adsi_tx_state_t) *adsi_tx_init(adsi_tx_state_t *s, int standard);
+SPAN_DECLARE(adsi_tx_state_t *) adsi_tx_init(adsi_tx_state_t *s, int standard);
SPAN_DECLARE(int) adsi_tx_free(adsi_tx_state_t *s);
\param standard The code for the standard.
\return A pointer to the name.
*/
-SPAN_DECLARE(const char) *adsi_standard_to_str(int standard);
+SPAN_DECLARE(const char *) adsi_standard_to_str(int standard);
#if defined(__cplusplus)
}
\brief Convert a signal status to a short text description.
\param status The modem signal status.
\return A pointer to the description. */
-SPAN_DECLARE(const char) *signal_status_to_str(int status);
+SPAN_DECLARE(const char *) signal_status_to_str(int status);
/*! Initialise an asynchronous data transmit context.
\brief Initialise an asynchronous data transmit context.
\param get_byte The callback routine used to get the data to be transmitted.
\param user_data An opaque pointer.
\return A pointer to the initialised context, or NULL if there was a problem. */
-SPAN_DECLARE(async_tx_state_t) *async_tx_init(async_tx_state_t *s,
+SPAN_DECLARE(async_tx_state_t *) async_tx_init(async_tx_state_t *s,
int data_bits,
int parity_bits,
int stop_bits,
\brief Get the next bit of a transmitted serial bit stream.
\param user_data An opaque point which must point to a transmitter context.
\return the next bit, or PUTBIT_END_OF_DATA to indicate the data stream has ended. */
-SPAN_DECLARE(int) async_tx_get_bit(void *user_data);
+int async_tx_get_bit(void *user_data);
/*! Initialise an asynchronous data receiver context.
\brief Initialise an asynchronous data receiver context.
\param put_byte The callback routine used to put the received data.
\param user_data An opaque pointer.
\return A pointer to the initialised context, or NULL if there was a problem. */
-SPAN_DECLARE(async_rx_state_t) *async_rx_init(async_rx_state_t *s,
+SPAN_DECLARE(async_rx_state_t *) async_rx_init(async_rx_state_t *s,
int data_bits,
int parity_bits,
int stop_bits,
- SIG_STATUS_TRAINING_SUCCEEDED
- SIG_STATUS_TRAINING_FAILED
- SIG_STATUS_END_OF_DATA */
-SPAN_DECLARE(void) async_rx_put_bit(void *user_data, int bit);
+void async_rx_put_bit(void *user_data, int bit);
#if defined(__cplusplus)
}
\param modem_control_handler x.
\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,
+SPAN_DECLARE(at_state_t *) at_init(at_state_t *s,
at_tx_handler_t *at_tx_handler,
void *at_tx_user_data,
at_modem_control_handler_t *modem_control_handler,
{
#endif
-SPAN_DECLARE(awgn_state_t) *awgn_init_dbm0(awgn_state_t *s, int idum, float level);
+SPAN_DECLARE(awgn_state_t *) awgn_init_dbm0(awgn_state_t *s, int idum, float level);
-SPAN_DECLARE(awgn_state_t) *awgn_init_dbov(awgn_state_t *s, int idum, float level);
+SPAN_DECLARE(awgn_state_t *) awgn_init_dbov(awgn_state_t *s, int idum, float level);
SPAN_DECLARE(int16_t) awgn(awgn_state_t *s);
/*! \brief Initialise a Bell MF generator context.
\param s The Bell MF generator context.
\return A pointer to the Bell MF generator context.*/
-SPAN_DECLARE(bell_mf_tx_state_t) *bell_mf_tx_init(bell_mf_tx_state_t *s);
+SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s);
/*! \brief Free a Bell MF generator context.
\param s The Bell MF generator context.
\param fwd TRUE if the context is for forward signals. FALSE if the
context is for backward signals.
\return A pointer to the MFC/R2 generator context.*/
-SPAN_DECLARE(r2_mf_tx_state_t) *r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd);
+SPAN_DECLARE(r2_mf_tx_state_t *) r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd);
/*! \brief Free an R2 MF tone generator context.
\param s The R2 MF tone generator context.
\param user_data An opaque pointer which is associated with the context,
and supplied in callbacks.
\return A pointer to the Bell MF receiver context.*/
-SPAN_DECLARE(bell_mf_rx_state_t) *bell_mf_rx_init(bell_mf_rx_state_t *s,
+SPAN_DECLARE(bell_mf_rx_state_t *) bell_mf_rx_init(bell_mf_rx_state_t *s,
digits_rx_callback_t callback,
void *user_data);
\param user_data An opaque pointer which is associated with the context,
and supplied in callbacks.
\return A pointer to the R2 MF receiver context. */
-SPAN_DECLARE(r2_mf_rx_state_t) *r2_mf_rx_init(r2_mf_rx_state_t *s,
+SPAN_DECLARE(r2_mf_rx_state_t *) r2_mf_rx_init(r2_mf_rx_state_t *s,
int fwd,
tone_report_func_t callback,
void *user_data);
/*! Return a short description of a BERT event.
\param event The event type.
\return A pointer to a short text string describing the event. */
-SPAN_DECLARE(const char) *bert_event_to_str(int event);
+SPAN_DECLARE(const char *) bert_event_to_str(int event);
/*! Initialise a BERT context.
\param s The BERT context.
\param resync_len ???
\param resync_percent The percentage of bad bits which will cause a resync.
\return The BERT context. */
-SPAN_DECLARE(bert_state_t) *bert_init(bert_state_t *s, int limit, int pattern, int resync_len, int resync_percent);
+SPAN_DECLARE(bert_state_t *) bert_init(bert_state_t *s, int limit, int pattern, int resync_len, int resync_percent);
/*! Get the next bit of the BERT sequence from the generator.
\param s The BERT context.
{
#endif
-SPAN_DECLARE(filter_t) *filter_create(fspec_t *fs);
+SPAN_DECLARE(filter_t *) filter_create(fspec_t *fs);
SPAN_DECLARE(void) filter_delete(filter_t *fi);
SPAN_DECLARE(float) filter_step(filter_t *fi, float x);
-SPAN_DECLARE(cfilter_t) *cfilter_create(fspec_t *fs);
+SPAN_DECLARE(cfilter_t *) cfilter_create(fspec_t *fs);
SPAN_DECLARE(void) cfilter_delete(cfilter_t *cfi);
SPAN_DECLARE(complexf_t) cfilter_step(cfilter_t *cfi, const complexf_t *z);
/*! \brief Initialise a DTMF tone generator context.
\param s The DTMF generator context.
\return A pointer to the DTMF generator context. */
-SPAN_DECLARE(dtmf_tx_state_t) *dtmf_tx_init(dtmf_tx_state_t *s);
+SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s);
/*! \brief Free a DTMF tone generator context.
\param s The DTMF tone generator context.
\param user_data An opaque pointer which is associated with the context,
and supplied in callbacks.
\return A pointer to the DTMF receiver context. */
-SPAN_DECLARE(dtmf_rx_state_t) *dtmf_rx_init(dtmf_rx_state_t *s,
+SPAN_DECLARE(dtmf_rx_state_t *) dtmf_rx_init(dtmf_rx_state_t *s,
digits_rx_callback_t callback,
void *user_data);
\param len The length of the canceller, in samples.
\return The new canceller context, or NULL if the canceller could not be created.
*/
-SPAN_DECLARE(echo_can_state_t) *echo_can_create(int len, int adaption_mode);
+SPAN_DECLARE(echo_can_state_t *) echo_can_create(int len, int adaption_mode);
/*! Free a voice echo canceller context.
\param ec The echo canceller context.
\param s The FAX context.
\return A pointer to the T.30 context, or NULL.
*/
-SPAN_DECLARE(t30_state_t) *fax_get_t30_state(fax_state_t *s);
+SPAN_DECLARE(t30_state_t *) fax_get_t30_state(fax_state_t *s);
/*! Get a pointer to the logging context associated with a FAX context.
\brief Get a pointer to the logging context associated with a FAX context.
\param s The FAX context.
\return A pointer to the logging context, or NULL.
*/
-SPAN_DECLARE(logging_state_t) *fax_get_logging_state(fax_state_t *s);
+SPAN_DECLARE(logging_state_t *) fax_get_logging_state(fax_state_t *s);
/*! Initialise a FAX context.
\brief Initialise a FAX context.
context is for an answering party.
\return A pointer to the FAX context, or NULL if there was a problem.
*/
-SPAN_DECLARE(fax_state_t) *fax_init(fax_state_t *s, int calling_party);
+SPAN_DECLARE(fax_state_t *) fax_init(fax_state_t *s, int calling_party);
/*! Release a FAX context.
\brief Release a FAX context.
SPAN_DECLARE(int) fax_modems_v17_v21_rx(void *user_data, const int16_t amp[], int len);
SPAN_DECLARE(int) fax_modems_v27ter_v21_rx(void *user_data, const int16_t amp[], int len);
SPAN_DECLARE(int) fax_modems_v29_v21_rx(void *user_data, const int16_t amp[], int len);
-SPAN_DECLARE(fax_modems_state_t) *fax_modems_init(fax_modems_state_t *s, void *user_data);
+SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s, void *user_data);
#if defined(__cplusplus)
}
\param get_bit The callback routine used to get the data to be transmitted.
\param user_data An opaque pointer.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(fsk_tx_state_t) *fsk_tx_init(fsk_tx_state_t *s,
+SPAN_DECLARE(fsk_tx_state_t *) fsk_tx_init(fsk_tx_state_t *s,
const fsk_spec_t *spec,
get_bit_func_t get_bit,
void *user_data);
\param put_bit The callback routine used to put the received data.
\param user_data An opaque pointer.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(fsk_rx_state_t) *fsk_rx_init(fsk_rx_state_t *s,
+SPAN_DECLARE(fsk_rx_state_t *) fsk_rx_init(fsk_rx_state_t *s,
const fsk_spec_t *spec,
int sync_mode,
put_bit_func_t put_bit,
\param s The G.711 context.
\param mode The G.711 mode.
\return A pointer to the G.711 context, or NULL for error. */
-SPAN_DECLARE(g711_state_t) *g711_init(g711_state_t *s, int mode);
+SPAN_DECLARE(g711_state_t *) g711_init(g711_state_t *s, int mode);
/*! Free a G.711 encode or decode context.
\param s The G.711 context.
The valid rates are 64000, 56000 and 48000.
\param options
\return A pointer to the G.722 encode context, or NULL for error. */
-SPAN_DECLARE(g722_encode_state_t) *g722_encode_init(g722_encode_state_t *s, int rate, int options);
+SPAN_DECLARE(g722_encode_state_t *) g722_encode_init(g722_encode_state_t *s, int rate, int options);
SPAN_DECLARE(int) g722_encode_release(g722_encode_state_t *s);
The valid rates are 64000, 56000 and 48000.
\param options
\return A pointer to the G.722 decode context, or NULL for error. */
-SPAN_DECLARE(g722_decode_state_t) *g722_decode_init(g722_decode_state_t *s, int rate, int options);
+SPAN_DECLARE(g722_decode_state_t *) g722_decode_init(g722_decode_state_t *s, int rate, int options);
SPAN_DECLARE(int) g722_decode_release(g722_decode_state_t *s);
\param ext_coding The coding used outside G.726.
\param packing One of the G.726_PACKING_xxx options.
\return A pointer to the G.726 context, or NULL for error. */
-SPAN_DECLARE(g726_state_t) *g726_init(g726_state_t *s, int bit_rate, int ext_coding, int packing);
+SPAN_DECLARE(g726_state_t *) g726_init(g726_state_t *s, int bit_rate, int ext_coding, int packing);
/*! Free a G.726 encode or decode context.
\param s The G.726 context.
\param s The GSM 06.10 context
\param packing One of the GSM0610_PACKING_xxx options.
\return A pointer to the GSM 06.10 context, or NULL for error. */
-SPAN_DECLARE(gsm0610_state_t) *gsm0610_init(gsm0610_state_t *s, int packing);
+SPAN_DECLARE(gsm0610_state_t *) gsm0610_init(gsm0610_state_t *s, int packing);
/*! Release a GSM 06.10 encode or decode context.
\param s The GSM 06.10 context
\param user_data An opaque parameter for the callback routine.
\return A pointer to the HDLC receiver context.
*/
-SPAN_DECLARE(hdlc_rx_state_t) *hdlc_rx_init(hdlc_rx_state_t *s,
+SPAN_DECLARE(hdlc_rx_state_t *) hdlc_rx_init(hdlc_rx_state_t *s,
int crc32,
int report_bad_frames,
int framing_ok_threshold,
\param user_data An opaque parameter for the callback routine.
\return A pointer to the HDLC transmitter context.
*/
-SPAN_DECLARE(hdlc_tx_state_t) *hdlc_tx_init(hdlc_tx_state_t *s,
+SPAN_DECLARE(hdlc_tx_state_t *) hdlc_tx_init(hdlc_tx_state_t *s,
int crc32,
int inter_frame_flags,
int progressive,
zero sample samples means treat each encode or decode operation
as a chunk.
\return A pointer to the IMA ADPCM context, or NULL for error. */
-SPAN_DECLARE(ima_adpcm_state_t) *ima_adpcm_init(ima_adpcm_state_t *s,
+SPAN_DECLARE(ima_adpcm_state_t *) ima_adpcm_init(ima_adpcm_state_t *s,
int variant,
int chunk_size);
\param s The LPC10e context
\param error_correction ???
\return A pointer to the LPC10e context, or NULL for error. */
-SPAN_DECLARE(lpc10_encode_state_t) *lpc10_encode_init(lpc10_encode_state_t *s, int error_correction);
+SPAN_DECLARE(lpc10_encode_state_t *) lpc10_encode_init(lpc10_encode_state_t *s, int error_correction);
SPAN_DECLARE(int) lpc10_encode_release(lpc10_encode_state_t *s);
\param s The LPC10e context
\param error_correction ???
\return A pointer to the LPC10e context, or NULL for error. */
-SPAN_DECLARE(lpc10_decode_state_t) *lpc10_decode_init(lpc10_decode_state_t *st, int error_correction);
+SPAN_DECLARE(lpc10_decode_state_t *) lpc10_decode_init(lpc10_decode_state_t *st, int error_correction);
SPAN_DECLARE(int) lpc10_decode_release(lpc10_decode_state_t *s);
/*! \brief Initialise an instance of the modem connect tones generator.
\param s The context.
*/
-SPAN_DECLARE(modem_connect_tones_tx_state_t) *modem_connect_tones_tx_init(modem_connect_tones_tx_state_t *s,
+SPAN_DECLARE(modem_connect_tones_tx_state_t *) modem_connect_tones_tx_init(modem_connect_tones_tx_state_t *s,
int tone_type);
/*! \brief Free an instance of the modem connect tones generator.
\param user_data An opaque pointer passed to the callback routine,
\return A pointer to the context.
*/
-SPAN_DECLARE(modem_connect_tones_rx_state_t) *modem_connect_tones_rx_init(modem_connect_tones_rx_state_t *s,
+SPAN_DECLARE(modem_connect_tones_rx_state_t *) modem_connect_tones_rx_init(modem_connect_tones_rx_state_t *s,
int tone_type,
tone_report_func_t tone_callback,
void *user_data);
\return 0 for OK, else -1. */
SPAN_DECLARE(int) modem_connect_tones_rx_free(modem_connect_tones_rx_state_t *s);
-SPAN_DECLARE(const char) *modem_connect_tone_to_str(int tone);
+SPAN_DECLARE(const char *) modem_connect_tone_to_str(int tone);
#if defined(__cplusplus)
}
\param len The length of the canceller, in samples.
eturn The new canceller context, or NULL if the canceller could not be created.
*/
-SPAN_DECLARE(modem_echo_can_state_t) *modem_echo_can_create(int len);
+SPAN_DECLARE(modem_echo_can_state_t *) modem_echo_can_create(int len);
/*! Free a modem echo canceller context.
\param ec The echo canceller context.
generation to be adjusted.
\return A pointer to the noise generator context.
*/
-SPAN_DECLARE(noise_state_t) *noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality);
+SPAN_DECLARE(noise_state_t *) noise_init_dbm0(noise_state_t *s, int seed, float level, int class_of_noise, int quality);
-SPAN_DECLARE(noise_state_t) *noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality);
+SPAN_DECLARE(noise_state_t *) noise_init_dbov(noise_state_t *s, int seed, float level, int class_of_noise, int quality);
SPAN_DECLARE(int) noise_free(noise_state_t *s);
\param bit_rate The required bit rate for the ADPCM data.
The valid rates are 24000 and 32000.
\return A pointer to the Oki ADPCM context, or NULL for error. */
-SPAN_DECLARE(oki_adpcm_state_t) *oki_adpcm_init(oki_adpcm_state_t *s,
+SPAN_DECLARE(oki_adpcm_state_t *) oki_adpcm_init(oki_adpcm_state_t *s,
int bit_rate);
/*! Free an Oki ADPCM encode or decode context.
all its contents, before the context is freed.
\param s The play-out context.
\return The frame, or NULL is the queue is empty. */
-SPAN_DECLARE(playout_frame_t) *playout_get_unconditional(playout_state_t *s);
+SPAN_DECLARE(playout_frame_t *) playout_get_unconditional(playout_state_t *s);
/*! Find the current length of the buffer.
\param s The play-out context.
\param max_length Maximum length of the buffer, in samples. If this equals min_length, static
length buffering is used.
\return The new context */
-SPAN_DECLARE(playout_state_t) *playout_new(int min_length, int max_length);
+SPAN_DECLARE(playout_state_t *) playout_new(int min_length, int max_length);
/*! Destroy an instance of play-out buffering.
\param s The play-out context to be destroyed */
\brief Initialise a PLC context.
\param s The packet loss concealer context.
\return A pointer to the the packet loss concealer context. */
-SPAN_DECLARE(plc_state_t) *plc_init(plc_state_t *s);
+SPAN_DECLARE(plc_state_t *) plc_init(plc_state_t *s);
/*! Free a packet loss concealer context.
\param s The packet loss concealer context.
\param s The power meter context.
\param shift The shift to be used by the IIR filter.
\return The power meter context. */
-SPAN_DECLARE(power_meter_t) *power_meter_init(power_meter_t *s, int shift);
+SPAN_DECLARE(power_meter_t *) power_meter_init(power_meter_t *s, int shift);
/*! Change the damping factor of a power meter context.
\brief Change the damping factor of a power meter context.
\param s The power meter context.
\param shift The new shift to be used by the IIR filter.
\return The power meter context. */
-SPAN_DECLARE(power_meter_t) *power_meter_damping(power_meter_t *s, int shift);
+SPAN_DECLARE(power_meter_t *) power_meter_damping(power_meter_t *s, int shift);
/*! Update a power meter.
\brief Update a power meter.
\param flags Flags controlling the operation of the queue.
Valid flags are QUEUE_READ_ATOMIC and QUEUE_WRITE_ATOMIC.
\return A pointer to the context if OK, else NULL. */
-SPAN_DECLARE(queue_state_t) *queue_init(queue_state_t *s, int len, int flags);
+SPAN_DECLARE(queue_state_t *) queue_init(queue_state_t *s, int len, int flags);
/*! Delete a queue.
\brief Delete a queue.
SPAN_DECLARE(void) span_schedule_update(span_sched_state_t *s, int us);
SPAN_DECLARE(void) span_schedule_del(span_sched_state_t *s, int id);
-SPAN_DECLARE(span_sched_state_t) *span_schedule_init(span_sched_state_t *s);
+SPAN_DECLARE(span_sched_state_t *) span_schedule_init(span_sched_state_t *s);
SPAN_DECLARE(int) span_schedule_release(span_sched_state_t *s);
#if defined(__cplusplus)
\param sig_update Callback function to handle signaling updates.
\param user_data An opaque pointer.
\return A pointer to the signalling tone context, or NULL if there was a problem. */
-SPAN_DECLARE(sig_tone_rx_state_t) *sig_tone_rx_init(sig_tone_rx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
+SPAN_DECLARE(sig_tone_rx_state_t *) sig_tone_rx_init(sig_tone_rx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
/*! Generate a block of signaling tone audio samples.
\brief Generate a block of signaling tone audio samples.
\param sig_update Callback function to handle signaling updates.
\param user_data An opaque pointer.
\return A pointer to the signalling tone context, or NULL if there was a problem. */
-SPAN_DECLARE(sig_tone_tx_state_t) *sig_tone_tx_init(sig_tone_tx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
+SPAN_DECLARE(sig_tone_tx_state_t *) sig_tone_tx_init(sig_tone_tx_state_t *s, int tone_type, sig_tone_func_t sig_update, void *user_data);
#if defined(__cplusplus)
}
\param silent_samples The initial number of samples to set the silence to.
\return A pointer to the silence generator context.
*/
-SPAN_DECLARE(silence_gen_state_t) *silence_gen_init(silence_gen_state_t *s, int silent_samples);
+SPAN_DECLARE(silence_gen_state_t *) silence_gen_init(silence_gen_state_t *s, int silent_samples);
/* The following dummy routines, to absorb data, don't really have a proper home,
so they have been put here. */
\param len The length of the signal buffer
\return 0.
*/
-SPAN_DECLARE(int) span_dummy_rx(void *user_data, const int16_t amp[], int len);
+int span_dummy_rx(void *user_data, const int16_t amp[], int len);
/*! A dummy routine to use as a signal modifier callback, when we aren't
really trying to process the signal. It just returns without affecting
descriptor.
\return The supervisory tone set descriptor.
*/
-SPAN_DECLARE(super_tone_rx_descriptor_t) *super_tone_rx_make_descriptor(super_tone_rx_descriptor_t *desc);
+SPAN_DECLARE(super_tone_rx_descriptor_t *) super_tone_rx_make_descriptor(super_tone_rx_descriptor_t *desc);
/*! Free a supervisory tone detector descriptor.
\param desc The supervisory tone set desciptor.
\param user_data An opaque pointer passed when calling the callback routine.
\return The supervisory tone detector context.
*/
-SPAN_DECLARE(super_tone_rx_state_t) *super_tone_rx_init(super_tone_rx_state_t *s,
+SPAN_DECLARE(super_tone_rx_state_t *) super_tone_rx_init(super_tone_rx_state_t *s,
super_tone_rx_descriptor_t *desc,
tone_report_func_t callback,
void *user_data);
{
#endif
-SPAN_DECLARE(super_tone_tx_step_t) *super_tone_tx_make_step(super_tone_tx_step_t *s,
+SPAN_DECLARE(super_tone_tx_step_t *) super_tone_tx_make_step(super_tone_tx_step_t *s,
float f1,
float l1,
float f2,
\param s The supervisory tone generator context.
\param tree The supervisory tone tree to be generated.
\return The supervisory tone generator context. */
-SPAN_DECLARE(super_tone_tx_state_t) *super_tone_tx_init(super_tone_tx_state_t *s, super_tone_tx_step_t *tree);
+SPAN_DECLARE(super_tone_tx_state_t *) super_tone_tx_init(super_tone_tx_state_t *s, super_tone_tx_step_t *tree);
/*! Generate a block of audio samples for a supervisory tone pattern.
\brief Generate a block of audio samples for a supervisory tone pattern.
\param send_hdlc_handler
\param send_hdlc_user_data
\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,
t30_set_handler_t *set_rx_type_handler,
void *set_rx_type_user_data,
\brief Get a bit of received non-ECM image data.
\param user_data An opaque pointer, which must point to the T.30 context.
\return The next bit to transmit. */
-SPAN_DECLARE(int) t30_non_ecm_get_bit(void *user_data);
+int t30_non_ecm_get_bit(void *user_data);
/*! Get a byte of received non-ECM image data.
\brief Get a byte of received non-ECM image data.
\brief Process a bit of received non-ECM image data
\param user_data An opaque pointer, which must point to the T.30 context.
\param bit The received bit. */
-SPAN_DECLARE(void) t30_non_ecm_put_bit(void *user_data, int bit);
+void t30_non_ecm_put_bit(void *user_data, int bit);
/*! Process a byte of received non-ECM image data.
\brief Process a byte of received non-ECM image data
\param msg The HDLC message.
\param len The length of the message, in octets.
\param ok TRUE if the frame was received without error. */
-SPAN_DECLARE(void) t30_hdlc_accept(void *user_data, const uint8_t *msg, int len, int ok);
+void t30_hdlc_accept(void *user_data, const uint8_t *msg, int len, int ok);
/*! Report the passage of time to the T.30 engine.
\brief Report the passage of time to the T.30 engine.
\param s The T.30 context.
\param id A pointer to the identifier.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_tx_ident(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_tx_ident(t30_state_t *s);
/*! Get the transmitted identifier associated with a T.30 context.
\brief Set the transmitted identifier associated with a T.30 context.
\param s The T.30 context.
\param id A pointer to the identifier.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_rx_ident(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_ident(t30_state_t *s);
/*! Set the transmitted sub-address associated with a T.30 context.
\brief Set the transmitted sub-address associated with a T.30 context.
\param s The T.30 context.
\param sub_address A pointer to the sub-address.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_tx_sub_address(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_tx_sub_address(t30_state_t *s);
/*! Get the received sub-address associated with a T.30 context.
\brief Get the received sub-address associated with a T.30 context.
\param s The T.30 context.
\param sub_address A pointer to the sub-address.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_rx_sub_address(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_sub_address(t30_state_t *s);
/*! Set the transmitted selective polling address (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param selective_polling_address A pointer to the selective polling address.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_tx_selective_polling_address(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_tx_selective_polling_address(t30_state_t *s);
/*! Get the received selective polling address (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param selective_polling_address A pointer to the selective polling address.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_rx_selective_polling_address(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_selective_polling_address(t30_state_t *s);
/*! Set the transmitted polled sub-address (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param polled_sub_address A pointer to the polled sub-address.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_tx_polled_sub_address(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_tx_polled_sub_address(t30_state_t *s);
/*! Get the received polled sub-address (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param polled_sub_address A pointer to the polled sub-address.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_rx_polled_sub_address(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_polled_sub_address(t30_state_t *s);
/*! Set the transmitted sender ident (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param sender_ident A pointer to the sender ident.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_tx_sender_ident(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_tx_sender_ident(t30_state_t *s);
/*! Get the received sender ident (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param sender_ident A pointer to the sender ident.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_rx_sender_ident(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_sender_ident(t30_state_t *s);
/*! Set the transmitted password (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param password A pointer to the password.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_tx_password(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_tx_password(t30_state_t *s);
/*! Get the received password (i.e. the one we will send to the far
end) associated with a T.30 context.
\param s The T.30 context.
\param password A pointer to the password.
\return 0 for OK, else -1. */
-SPAN_DECLARE(const char) *t30_get_rx_password(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_password(t30_state_t *s);
/*! Set the transmitted ??? (i.e. the one we will send to the far
end) associated with a T.30 context.
\brief Get the country of origin of the remote FAX machine associated with a T.30 context.
\param s The T.30 context.
\return a pointer to the country name, or NULL if the country is not known. */
-SPAN_DECLARE(const char) *t30_get_rx_country(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_country(t30_state_t *s);
/*! Get the name of the vendor of the remote FAX machine associated with a T.30 context.
\brief Get the name of the vendor of the remote FAX machine associated with a T.30 context.
\param s The T.30 context.
\return a pointer to the vendor name, or NULL if the vendor is not known. */
-SPAN_DECLARE(const char) *t30_get_rx_vendor(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_vendor(t30_state_t *s);
/*! Get the name of the model of the remote FAX machine associated with a T.30 context.
\brief Get the name of the model of the remote FAX machine associated with a T.30 context.
\param s The T.30 context.
\return a pointer to the model name, or NULL if the model is not known. */
-SPAN_DECLARE(const char) *t30_get_rx_model(t30_state_t *s);
+SPAN_DECLARE(const char *) t30_get_rx_model(t30_state_t *s);
/*! Specify the file name of the next TIFF file to be received by a T.30
context.
\param s The T.30 context.
\return A pointer to the logging context, or NULL.
*/
-SPAN_DECLARE(logging_state_t) *t30_get_logging_state(t30_state_t *s);
+SPAN_DECLARE(logging_state_t *) t30_get_logging_state(t30_state_t *s);
#if defined(__cplusplus)
}
\param x The frametype octet.
\return A pointer to the text name for the frame type. If the frame type is
not value, the string "???" is returned. */
-SPAN_DECLARE(const char) *t30_frametype(uint8_t x);
+SPAN_DECLARE(const char *) t30_frametype(uint8_t x);
/*! Decode a DIS, DTC or DCS frame, and log the contents.
\brief Decode a DIS, DTC or DCS frame, and log the contents.
\brief Convert a phase E completion code to a short text description.
\param result The result code.
\return A pointer to the description. */
-SPAN_DECLARE(const char) *t30_completion_code_to_str(int result);
+SPAN_DECLARE(const char *) t30_completion_code_to_str(int result);
#if defined(__cplusplus)
}
\param s The T.31 context.
\return A pointer to the logging context, or NULL.
*/
-SPAN_DECLARE(logging_state_t) *t31_get_logging_state(t31_state_t *s);
+SPAN_DECLARE(logging_state_t *) t31_get_logging_state(t31_state_t *s);
-SPAN_DECLARE(t38_core_state_t) *t31_get_t38_core_state(t31_state_t *s);
+SPAN_DECLARE(t38_core_state_t *) t31_get_t38_core_state(t31_state_t *s);
/*! Initialise a T.31 context. This must be called before the first
use of the context, to initialise its contents.
\param tx_t38_packet_handler ???
\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,
+SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
at_tx_handler_t *at_tx_handler,
void *at_tx_user_data,
t31_modem_control_handler_t *modem_control_handler,
/*! \brief Convert the code for an indicator to a short text name.
\param indicator The type of indicator.
\return A pointer to a short text name for the indicator. */
-SPAN_DECLARE(const char) *t38_indicator_to_str(int indicator);
+SPAN_DECLARE(const char *) t38_indicator_to_str(int indicator);
/*! \brief Convert the code for a type of data to a short text name.
\param data_type The data type.
\return A pointer to a short text name for the data type. */
-SPAN_DECLARE(const char) *t38_data_type_to_str(int data_type);
+SPAN_DECLARE(const char *) t38_data_type_to_str(int data_type);
/*! \brief Convert the code for a type of data field to a short text name.
\param field_type The field type.
\return A pointer to a short text name for the field type. */
-SPAN_DECLARE(const char) *t38_field_type_to_str(int field_type);
+SPAN_DECLARE(const char *) t38_field_type_to_str(int field_type);
/*! \brief Convert the code for a CM profile code to text description.
\param profile The profile code from a CM message.
\return A pointer to a short text description of the profile. */
-SPAN_DECLARE(const char) *t38_cm_profile_to_str(int profile);
+SPAN_DECLARE(const char *) t38_cm_profile_to_str(int profile);
/*! \brief Convert a JM message code to text description.
\param data The data field of the message.
\param len The length of the data field.
\return A pointer to a short text description of the profile. */
-SPAN_DECLARE(const char) *t38_jm_to_str(const uint8_t *data, int len);
+SPAN_DECLARE(const char *) t38_jm_to_str(const uint8_t *data, int len);
/*! \brief Convert a V34rate message to an actual bit rate.
\param data The data field of the message.
\param s The T.38 context.
\return A pointer to the logging context, or NULL.
*/
-SPAN_DECLARE(logging_state_t) *t38_core_get_logging_state(t38_core_state_t *s);
+SPAN_DECLARE(logging_state_t *) t38_core_get_logging_state(t38_core_state_t *s);
-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_data_handler_t *rx_data_handler,
t38_rx_missing_handler_t *rx_missing_handler,
\param tx_packet_handler A callback routine to encapsulate and transmit T.38 packets.
\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,
+SPAN_DECLARE(t38_gateway_state_t *) t38_gateway_init(t38_gateway_state_t *s,
t38_tx_packet_handler_t *tx_packet_handler,
void *tx_packet_user_data);
\param s The T.38 context.
\return A pointer to the T.38 core context, or NULL.
*/
-SPAN_DECLARE(t38_core_state_t) *t38_gateway_get_t38_core_state(t38_gateway_state_t *s);
+SPAN_DECLARE(t38_core_state_t *) t38_gateway_get_t38_core_state(t38_gateway_state_t *s);
/*! Get a pointer to the logging context associated with a T.38 context.
\brief Get a pointer to the logging context associated with a T.38 context.
\param s The T.38 context.
\return A pointer to the logging context, or NULL.
*/
-SPAN_DECLARE(logging_state_t) *t38_gateway_get_logging_state(t38_gateway_state_t *s);
+SPAN_DECLARE(logging_state_t *) t38_gateway_get_logging_state(t38_gateway_state_t *s);
/*! 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 mode TRUE for image data mode, or FALSE for TCF mode.
\param bits The minimum number of bits per FAX image row.
\return A pointer to the buffer context, or NULL if there was a problem. */
-SPAN_DECLARE(t38_non_ecm_buffer_state_t) *t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits);
+SPAN_DECLARE(t38_non_ecm_buffer_state_t *) t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits);
/*! \brief Set the mode of a T.38 rate adapting non-ECM buffer context.
\param s The buffer context.
/*! \brief Get the next bit of data from a T.38 rate adapting non-ECM buffer context.
\param user_data The buffer context, cast to a void pointer.
\return The next bit, or one of the values indicating a change of modem status. */
-SPAN_DECLARE(int) t38_non_ecm_buffer_get_bit(void *user_data);
+int t38_non_ecm_buffer_get_bit(void *user_data);
#if defined(__cplusplus)
}
\param s The T.38 context.
\return A pointer to the T.30 context, or NULL.
*/
-SPAN_DECLARE(t30_state_t) *t38_terminal_get_t30_state(t38_terminal_state_t *s);
+SPAN_DECLARE(t30_state_t *) t38_terminal_get_t30_state(t38_terminal_state_t *s);
/*! Get a pointer to the T.38 core IFP packet engine associated with a
termination mode T.38 context.
\param s The T.38 context.
\return A pointer to the T.38 core context, or NULL.
*/
-SPAN_DECLARE(t38_core_state_t) *t38_terminal_get_t38_core_state(t38_terminal_state_t *s);
+SPAN_DECLARE(t38_core_state_t *) t38_terminal_get_t38_core_state(t38_terminal_state_t *s);
/*! Get a pointer to the logging context associated with a T.38 context.
\brief Get a pointer to the logging context associated with a T.38 context.
\param s The T.38 context.
\return A pointer to the logging context, or NULL.
*/
-SPAN_DECLARE(logging_state_t) *t38_terminal_get_logging_state(t38_terminal_state_t *s);
+SPAN_DECLARE(logging_state_t *) t38_terminal_get_logging_state(t38_terminal_state_t *s);
/*! \brief Initialise a termination mode T.38 context.
\param s The T.38 context.
\param tx_packet_handler A callback routine to encapsulate and transmit T.38 packets.
\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_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,
t38_tx_packet_handler_t *tx_packet_handler,
void *tx_packet_user_data);
\param file The name of the file to be received.
\param output_encoding The output encoding.
\return A pointer to the context, or NULL if there was a problem. */
-SPAN_DECLARE(t4_state_t) *t4_rx_init(t4_state_t *s, const char *file, int output_encoding);
+SPAN_DECLARE(t4_state_t *) t4_rx_init(t4_state_t *s, const char *file, int output_encoding);
/*! \brief Prepare to receive the next page of the current document.
\param s The T.4 context.
\param start_page The first page to send. -1 for no restriction.
\param stop_page The last page to send. -1 for no restriction.
\return A pointer to the context, or NULL if there was a problem. */
-SPAN_DECLARE(t4_state_t) *t4_tx_init(t4_state_t *s, const char *file, int start_page, int stop_page);
+SPAN_DECLARE(t4_state_t *) t4_tx_init(t4_state_t *s, const char *file, int start_page, int stop_page);
/*! \brief Prepare to send the next page of the current document.
\param s The T.4 context.
\brief Get the short text name of an encoding format.
\param encoding The encoding type.
\return A pointer to the string. */
-SPAN_DECLARE(const char) *t4_encoding_to_str(int encoding);
+SPAN_DECLARE(const char *) t4_encoding_to_str(int encoding);
#if defined(__cplusplus)
}
#if !defined(_SPANDSP_TELEPHONY_H_)
#define _SPANDSP_TELEPHONY_H_
-#if defined(SPANDSP_USE_EXPORT_CAPABILITY)
-#if defined(__GNUC__) || defined(__SUNCC__)
-#define SPAN_DECLARE(type) __attribute__((visibility("default"))) type
-#define SPAN_DECLARE_NONSTD(type) __attribute__((visibility("default"))) type
-#define SPAN_DECLARE_DATA __attribute__((visibility("default")))
-#endif
#if defined(WIN32)
-#define SPAN_DECLARE(type) __declspec(dllexport) type __stdcall
-#define SPAN_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl
-#define SPAN_DECLARE_DATA __declspec(dllexport)
-#endif
+# if defined(LIBSPANDSP_EXPORTS)
+# define SPAN_DECLARE(type) __declspec(dllexport) type __stdcall
+# define SPAN_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl
+# define SPAN_DECLARE_DATA __declspec(dllexport)
+# else
+# define SPAN_DECLARE(type) __declspec(dllimport) type __stdcall
+# define SPAN_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl
+# define SPAN_DECLARE_DATA __declspec(dllimport)
+# endif
+#elif defined(SPANDSP_USE_EXPORT_CAPABILITY) && (defined(__GNUC__) || defined(__SUNCC__))
+# define SPAN_DECLARE(type) __attribute__((visibility("default"))) type
+# define SPAN_DECLARE_NONSTD(type) __attribute__((visibility("default"))) type
+# define SPAN_DECLARE_DATA __attribute__((visibility("default")))
#else
-#define SPAN_DECLARE(type) /**/ type
-#define SPAN_DECLARE_NONSTD(type) /**/ type
-#define SPAN_DECLARE_DATA /**/
+# define SPAN_DECLARE(type) /**/ type
+# define SPAN_DECLARE_NONSTD(type) /**/ type
+# define SPAN_DECLARE_DATA /**/
#endif
#define SAMPLE_RATE 8000
\param sample_rate The sample rate of the signal.
\param playout_rate The ratio between the output speed and the input speed.
\return A pointer to the context, or NULL if there was a problem. */
-SPAN_DECLARE(time_scale_state_t) *time_scale_init(time_scale_state_t *s, int sample_rate, float playout_rate);
+SPAN_DECLARE(time_scale_state_t *) time_scale_init(time_scale_state_t *s, int sample_rate, float playout_rate);
/*! \brief Free a time scale context.
\param s The time scale context.
int d4,
int repeat);
-SPAN_DECLARE(tone_gen_state_t) *tone_gen_init(tone_gen_state_t *s, tone_gen_descriptor_t *t);
+SPAN_DECLARE(tone_gen_state_t *) tone_gen_init(tone_gen_state_t *s, tone_gen_descriptor_t *t);
SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples);
\param put_bit The callback routine used to put the received data.
\param user_data An opaque pointer passed to the put_bit routine.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(v17_rx_state_t) *v17_rx_init(v17_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data);
+SPAN_DECLARE(v17_rx_state_t *) v17_rx_init(v17_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data);
/*! Reinitialise an existing V.17 modem receive context.
\brief Reinitialise an existing V.17 modem receive context.
\return 0 for OK */
SPAN_DECLARE(int) v17_rx_free(v17_rx_state_t *s);
-SPAN_DECLARE(logging_state_t) *v17_rx_get_logging_state(v17_rx_state_t *s);
+SPAN_DECLARE(logging_state_t *) v17_rx_get_logging_state(v17_rx_state_t *s);
/*! Change the put_bit function associated with a V.17 modem receive context.
\brief Change the put_bit function associated with a V.17 modem receive context.
\param get_bit The callback routine used to get the data to be transmitted.
\param user_data An opaque pointer.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(v17_tx_state_t) *v17_tx_init(v17_tx_state_t *s, int rate, int tep, get_bit_func_t get_bit, void *user_data);
+SPAN_DECLARE(v17_tx_state_t *) v17_tx_init(v17_tx_state_t *s, int rate, int tep, get_bit_func_t get_bit, void *user_data);
/*! Reinitialise an existing V.17 modem transmit context, so it may be reused.
\brief Reinitialise an existing V.17 modem transmit context.
\return 0 for OK */
SPAN_DECLARE(int) v17_tx_free(v17_tx_state_t *s);
-SPAN_DECLARE(logging_state_t) *v17_tx_get_logging_state(v17_tx_state_t *s);
+SPAN_DECLARE(logging_state_t *) v17_tx_get_logging_state(v17_tx_state_t *s);
/*! Change the get_bit function associated with a V.17 modem transmit context.
\brief Change the get_bit function associated with a V.17 modem transmit context.
\param put_bit The callback routine used to get the data to be transmitted.
\param user_data An opaque pointer, passed in calls to the get and put routines.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(v22bis_state_t) *v22bis_init(v22bis_state_t *s,
+SPAN_DECLARE(v22bis_state_t *) v22bis_init(v22bis_state_t *s,
int bit_rate,
int guard,
int caller,
\return 0 for OK */
SPAN_DECLARE(int) v22bis_free(v22bis_state_t *s);
-SPAN_DECLARE(logging_state_t) *v22bis_get_logging_state(v22bis_state_t *s);
+SPAN_DECLARE(logging_state_t *) v22bis_get_logging_state(v22bis_state_t *s);
/*! Change the get_bit function associated with a V.22bis modem context.
\brief Change the get_bit function associated with a V.22bis modem context.
\param put_bit The callback routine used to put the received data.
\param user_data An opaque pointer passed to the put_bit routine.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(v27ter_rx_state_t) *v27ter_rx_init(v27ter_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data);
+SPAN_DECLARE(v27ter_rx_state_t *) v27ter_rx_init(v27ter_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data);
/*! Reinitialise an existing V.27ter modem receive context.
\brief Reinitialise an existing V.27ter modem receive context.
\return 0 for OK */
SPAN_DECLARE(int) v27ter_rx_free(v27ter_rx_state_t *s);
-SPAN_DECLARE(logging_state_t) *v27ter_rx_get_logging_state(v27ter_rx_state_t *s);
+SPAN_DECLARE(logging_state_t *) v27ter_rx_get_logging_state(v27ter_rx_state_t *s);
/*! Change the put_bit function associated with a V.27ter modem receive context.
\brief Change the put_bit function associated with a V.27ter modem receive context.
\param get_bit The callback routine used to get the data to be transmitted.
\param user_data An opaque pointer.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(v27ter_tx_state_t) *v27ter_tx_init(v27ter_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data);
+SPAN_DECLARE(v27ter_tx_state_t *) v27ter_tx_init(v27ter_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data);
/*! Reinitialise an existing V.27ter modem transmit context, so it may be reused.
\brief Reinitialise an existing V.27ter modem transmit context.
\return 0 for OK */
SPAN_DECLARE(int) v27ter_tx_free(v27ter_tx_state_t *s);
-SPAN_DECLARE(logging_state_t) *v27ter_tx_get_logging_state(v27ter_tx_state_t *s);
+SPAN_DECLARE(logging_state_t *) v27ter_tx_get_logging_state(v27ter_tx_state_t *s);
/*! Change the get_bit function associated with a V.27ter modem transmit context.
\brief Change the get_bit function associated with a V.27ter modem transmit context.
\param put_bit The callback routine used to put the received data.
\param user_data An opaque pointer passed to the put_bit routine.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(v29_rx_state_t) *v29_rx_init(v29_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data);
+SPAN_DECLARE(v29_rx_state_t *) v29_rx_init(v29_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data);
/*! Reinitialise an existing V.29 modem receive context.
\brief Reinitialise an existing V.29 modem receive context.
\return 0 for OK */
SPAN_DECLARE(int) v29_rx_free(v29_rx_state_t *s);
-SPAN_DECLARE(logging_state_t) *v29_rx_get_logging_state(v29_rx_state_t *s);
+SPAN_DECLARE(logging_state_t *) v29_rx_get_logging_state(v29_rx_state_t *s);
/*! Change the put_bit function associated with a V.29 modem receive context.
\brief Change the put_bit function associated with a V.29 modem receive context.
\param get_bit The callback routine used to get the data to be transmitted.
\param user_data An opaque pointer.
\return A pointer to the modem context, or NULL if there was a problem. */
-SPAN_DECLARE(v29_tx_state_t) *v29_tx_init(v29_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data);
+SPAN_DECLARE(v29_tx_state_t *) v29_tx_init(v29_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data);
/*! Reinitialise an existing V.29 modem transmit context, so it may be reused.
\brief Reinitialise an existing V.29 modem transmit context.
\return 0 for OK */
SPAN_DECLARE(int) v29_tx_free(v29_tx_state_t *s);
-SPAN_DECLARE(logging_state_t) *v29_tx_get_logging_state(v29_tx_state_t *s);
+SPAN_DECLARE(logging_state_t *) v29_tx_get_logging_state(v29_tx_state_t *s);
/*! Change the get_bit function associated with a V.29 modem transmit context.
\brief Change the get_bit function associated with a V.29 modem transmit context.
{
#endif
-SPAN_DECLARE(const char) *lapm_status_to_str(int status);
+SPAN_DECLARE(const char *) lapm_status_to_str(int status);
/*! Dump LAP.M frames in a raw and/or decoded forms
\param frame The frame itself
/*! Accept an HDLC packet
*/
-SPAN_DECLARE(void) lapm_receive(void *user_data, const uint8_t *buf, int len, int ok);
+void lapm_receive(void *user_data, const uint8_t *buf, int len, int ok);
/*! Transmit a LAP.M frame
*/
\param user_data An opaque pointer passed to the frame handler routine.
\return ???
*/
-SPAN_DECLARE(v42_state_t) *v42_init(v42_state_t *s, int caller, int detect, v42_frame_handler_t frame_handler, void *user_data);
+SPAN_DECLARE(v42_state_t *) v42_init(v42_state_t *s, int caller, int detect, v42_frame_handler_t frame_handler, void *user_data);
/*! Restart a V.42 context.
\param s The V.42 context.
\param data_user_data .
\param max_data_len The maximum length that should be passed to the data handler.
\return The V.42bis context. */
-SPAN_DECLARE(v42bis_state_t) *v42bis_init(v42bis_state_t *s,
+SPAN_DECLARE(v42bis_state_t *) v42bis_init(v42bis_state_t *s,
int negotiated_p0,
int negotiated_p1,
int negotiated_p2,
\param result_handler The callback routine used to handle the results of negotiation.
\param user_data An opaque pointer passed to the result_handler routine.
\return A pointer to the V.8 context, or NULL if there was a problem. */
-SPAN_DECLARE(v8_state_t) *v8_init(v8_state_t *s,
+SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int caller,
int available_modulations,
v8_result_handler_t *result_handler,
\return 0 for OK. */
SPAN_DECLARE(int) v8_free(v8_state_t *s);
-SPAN_DECLARE(logging_state_t) *v8_get_logging_state(v8_state_t *s);
+SPAN_DECLARE(logging_state_t *) v8_get_logging_state(v8_state_t *s);
/*! Generate a block of V.8 audio samples.
\brief Generate a block of V.8 audio samples.
\param modulation_schemes The list of supported modulations. */
SPAN_DECLARE(void) v8_log_supported_modulations(v8_state_t *s, int modulation_schemes);
-SPAN_DECLARE(const char) *v8_call_function_to_str(int call_function);
-SPAN_DECLARE(const char) *v8_modulation_to_str(int modulation_scheme);
-SPAN_DECLARE(const char) *v8_protocol_to_str(int protocol);
-SPAN_DECLARE(const char) *v8_pstn_access_to_str(int pstn_access);
-SPAN_DECLARE(const char) *v8_pcm_modem_availability_to_str(int pcm_modem_availability);
+SPAN_DECLARE(const char *) v8_call_function_to_str(int call_function);
+SPAN_DECLARE(const char *) v8_modulation_to_str(int modulation_scheme);
+SPAN_DECLARE(const char *) v8_protocol_to_str(int protocol);
+SPAN_DECLARE(const char *) v8_pstn_access_to_str(int pstn_access);
+SPAN_DECLARE(const char *) v8_pcm_modem_availability_to_str(int pcm_modem_availability);
#if defined(__cplusplus)
}
}
/*- End of function --------------------------------------------------------*/
-int super_tone_rx_add_tone(super_tone_rx_descriptor_t *desc)
+SPAN_DECLARE(int) super_tone_rx_add_tone(super_tone_rx_descriptor_t *desc)
{
if (desc->tones%5 == 0)
{
}
/*- End of function --------------------------------------------------------*/
-int super_tone_rx_add_element(super_tone_rx_descriptor_t *desc,
+SPAN_DECLARE(int) super_tone_rx_add_element(super_tone_rx_descriptor_t *desc,
int tone,
int f1,
int f2,
}
/*- End of function --------------------------------------------------------*/
-super_tone_rx_descriptor_t *super_tone_rx_make_descriptor(super_tone_rx_descriptor_t *desc)
+SPAN_DECLARE(super_tone_rx_descriptor_t *) super_tone_rx_make_descriptor(super_tone_rx_descriptor_t *desc)
{
if (desc == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int super_tone_rx_free_descriptor(super_tone_rx_descriptor_t *desc)
+SPAN_DECLARE(int) super_tone_rx_free_descriptor(super_tone_rx_descriptor_t *desc)
{
if (desc)
free(desc);
}
/*- End of function --------------------------------------------------------*/
-void super_tone_rx_segment_callback(super_tone_rx_state_t *s,
+SPAN_DECLARE(void) super_tone_rx_segment_callback(super_tone_rx_state_t *s,
void (*callback)(void *data, int f1, int f2, int duration))
{
s->segment_callback = callback;
}
/*- End of function --------------------------------------------------------*/
-super_tone_rx_state_t *super_tone_rx_init(super_tone_rx_state_t *s,
+SPAN_DECLARE(super_tone_rx_state_t *) super_tone_rx_init(super_tone_rx_state_t *s,
super_tone_rx_descriptor_t *desc,
tone_report_func_t callback,
void *user_data)
}
/*- End of function --------------------------------------------------------*/
-int super_tone_rx_free(super_tone_rx_state_t *s)
+SPAN_DECLARE(int) super_tone_rx_free(super_tone_rx_state_t *s)
{
if (s)
free(s);
}
/*- End of function --------------------------------------------------------*/
-int super_tone_rx(super_tone_rx_state_t *s, const int16_t amp[], int samples)
+SPAN_DECLARE(int) super_tone_rx(super_tone_rx_state_t *s, const int16_t amp[], int samples)
{
int i;
int x;
two iterations of 50 seconds each.
*/
-super_tone_tx_step_t *super_tone_tx_make_step(super_tone_tx_step_t *s,
+SPAN_DECLARE(super_tone_tx_step_t *) super_tone_tx_make_step(super_tone_tx_step_t *s,
float f1,
float l1,
float f2,
}
/*- End of function --------------------------------------------------------*/
-void super_tone_tx_free(super_tone_tx_step_t *s)
+SPAN_DECLARE(void) super_tone_tx_free(super_tone_tx_step_t *s)
{
super_tone_tx_step_t *t;
}
/*- End of function --------------------------------------------------------*/
-super_tone_tx_state_t *super_tone_tx_init(super_tone_tx_state_t *s, super_tone_tx_step_t *tree)
+SPAN_DECLARE(super_tone_tx_state_t *) super_tone_tx_init(super_tone_tx_state_t *s, super_tone_tx_step_t *tree)
{
if (tree == NULL)
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int super_tone_tx(super_tone_tx_state_t *s, int16_t amp[], int max_samples)
+SPAN_DECLARE(int) super_tone_tx(super_tone_tx_state_t *s, int16_t amp[], int max_samples)
{
int samples;
int limit;
}
/*- End of function --------------------------------------------------------*/
-void t30_non_ecm_put_byte(void *user_data, int byte)
+SPAN_DECLARE(void) t30_non_ecm_put_byte(void *user_data, int byte)
{
t30_state_t *s;
}
/*- End of function --------------------------------------------------------*/
-void t30_non_ecm_put_chunk(void *user_data, const uint8_t buf[], int len)
+SPAN_DECLARE(void) t30_non_ecm_put_chunk(void *user_data, const uint8_t buf[], int len)
{
t30_state_t *s;
int i;
}
/*- End of function --------------------------------------------------------*/
-int t30_non_ecm_get_byte(void *user_data)
+SPAN_DECLARE(int) t30_non_ecm_get_byte(void *user_data)
{
int byte;
t30_state_t *s;
}
/*- End of function --------------------------------------------------------*/
-int t30_non_ecm_get_chunk(void *user_data, uint8_t buf[], int max_len)
+SPAN_DECLARE(int) t30_non_ecm_get_chunk(void *user_data, uint8_t buf[], int max_len)
{
int len;
t30_state_t *s;
}
/*- End of function --------------------------------------------------------*/
-void t30_front_end_status(void *user_data, int status)
+SPAN_DECLARE(void) t30_front_end_status(void *user_data, int status)
{
t30_state_t *s;
}
/*- End of function --------------------------------------------------------*/
-void t30_timer_update(t30_state_t *s, int samples)
+SPAN_DECLARE(void) t30_timer_update(t30_state_t *s, int samples)
{
if (s->timer_t0_t1 > 0)
{
}
/*- End of function --------------------------------------------------------*/
-void t30_terminate(t30_state_t *s)
+SPAN_DECLARE(void) t30_terminate(t30_state_t *s)
{
if (s->phase != T30_PHASE_CALL_FINISHED)
{
}
/*- End of function --------------------------------------------------------*/
-void t30_get_transfer_statistics(t30_state_t *s, t30_stats_t *t)
+SPAN_DECLARE(void) t30_get_transfer_statistics(t30_state_t *s, t30_stats_t *t)
{
t4_stats_t stats;
}
/*- End of function --------------------------------------------------------*/
-void t30_local_interrupt_request(t30_state_t *s, int state)
+SPAN_DECLARE(void) t30_local_interrupt_request(t30_state_t *s, int state)
{
if (s->timer_t3 > 0)
{
}
/*- End of function --------------------------------------------------------*/
-int t30_restart(t30_state_t *s)
+SPAN_DECLARE(int) t30_restart(t30_state_t *s)
{
s->phase = T30_PHASE_IDLE;
s->next_phase = T30_PHASE_IDLE;
}
/*- End of function --------------------------------------------------------*/
-t30_state_t *t30_init(t30_state_t *s,
+SPAN_DECLARE(t30_state_t *) t30_init(t30_state_t *s,
int calling_party,
t30_set_handler_t *set_rx_type_handler,
void *set_rx_type_user_data,
}
/*- End of function --------------------------------------------------------*/
-int t30_release(t30_state_t *s)
+SPAN_DECLARE(int) t30_release(t30_state_t *s)
{
/* Make sure any FAX in progress is tidied up. If the tidying up has
already happened, repeating it here is harmless. */
}
/*- End of function --------------------------------------------------------*/
-int t30_free(t30_state_t *s)
+SPAN_DECLARE(int) t30_free(t30_state_t *s)
{
t30_release(s);
free(s);
}
/*- End of function --------------------------------------------------------*/
-int t30_call_active(t30_state_t *s)
+SPAN_DECLARE(int) t30_call_active(t30_state_t *s)
{
return (s->phase != T30_PHASE_CALL_FINISHED);
}
#include "t30_local.h"
-int t30_set_tx_ident(t30_state_t *s, const char *id)
+SPAN_DECLARE(int) t30_set_tx_ident(t30_state_t *s, const char *id)
{
if (id == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_tx_ident(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_tx_ident(t30_state_t *s)
{
if (s->tx_info.ident[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_ident(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_ident(t30_state_t *s)
{
if (s->rx_info.ident[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_sub_address(t30_state_t *s, const char *sub_address)
+SPAN_DECLARE(int) t30_set_tx_sub_address(t30_state_t *s, const char *sub_address)
{
if (sub_address == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_tx_sub_address(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_tx_sub_address(t30_state_t *s)
{
if (s->tx_info.sub_address[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_sub_address(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_sub_address(t30_state_t *s)
{
if (s->rx_info.sub_address[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_selective_polling_address(t30_state_t *s, const char *selective_polling_address)
+SPAN_DECLARE(int) t30_set_tx_selective_polling_address(t30_state_t *s, const char *selective_polling_address)
{
if (selective_polling_address == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_tx_selective_polling_address(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_tx_selective_polling_address(t30_state_t *s)
{
if (s->tx_info.selective_polling_address[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_selective_polling_address(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_selective_polling_address(t30_state_t *s)
{
if (s->rx_info.selective_polling_address[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_polled_sub_address(t30_state_t *s, const char *polled_sub_address)
+SPAN_DECLARE(int) t30_set_tx_polled_sub_address(t30_state_t *s, const char *polled_sub_address)
{
if (polled_sub_address == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_tx_polled_sub_address(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_tx_polled_sub_address(t30_state_t *s)
{
if (s->tx_info.polled_sub_address[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_polled_sub_address(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_polled_sub_address(t30_state_t *s)
{
if (s->rx_info.polled_sub_address[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_sender_ident(t30_state_t *s, const char *sender_ident)
+SPAN_DECLARE(int) t30_set_tx_sender_ident(t30_state_t *s, const char *sender_ident)
{
if (sender_ident == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_tx_sender_ident(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_tx_sender_ident(t30_state_t *s)
{
if (s->tx_info.sender_ident[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_sender_ident(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_sender_ident(t30_state_t *s)
{
if (s->rx_info.sender_ident[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_password(t30_state_t *s, const char *password)
+SPAN_DECLARE(int) t30_set_tx_password(t30_state_t *s, const char *password)
{
if (password == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_tx_password(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_tx_password(t30_state_t *s)
{
if (s->tx_info.password[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_password(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_password(t30_state_t *s)
{
if (s->rx_info.password[0] == '\0')
return NULL;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_nsf(t30_state_t *s, const uint8_t *nsf, int len)
+SPAN_DECLARE(int) t30_set_tx_nsf(t30_state_t *s, const uint8_t *nsf, int len)
{
if (s->tx_info.nsf)
free(s->tx_info.nsf);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_nsf(t30_state_t *s, const uint8_t *nsf[])
+SPAN_DECLARE(size_t) t30_get_tx_nsf(t30_state_t *s, const uint8_t *nsf[])
{
if (nsf)
*nsf = s->tx_info.nsf;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_nsf(t30_state_t *s, const uint8_t *nsf[])
+SPAN_DECLARE(size_t) t30_get_rx_nsf(t30_state_t *s, const uint8_t *nsf[])
{
if (nsf)
*nsf = s->rx_info.nsf;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_nsc(t30_state_t *s, const uint8_t *nsc, int len)
+SPAN_DECLARE(int) t30_set_tx_nsc(t30_state_t *s, const uint8_t *nsc, int len)
{
if (s->tx_info.nsc)
free(s->tx_info.nsc);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_nsc(t30_state_t *s, const uint8_t *nsc[])
+SPAN_DECLARE(size_t) t30_get_tx_nsc(t30_state_t *s, const uint8_t *nsc[])
{
if (nsc)
*nsc = s->tx_info.nsc;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_nsc(t30_state_t *s, const uint8_t *nsc[])
+SPAN_DECLARE(size_t) t30_get_rx_nsc(t30_state_t *s, const uint8_t *nsc[])
{
if (nsc)
*nsc = s->rx_info.nsc;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_nss(t30_state_t *s, const uint8_t *nss, int len)
+SPAN_DECLARE(int) t30_set_tx_nss(t30_state_t *s, const uint8_t *nss, int len)
{
if (s->tx_info.nss)
free(s->tx_info.nss);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_nss(t30_state_t *s, const uint8_t *nss[])
+SPAN_DECLARE(size_t) t30_get_tx_nss(t30_state_t *s, const uint8_t *nss[])
{
if (nss)
*nss = s->tx_info.nss;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_nss(t30_state_t *s, const uint8_t *nss[])
+SPAN_DECLARE(size_t) t30_get_rx_nss(t30_state_t *s, const uint8_t *nss[])
{
if (nss)
*nss = s->rx_info.nss;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_tsa(t30_state_t *s, int type, const char *address, int len)
+SPAN_DECLARE(int) t30_set_tx_tsa(t30_state_t *s, int type, const char *address, int len)
{
if (s->tx_info.tsa)
free(s->tx_info.tsa);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_tsa(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_tx_tsa(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->tx_info.tsa_type;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_tsa(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_rx_tsa(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->rx_info.tsa_type;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_ira(t30_state_t *s, int type, const char *address, int len)
+SPAN_DECLARE(int) t30_set_tx_ira(t30_state_t *s, int type, const char *address, int len)
{
if (s->tx_info.ira)
free(s->tx_info.ira);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_ira(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_tx_ira(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->tx_info.ira_type;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_ira(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_rx_ira(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->rx_info.ira_type;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_cia(t30_state_t *s, int type, const char *address, int len)
+SPAN_DECLARE(int) t30_set_tx_cia(t30_state_t *s, int type, const char *address, int len)
{
if (s->tx_info.cia)
free(s->tx_info.cia);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_cia(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_tx_cia(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->tx_info.cia_type;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_cia(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_rx_cia(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->rx_info.cia_type;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_isp(t30_state_t *s, int type, const char *address, int len)
+SPAN_DECLARE(int) t30_set_tx_isp(t30_state_t *s, int type, const char *address, int len)
{
if (s->tx_info.isp)
free(s->tx_info.isp);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_isp(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_tx_isp(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->tx_info.isp_type;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_isp(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_rx_isp(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->rx_info.isp_type;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_csa(t30_state_t *s, int type, const char *address, int len)
+SPAN_DECLARE(int) t30_set_tx_csa(t30_state_t *s, int type, const char *address, int len)
{
if (s->tx_info.csa)
free(s->tx_info.csa);
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_csa(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_tx_csa(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->tx_info.csa_type;
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_rx_csa(t30_state_t *s, int *type, const char *address[])
+SPAN_DECLARE(size_t) t30_get_rx_csa(t30_state_t *s, int *type, const char *address[])
{
if (type)
*type = s->rx_info.csa_type;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_tx_page_header_info(t30_state_t *s, const char *info)
+SPAN_DECLARE(int) t30_set_tx_page_header_info(t30_state_t *s, const char *info)
{
if (info == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-size_t t30_get_tx_page_header_info(t30_state_t *s, char *info)
+SPAN_DECLARE(size_t) t30_get_tx_page_header_info(t30_state_t *s, char *info)
{
if (info)
strcpy(info, s->header_info);
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_country(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_country(t30_state_t *s)
{
return s->country;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_vendor(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_vendor(t30_state_t *s)
{
return s->vendor;
}
/*- End of function --------------------------------------------------------*/
-const char *t30_get_rx_model(t30_state_t *s)
+SPAN_DECLARE(const char *) t30_get_rx_model(t30_state_t *s)
{
return s->model;
}
/*- End of function --------------------------------------------------------*/
-void t30_set_rx_file(t30_state_t *s, const char *file, int stop_page)
+SPAN_DECLARE(void) t30_set_rx_file(t30_state_t *s, const char *file, int stop_page)
{
strncpy(s->rx_file, file, sizeof(s->rx_file));
s->rx_file[sizeof(s->rx_file) - 1] = '\0';
}
/*- End of function --------------------------------------------------------*/
-void t30_set_tx_file(t30_state_t *s, const char *file, int start_page, int stop_page)
+SPAN_DECLARE(void) t30_set_tx_file(t30_state_t *s, const char *file, int start_page, int stop_page)
{
strncpy(s->tx_file, file, sizeof(s->tx_file));
s->tx_file[sizeof(s->tx_file) - 1] = '\0';
}
/*- End of function --------------------------------------------------------*/
-void t30_set_iaf_mode(t30_state_t *s, int iaf)
+SPAN_DECLARE(void) t30_set_iaf_mode(t30_state_t *s, int iaf)
{
s->iaf = iaf;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_ecm_capability(t30_state_t *s, int enabled)
+SPAN_DECLARE(int) t30_set_ecm_capability(t30_state_t *s, int enabled)
{
s->ecm_allowed = enabled;
t30_build_dis_or_dtc(s);
}
/*- End of function --------------------------------------------------------*/
-int t30_set_rx_encoding(t30_state_t *s, int encoding)
+SPAN_DECLARE(int) t30_set_rx_encoding(t30_state_t *s, int encoding)
{
switch (encoding)
{
}
/*- End of function --------------------------------------------------------*/
-int t30_set_minimum_scan_line_time(t30_state_t *s, int min_time)
+SPAN_DECLARE(int) t30_set_minimum_scan_line_time(t30_state_t *s, int min_time)
{
/* There are only certain possible times supported, so we need to select
the code which best matches the request. */
}
/*- End of function --------------------------------------------------------*/
-int t30_set_supported_modems(t30_state_t *s, int supported_modems)
+SPAN_DECLARE(int) t30_set_supported_modems(t30_state_t *s, int supported_modems)
{
s->supported_modems = supported_modems;
t30_build_dis_or_dtc(s);
}
/*- End of function --------------------------------------------------------*/
-int t30_set_supported_compressions(t30_state_t *s, int supported_compressions)
+SPAN_DECLARE(int) t30_set_supported_compressions(t30_state_t *s, int supported_compressions)
{
s->supported_compressions = supported_compressions;
t30_build_dis_or_dtc(s);
}
/*- End of function --------------------------------------------------------*/
-int t30_set_supported_resolutions(t30_state_t *s, int supported_resolutions)
+SPAN_DECLARE(int) t30_set_supported_resolutions(t30_state_t *s, int supported_resolutions)
{
s->supported_resolutions = supported_resolutions;
t30_build_dis_or_dtc(s);
}
/*- End of function --------------------------------------------------------*/
-int t30_set_supported_image_sizes(t30_state_t *s, int supported_image_sizes)
+SPAN_DECLARE(int) t30_set_supported_image_sizes(t30_state_t *s, int supported_image_sizes)
{
s->supported_image_sizes = supported_image_sizes;
t30_build_dis_or_dtc(s);
}
/*- End of function --------------------------------------------------------*/
-int t30_set_supported_t30_features(t30_state_t *s, int supported_t30_features)
+SPAN_DECLARE(int) t30_set_supported_t30_features(t30_state_t *s, int supported_t30_features)
{
s->supported_t30_features = supported_t30_features;
t30_build_dis_or_dtc(s);
}
/*- End of function --------------------------------------------------------*/
-void t30_set_status(t30_state_t *s, int status)
+SPAN_DECLARE(void) t30_set_status(t30_state_t *s, int status)
{
s->current_status = status;
}
/*- End of function --------------------------------------------------------*/
-int t30_set_receiver_not_ready(t30_state_t *s, int count)
+SPAN_DECLARE(int) t30_set_receiver_not_ready(t30_state_t *s, int count)
{
s->receiver_not_ready_count = count;
return 0;
}
/*- End of function --------------------------------------------------------*/
-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 --------------------------------------------------------*/
-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 --------------------------------------------------------*/
-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 --------------------------------------------------------*/
-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 --------------------------------------------------------*/
-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;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *t30_get_logging_state(t30_state_t *s)
+SPAN_DECLARE(logging_state_t *) t30_get_logging_state(t30_state_t *s)
{
return &s->logging;
}
DISBIT8 = 0x80
};
-const char *t30_completion_code_to_str(int result)
+SPAN_DECLARE(const char *) t30_completion_code_to_str(int result)
{
switch (result)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t30_frametype(uint8_t x)
+SPAN_DECLARE(const char *) t30_frametype(uint8_t x)
{
switch (x)
{
}
/*- End of function --------------------------------------------------------*/
-void t30_decode_dis_dtc_dcs(t30_state_t *s, const uint8_t *pkt, int len)
+SPAN_DECLARE(void) t30_decode_dis_dtc_dcs(t30_state_t *s, const uint8_t *pkt, int len)
{
logging_state_t *log;
uint8_t frame_type;
}
/*- End of function --------------------------------------------------------*/
-int t31_t38_send_timeout(t31_state_t *s, int samples)
+SPAN_DECLARE(int) t31_t38_send_timeout(t31_state_t *s, int samples)
{
t31_t38_front_end_state_t *fe;
int delay;
}
/*- End of function --------------------------------------------------------*/
-void t31_call_event(t31_state_t *s, int event)
+SPAN_DECLARE(void) t31_call_event(t31_state_t *s, int event)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Call event %d received\n", event);
at_call_event(&s->at_state, event);
}
/*- End of function --------------------------------------------------------*/
-int t31_at_rx(t31_state_t *s, const char *t, int len)
+SPAN_DECLARE(int) t31_at_rx(t31_state_t *s, const char *t, int len)
{
if (s->dte_data_timeout)
s->dte_data_timeout = s->call_samples + ms_to_samples(5000);
}
/*- End of function --------------------------------------------------------*/
-int t31_rx(t31_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) t31_rx(t31_state_t *s, int16_t amp[], int len)
{
int i;
int32_t power;
}
/*- End of function --------------------------------------------------------*/
-int t31_tx(t31_state_t *s, int16_t amp[], int max_len)
+SPAN_DECLARE(int) t31_tx(t31_state_t *s, int16_t amp[], int max_len)
{
int len;
}
/*- End of function --------------------------------------------------------*/
-void t31_set_transmit_on_idle(t31_state_t *s, int transmit_on_idle)
+SPAN_DECLARE(void) t31_set_transmit_on_idle(t31_state_t *s, int transmit_on_idle)
{
s->audio.modems.transmit_on_idle = transmit_on_idle;
}
/*- End of function --------------------------------------------------------*/
-void t31_set_tep_mode(t31_state_t *s, int use_tep)
+SPAN_DECLARE(void) t31_set_tep_mode(t31_state_t *s, int use_tep)
{
s->audio.modems.use_tep = use_tep;
}
/*- End of function --------------------------------------------------------*/
-void t31_set_t38_config(t31_state_t *s, int without_pacing)
+SPAN_DECLARE(void) t31_set_t38_config(t31_state_t *s, int without_pacing)
{
if (without_pacing)
{
}
/*- End of function --------------------------------------------------------*/
-void t31_set_mode(t31_state_t *s, int t38_mode)
+SPAN_DECLARE(void) t31_set_mode(t31_state_t *s, int t38_mode)
{
s->t38_mode = t38_mode;
span_log(&s->logging, SPAN_LOG_FLOW, "Mode set to %d\n", s->t38_mode);
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *t31_get_logging_state(t31_state_t *s)
+SPAN_DECLARE(logging_state_t *) t31_get_logging_state(t31_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-t38_core_state_t *t31_get_t38_core_state(t31_state_t *s)
+SPAN_DECLARE(t38_core_state_t *) t31_get_t38_core_state(t31_state_t *s)
{
return &s->t38_fe.t38;
}
}
/*- End of function --------------------------------------------------------*/
-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,
void *at_tx_user_data,
t31_modem_control_handler_t *modem_control_handler,
}
/*- End of function --------------------------------------------------------*/
-int t31_release(t31_state_t *s)
+SPAN_DECLARE(int) t31_release(t31_state_t *s)
{
at_reset_call_info(&s->at_state);
free(s);
/*- End of function --------------------------------------------------------*/
#endif
-int t35_decode(const uint8_t *msg, int len, const char **country, const char **vendor, const char **model)
+SPAN_DECLARE(int) t35_decode(const uint8_t *msg, int len, const char **country, const char **vendor, const char **model)
{
int vendor_decoded;
const nsf_data_t *p;
{ 215000, 0, 0} /* T38_IND_V33_14400_TRAINING */
};
-const char *t38_indicator_to_str(int indicator)
+SPAN_DECLARE(const char *) t38_indicator_to_str(int indicator)
{
switch (indicator)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t38_data_type_to_str(int data_type)
+SPAN_DECLARE(const char *) t38_data_type_to_str(int data_type)
{
switch (data_type)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t38_field_type_to_str(int field_type)
+SPAN_DECLARE(const char *) t38_field_type_to_str(int field_type)
{
switch (field_type)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t38_cm_profile_to_str(int profile)
+SPAN_DECLARE(const char *) t38_cm_profile_to_str(int profile)
{
switch (profile)
{
}
/*- End of function --------------------------------------------------------*/
-const char *t38_jm_to_str(const uint8_t *data, int len)
+SPAN_DECLARE(const char *) t38_jm_to_str(const uint8_t *data, int len)
{
if (len < 2)
return "???";
}
/*- End of function --------------------------------------------------------*/
-int t38_v34rate_to_bps(const uint8_t *data, int len)
+SPAN_DECLARE(int) t38_v34rate_to_bps(const uint8_t *data, int len)
{
int i;
int rate;
}
/*- End of function --------------------------------------------------------*/
-int t38_core_rx_ifp_packet(t38_core_state_t *s, const uint8_t *buf, int len, uint16_t seq_no)
+SPAN_DECLARE(int) t38_core_rx_ifp_packet(t38_core_state_t *s, const uint8_t *buf, int len, uint16_t seq_no)
{
int i;
int t30_indicator;
}
/*- End of function --------------------------------------------------------*/
-int t38_core_send_indicator(t38_core_state_t *s, int indicator, int count)
+SPAN_DECLARE(int) t38_core_send_indicator(t38_core_state_t *s, int indicator, int count)
{
uint8_t buf[100];
int len;
}
/*- End of function --------------------------------------------------------*/
-int t38_core_send_flags_delay(t38_core_state_t *s, int indicator)
+SPAN_DECLARE(int) t38_core_send_flags_delay(t38_core_state_t *s, int indicator)
{
return modem_startup_time[indicator].flags;
}
/*- End of function --------------------------------------------------------*/
-int t38_core_send_data(t38_core_state_t *s, int data_type, int field_type, const uint8_t field[], int field_len, int count)
+SPAN_DECLARE(int) t38_core_send_data(t38_core_state_t *s, int data_type, int field_type, const uint8_t field[], int field_len, int count)
{
t38_data_field_t field0;
uint8_t buf[1000];
}
/*- End of function --------------------------------------------------------*/
-int t38_core_send_data_multi_field(t38_core_state_t *s, int data_type, const t38_data_field_t field[], int fields, int count)
+SPAN_DECLARE(int) t38_core_send_data_multi_field(t38_core_state_t *s, int data_type, const t38_data_field_t field[], int fields, int count)
{
uint8_t buf[1000];
int len;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_data_rate_management_method(t38_core_state_t *s, int method)
+SPAN_DECLARE(void) t38_set_data_rate_management_method(t38_core_state_t *s, int method)
{
s->data_rate_management_method = method;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_data_transport_protocol(t38_core_state_t *s, int data_transport_protocol)
+SPAN_DECLARE(void) t38_set_data_transport_protocol(t38_core_state_t *s, int data_transport_protocol)
{
s->data_transport_protocol = data_transport_protocol;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_fill_bit_removal(t38_core_state_t *s, int fill_bit_removal)
+SPAN_DECLARE(void) t38_set_fill_bit_removal(t38_core_state_t *s, int fill_bit_removal)
{
s->fill_bit_removal = fill_bit_removal;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_mmr_transcoding(t38_core_state_t *s, int mmr_transcoding)
+SPAN_DECLARE(void) t38_set_mmr_transcoding(t38_core_state_t *s, int mmr_transcoding)
{
s->mmr_transcoding = mmr_transcoding;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_jbig_transcoding(t38_core_state_t *s, int jbig_transcoding)
+SPAN_DECLARE(void) t38_set_jbig_transcoding(t38_core_state_t *s, int jbig_transcoding)
{
s->jbig_transcoding = jbig_transcoding;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_max_buffer_size(t38_core_state_t *s, int max_buffer_size)
+SPAN_DECLARE(void) t38_set_max_buffer_size(t38_core_state_t *s, int max_buffer_size)
{
s->max_buffer_size = max_buffer_size;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_max_datagram_size(t38_core_state_t *s, int max_datagram_size)
+SPAN_DECLARE(void) t38_set_max_datagram_size(t38_core_state_t *s, int max_datagram_size)
{
s->max_datagram_size = max_datagram_size;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_t38_version(t38_core_state_t *s, int t38_version)
+SPAN_DECLARE(void) t38_set_t38_version(t38_core_state_t *s, int t38_version)
{
s->t38_version = t38_version;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_sequence_number_handling(t38_core_state_t *s, int check)
+SPAN_DECLARE(void) t38_set_sequence_number_handling(t38_core_state_t *s, int check)
{
s->check_sequence_numbers = check;
}
/*- End of function --------------------------------------------------------*/
-void t38_set_tep_handling(t38_core_state_t *s, int allow_for_tep)
+SPAN_DECLARE(void) t38_set_tep_handling(t38_core_state_t *s, int allow_for_tep)
{
s->allow_for_tep = allow_for_tep;
}
/*- End of function --------------------------------------------------------*/
-int t38_get_fastest_image_data_rate(t38_core_state_t *s)
+SPAN_DECLARE(int) t38_get_fastest_image_data_rate(t38_core_state_t *s)
{
return s->fastest_image_data_rate;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *t38_core_get_logging_state(t38_core_state_t *s)
+SPAN_DECLARE(logging_state_t *) t38_core_get_logging_state(t38_core_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-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_data_handler_t *rx_data_handler,
t38_rx_missing_handler_t *rx_missing_handler,
}
/*- End of function --------------------------------------------------------*/
-int t38_gateway_rx(t38_gateway_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) t38_gateway_rx(t38_gateway_state_t *s, int16_t amp[], int len)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int t38_gateway_tx(t38_gateway_state_t *s, int16_t amp[], int max_len)
+SPAN_DECLARE(int) t38_gateway_tx(t38_gateway_state_t *s, int16_t amp[], int max_len)
{
int len;
#if defined(LOG_FAX_AUDIO)
}
/*- End of function --------------------------------------------------------*/
-void t38_gateway_get_transfer_statistics(t38_gateway_state_t *s, t38_stats_t *t)
+SPAN_DECLARE(void) t38_gateway_get_transfer_statistics(t38_gateway_state_t *s, t38_stats_t *t)
{
memset(t, 0, sizeof(*t));
t->bit_rate = s->core.fast_bit_rate;
}
/*- End of function --------------------------------------------------------*/
-t38_core_state_t *t38_gateway_get_t38_core_state(t38_gateway_state_t *s)
+SPAN_DECLARE(t38_core_state_t *) t38_gateway_get_t38_core_state(t38_gateway_state_t *s)
{
return &s->t38x.t38;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *t38_gateway_get_logging_state(t38_gateway_state_t *s)
+SPAN_DECLARE(logging_state_t *) t38_gateway_get_logging_state(t38_gateway_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-void t38_gateway_set_ecm_capability(t38_gateway_state_t *s, int ecm_allowed)
+SPAN_DECLARE(void) t38_gateway_set_ecm_capability(t38_gateway_state_t *s, int ecm_allowed)
{
s->core.ecm_allowed = ecm_allowed;
}
/*- End of function --------------------------------------------------------*/
-void t38_gateway_set_transmit_on_idle(t38_gateway_state_t *s, int transmit_on_idle)
+SPAN_DECLARE(void) t38_gateway_set_transmit_on_idle(t38_gateway_state_t *s, int transmit_on_idle)
{
s->audio.modems.transmit_on_idle = transmit_on_idle;
}
/*- End of function --------------------------------------------------------*/
-void t38_gateway_set_supported_modems(t38_gateway_state_t *s, int supported_modems)
+SPAN_DECLARE(void) t38_gateway_set_supported_modems(t38_gateway_state_t *s, int supported_modems)
{
s->core.supported_modems = supported_modems;
if ((s->core.supported_modems & T30_SUPPORT_V17))
}
/*- End of function --------------------------------------------------------*/
-void t38_gateway_set_nsx_suppression(t38_gateway_state_t *s,
+SPAN_DECLARE(void) t38_gateway_set_nsx_suppression(t38_gateway_state_t *s,
const uint8_t *from_t38,
int from_t38_len,
const uint8_t *from_modem,
}
/*- End of function --------------------------------------------------------*/
-void t38_gateway_set_tep_mode(t38_gateway_state_t *s, int use_tep)
+SPAN_DECLARE(void) t38_gateway_set_tep_mode(t38_gateway_state_t *s, int use_tep)
{
s->audio.modems.use_tep = use_tep;
}
/*- End of function --------------------------------------------------------*/
-void t38_gateway_set_fill_bit_removal(t38_gateway_state_t *s, int remove)
+SPAN_DECLARE(void) t38_gateway_set_fill_bit_removal(t38_gateway_state_t *s, int remove)
{
s->core.to_t38.fill_bit_removal = remove;
}
/*- End of function --------------------------------------------------------*/
-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,
void *user_data)
{
}
/*- End of function --------------------------------------------------------*/
-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,
void *tx_packet_user_data)
{
}
/*- End of function --------------------------------------------------------*/
-int t38_gateway_free(t38_gateway_state_t *s)
+SPAN_DECLARE(int) t38_gateway_free(t38_gateway_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-void t38_non_ecm_buffer_push(t38_non_ecm_buffer_state_t *s)
+SPAN_DECLARE(void) t38_non_ecm_buffer_push(t38_non_ecm_buffer_state_t *s)
{
/* Don't flow control the data any more. Just push out the remainder of the data
in the buffer as fast as we can, and shut down. */
}
/*- End of function --------------------------------------------------------*/
-void t38_non_ecm_buffer_inject(t38_non_ecm_buffer_state_t *s, const uint8_t *buf, int len)
+SPAN_DECLARE(void) t38_non_ecm_buffer_inject(t38_non_ecm_buffer_state_t *s, const uint8_t *buf, int len)
{
int i;
int upper;
}
/*- End of function --------------------------------------------------------*/
-void t38_non_ecm_buffer_report_input_status(t38_non_ecm_buffer_state_t *s, logging_state_t *logging)
+SPAN_DECLARE(void) t38_non_ecm_buffer_report_input_status(t38_non_ecm_buffer_state_t *s, logging_state_t *logging)
{
if (s->in_octets || s->min_row_bits_fill_octets)
{
}
/*- End of function --------------------------------------------------------*/
-void t38_non_ecm_buffer_report_output_status(t38_non_ecm_buffer_state_t *s, logging_state_t *logging)
+SPAN_DECLARE(void) t38_non_ecm_buffer_report_output_status(t38_non_ecm_buffer_state_t *s, logging_state_t *logging)
{
if (s->out_octets || s->flow_control_fill_octets)
{
}
/*- End of function --------------------------------------------------------*/
-void t38_non_ecm_buffer_set_mode(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
+SPAN_DECLARE(void) t38_non_ecm_buffer_set_mode(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
{
s->image_data_mode = mode;
s->min_row_bits = min_row_bits;
}
/*- End of function --------------------------------------------------------*/
-t38_non_ecm_buffer_state_t *t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
+SPAN_DECLARE(t38_non_ecm_buffer_state_t *) t38_non_ecm_buffer_init(t38_non_ecm_buffer_state_t *s, int mode, int min_row_bits)
{
memset(s, 0, sizeof(*s));
s->octet = 0xFF;
}
/*- End of function --------------------------------------------------------*/
-int t38_terminal_send_timeout(t38_terminal_state_t *s, int samples)
+SPAN_DECLARE(int) t38_terminal_send_timeout(t38_terminal_state_t *s, int samples)
{
t38_terminal_front_end_state_t *fe;
int delay;
}
/*- End of function --------------------------------------------------------*/
-void t38_terminal_set_config(t38_terminal_state_t *s, int without_pacing)
+SPAN_DECLARE(void) t38_terminal_set_config(t38_terminal_state_t *s, int without_pacing)
{
if (without_pacing)
{
}
/*- End of function --------------------------------------------------------*/
-void t38_terminal_set_tep_mode(t38_terminal_state_t *s, int use_tep)
+SPAN_DECLARE(void) t38_terminal_set_tep_mode(t38_terminal_state_t *s, int use_tep)
{
if (use_tep)
s->t38_fe.chunking_modes |= T38_CHUNKING_ALLOW_TEP_TIME;
}
/*- End of function --------------------------------------------------------*/
-void t38_terminal_set_fill_bit_removal(t38_terminal_state_t *s, int remove)
+SPAN_DECLARE(void) t38_terminal_set_fill_bit_removal(t38_terminal_state_t *s, int remove)
{
if (remove)
s->t38_fe.iaf |= T30_IAF_MODE_NO_FILL_BITS;
}
/*- End of function --------------------------------------------------------*/
-t30_state_t *t38_terminal_get_t30_state(t38_terminal_state_t *s)
+SPAN_DECLARE(t30_state_t *) t38_terminal_get_t30_state(t38_terminal_state_t *s)
{
return &s->t30;
}
/*- End of function --------------------------------------------------------*/
-t38_core_state_t *t38_terminal_get_t38_core_state(t38_terminal_state_t *s)
+SPAN_DECLARE(t38_core_state_t *) t38_terminal_get_t38_core_state(t38_terminal_state_t *s)
{
return &s->t38_fe.t38;
}
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *t38_terminal_get_logging_state(t38_terminal_state_t *s)
+SPAN_DECLARE(logging_state_t *) t38_terminal_get_logging_state(t38_terminal_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-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,
t38_tx_packet_handler_t *tx_packet_handler,
void *tx_packet_user_data)
}
/*- End of function --------------------------------------------------------*/
-int t38_terminal_release(t38_terminal_state_t *s)
+SPAN_DECLARE(int) t38_terminal_release(t38_terminal_state_t *s)
{
t30_release(&s->t30);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int t38_terminal_free(t38_terminal_state_t *s)
+SPAN_DECLARE(int) t38_terminal_free(t38_terminal_state_t *s)
{
t30_release(&s->t30);
free(s);
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_end_page(t4_state_t *s)
+SPAN_DECLARE(int) t4_rx_end_page(t4_state_t *s)
{
int row;
int i;
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_put_bit(t4_state_t *s, int bit)
+SPAN_DECLARE(int) t4_rx_put_bit(t4_state_t *s, int bit)
{
return rx_put_bits(s, bit & 1, 1);
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_put_byte(t4_state_t *s, uint8_t byte)
+SPAN_DECLARE(int) t4_rx_put_byte(t4_state_t *s, uint8_t byte)
{
return rx_put_bits(s, byte & 0xFF, 8);
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_put_chunk(t4_state_t *s, const uint8_t buf[], int len)
+SPAN_DECLARE(int) t4_rx_put_chunk(t4_state_t *s, const uint8_t buf[], int len)
{
int i;
uint8_t byte;
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_set_row_write_handler(t4_state_t *s, t4_row_write_handler_t handler, void *user_data)
+SPAN_DECLARE(int) t4_rx_set_row_write_handler(t4_state_t *s, t4_row_write_handler_t handler, void *user_data)
{
s->row_write_handler = handler;
s->row_write_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-t4_state_t *t4_rx_init(t4_state_t *s, const char *file, int output_encoding)
+SPAN_DECLARE(t4_state_t *) t4_rx_init(t4_state_t *s, const char *file, int output_encoding)
{
memset(s, 0, sizeof(*s));
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_start_page(t4_state_t *s)
+SPAN_DECLARE(int) t4_rx_start_page(t4_state_t *s)
{
int bytes_per_row;
int run_space;
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_delete(t4_state_t *s)
+SPAN_DECLARE(int) t4_rx_delete(t4_state_t *s)
{
if (t4_rx_end(s))
return -1;
}
/*- End of function --------------------------------------------------------*/
-int t4_rx_end(t4_state_t *s)
+SPAN_DECLARE(int) t4_rx_end(t4_state_t *s)
{
if (!s->rx)
return -1;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_rx_encoding(t4_state_t *s, int encoding)
+SPAN_DECLARE(void) t4_rx_set_rx_encoding(t4_state_t *s, int encoding)
{
s->line_encoding = encoding;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_image_width(t4_state_t *s, int width)
+SPAN_DECLARE(void) t4_rx_set_image_width(t4_state_t *s, int width)
{
s->image_width = width;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_y_resolution(t4_state_t *s, int resolution)
+SPAN_DECLARE(void) t4_rx_set_y_resolution(t4_state_t *s, int resolution)
{
s->y_resolution = resolution;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_x_resolution(t4_state_t *s, int resolution)
+SPAN_DECLARE(void) t4_rx_set_x_resolution(t4_state_t *s, int resolution)
{
s->x_resolution = resolution;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_dcs(t4_state_t *s, const char *dcs)
+SPAN_DECLARE(void) t4_rx_set_dcs(t4_state_t *s, const char *dcs)
{
s->dcs = (dcs && dcs[0]) ? dcs : NULL;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_sub_address(t4_state_t *s, const char *sub_address)
+SPAN_DECLARE(void) t4_rx_set_sub_address(t4_state_t *s, const char *sub_address)
{
s->sub_address = (sub_address && sub_address[0]) ? sub_address : NULL;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_far_ident(t4_state_t *s, const char *ident)
+SPAN_DECLARE(void) t4_rx_set_far_ident(t4_state_t *s, const char *ident)
{
s->far_ident = (ident && ident[0]) ? ident : NULL;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_vendor(t4_state_t *s, const char *vendor)
+SPAN_DECLARE(void) t4_rx_set_vendor(t4_state_t *s, const char *vendor)
{
s->vendor = vendor;
}
/*- End of function --------------------------------------------------------*/
-void t4_rx_set_model(t4_state_t *s, const char *model)
+SPAN_DECLARE(void) t4_rx_set_model(t4_state_t *s, const char *model)
{
s->model = model;
}
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_set_row_read_handler(t4_state_t *s, t4_row_read_handler_t handler, void *user_data)
+SPAN_DECLARE(int) t4_tx_set_row_read_handler(t4_state_t *s, t4_row_read_handler_t handler, void *user_data)
{
s->row_read_handler = handler;
s->row_read_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-t4_state_t *t4_tx_init(t4_state_t *s, const char *file, int start_page, int stop_page)
+SPAN_DECLARE(t4_state_t *) t4_tx_init(t4_state_t *s, const char *file, int start_page, int stop_page)
{
int run_space;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_start_page(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_start_page(t4_state_t *s)
{
int row;
int i;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_more_pages(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_more_pages(t4_state_t *s)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Checking for the existance of page %d\n", s->pages_transferred + 1);
if (s->pages_transferred >= s->stop_page)
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_restart_page(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_restart_page(t4_state_t *s)
{
s->bit_pos = 7;
s->bit_ptr = 0;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_end_page(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_end_page(t4_state_t *s)
{
s->pages_transferred++;
return 0;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_get_bit(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_get_bit(t4_state_t *s)
{
int bit;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_get_byte(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_get_byte(t4_state_t *s)
{
if (s->bit_ptr >= s->image_size)
return 0x100;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_get_chunk(t4_state_t *s, uint8_t buf[], int max_len)
+SPAN_DECLARE(int) t4_tx_get_chunk(t4_state_t *s, uint8_t buf[], int max_len)
{
if (s->bit_ptr >= s->image_size)
return 0;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_check_bit(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_check_bit(t4_state_t *s)
{
int bit;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_delete(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_delete(t4_state_t *s)
{
if (t4_tx_end(s))
return -1;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_end(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_end(t4_state_t *s)
{
if (s->rx)
return -1;
}
/*- End of function --------------------------------------------------------*/
-void t4_tx_set_tx_encoding(t4_state_t *s, int encoding)
+SPAN_DECLARE(void) t4_tx_set_tx_encoding(t4_state_t *s, int encoding)
{
s->line_encoding = encoding;
s->rows_to_next_1d_row = s->max_rows_to_next_1d_row - 1;
}
/*- End of function --------------------------------------------------------*/
-void t4_tx_set_min_row_bits(t4_state_t *s, int bits)
+SPAN_DECLARE(void) t4_tx_set_min_row_bits(t4_state_t *s, int bits)
{
s->min_bits_per_row = bits;
}
/*- End of function --------------------------------------------------------*/
-void t4_tx_set_local_ident(t4_state_t *s, const char *ident)
+SPAN_DECLARE(void) t4_tx_set_local_ident(t4_state_t *s, const char *ident)
{
s->local_ident = (ident && ident[0]) ? ident : NULL;
}
/*- End of function --------------------------------------------------------*/
-void t4_tx_set_header_info(t4_state_t *s, const char *info)
+SPAN_DECLARE(void) t4_tx_set_header_info(t4_state_t *s, const char *info)
{
s->header_info = (info && info[0]) ? info : NULL;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_get_y_resolution(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_get_y_resolution(t4_state_t *s)
{
return s->y_resolution;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_get_x_resolution(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_get_x_resolution(t4_state_t *s)
{
return s->x_resolution;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_get_image_width(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_get_image_width(t4_state_t *s)
{
return s->image_width;
}
/*- End of function --------------------------------------------------------*/
-int t4_tx_get_pages_in_file(t4_state_t *s)
+SPAN_DECLARE(int) t4_tx_get_pages_in_file(t4_state_t *s)
{
int max;
}
/*- End of function --------------------------------------------------------*/
-void t4_get_transfer_statistics(t4_state_t *s, t4_stats_t *t)
+SPAN_DECLARE(void) t4_get_transfer_statistics(t4_state_t *s, t4_stats_t *t)
{
t->pages_transferred = s->pages_transferred - s->start_page;
t->pages_in_file = s->pages_in_file;
}
/*- End of function --------------------------------------------------------*/
-const char *t4_encoding_to_str(int encoding)
+SPAN_DECLARE(const char *) t4_encoding_to_str(int encoding)
{
switch (encoding)
{
}
/*- End of function --------------------------------------------------------*/
-int time_scale_rate(time_scale_state_t *s, float playout_rate)
+SPAN_DECLARE(int) time_scale_rate(time_scale_state_t *s, float playout_rate)
{
if (playout_rate <= 0.0f)
return -1;
}
/*- End of function --------------------------------------------------------*/
-time_scale_state_t *time_scale_init(time_scale_state_t *s, int sample_rate, float playout_rate)
+SPAN_DECLARE(time_scale_state_t *) time_scale_init(time_scale_state_t *s, int sample_rate, float playout_rate)
{
int alloced;
}
/*- End of function --------------------------------------------------------*/
-int time_scale_free(time_scale_state_t *s)
+SPAN_DECLARE(int) time_scale_free(time_scale_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int time_scale(time_scale_state_t *s, int16_t out[], int16_t in[], int len)
+SPAN_DECLARE(int) time_scale(time_scale_state_t *s, int16_t out[], int16_t in[], int len)
{
double lcpf;
int pitch;
}
/*- End of function --------------------------------------------------------*/
-int time_scale_max_output_len(time_scale_state_t *s, int input_len)
+SPAN_DECLARE(int) time_scale_max_output_len(time_scale_state_t *s, int input_len)
{
return (int) (input_len*s->playout_rate + s->min_pitch + 1);
}
}
/*- End of function --------------------------------------------------------*/
-complexf_t periodogram(const complexf_t coeffs[], const complexf_t amp[], int len)
+SPAN_DECLARE(complexf_t) periodogram(const complexf_t coeffs[], const complexf_t amp[], int len)
{
complexf_t sum;
complexf_t diff;
}
/*- End of function --------------------------------------------------------*/
-int periodogram_prepare(complexf_t sum[], complexf_t diff[], const complexf_t amp[], int len)
+SPAN_DECLARE(int) periodogram_prepare(complexf_t sum[], complexf_t diff[], const complexf_t amp[], int len)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-complexf_t periodogram_apply(const complexf_t coeffs[], const complexf_t sum[], const complexf_t diff[], int len)
+SPAN_DECLARE(complexf_t) periodogram_apply(const complexf_t coeffs[], const complexf_t sum[], const complexf_t diff[], int len)
{
complexf_t x;
int i;
}
/*- End of function --------------------------------------------------------*/
-int periodogram_generate_coeffs(complexf_t coeffs[], float freq, int sample_rate, int window_len)
+SPAN_DECLARE(int) periodogram_generate_coeffs(complexf_t coeffs[], float freq, int sample_rate, int window_len)
{
float window;
float sum;
}
/*- End of function --------------------------------------------------------*/
-float periodogram_generate_phase_offset(complexf_t *offset, float freq, int sample_rate, int interval)
+SPAN_DECLARE(float) periodogram_generate_phase_offset(complexf_t *offset, float freq, int sample_rate, int interval)
{
float x;
}
/*- End of function --------------------------------------------------------*/
-float periodogram_freq_error(const complexf_t *phase_offset, float scale, const complexf_t *last_result, const complexf_t *result)
+SPAN_DECLARE(float) periodogram_freq_error(const complexf_t *phase_offset, float scale, const complexf_t *last_result, const complexf_t *result)
{
complexf_t prediction;
#define ms_to_samples(t) (((t)*SAMPLE_RATE)/1000)
-void make_tone_gen_descriptor(tone_gen_descriptor_t *s,
+SPAN_DECLARE(void) make_tone_gen_descriptor(tone_gen_descriptor_t *s,
int f1,
int l1,
int f2,
}
/*- End of function --------------------------------------------------------*/
-tone_gen_state_t *tone_gen_init(tone_gen_state_t *s, tone_gen_descriptor_t *t)
+SPAN_DECLARE(tone_gen_state_t *) tone_gen_init(tone_gen_state_t *s, tone_gen_descriptor_t *t)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-int tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples)
+SPAN_DECLARE(int) tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples)
{
int samples;
int limit;
};
#endif
-float v17_rx_carrier_frequency(v17_rx_state_t *s)
+SPAN_DECLARE(float) v17_rx_carrier_frequency(v17_rx_state_t *s)
{
return dds_frequencyf(s->carrier_phase_rate);
}
/*- End of function --------------------------------------------------------*/
-float v17_rx_symbol_timing_correction(v17_rx_state_t *s)
+SPAN_DECLARE(float) v17_rx_symbol_timing_correction(v17_rx_state_t *s)
{
return (float) s->total_baud_timing_correction/((float) RX_PULSESHAPER_COEFF_SETS*10.0f/3.0f);
}
/*- End of function --------------------------------------------------------*/
-float v17_rx_signal_power(v17_rx_state_t *s)
+SPAN_DECLARE(float) v17_rx_signal_power(v17_rx_state_t *s)
{
return power_meter_current_dbm0(&s->power);
}
/*- End of function --------------------------------------------------------*/
-void v17_rx_signal_cutoff(v17_rx_state_t *s, float cutoff)
+SPAN_DECLARE(void) v17_rx_signal_cutoff(v17_rx_state_t *s, float cutoff)
{
/* The 0.4 factor allows for the gain of the DC blocker */
s->carrier_on_power = (int32_t) (power_meter_level_dbm0(cutoff + 2.5f)*0.4f);
/*- End of function --------------------------------------------------------*/
#if defined(SPANDSP_USE_FIXED_POINTx)
-int v17_rx_equalizer_state(v17_rx_state_t *s, complexi16_t **coeffs)
+SPAN_DECLARE(int) v17_rx_equalizer_state(v17_rx_state_t *s, complexi16_t **coeffs)
#else
-int v17_rx_equalizer_state(v17_rx_state_t *s, complexf_t **coeffs)
+SPAN_DECLARE(int) v17_rx_equalizer_state(v17_rx_state_t *s, complexf_t **coeffs)
#endif
{
*coeffs = s->eq_coeff;
}
/*- End of function --------------------------------------------------------*/
-int v17_rx(v17_rx_state_t *s, const int16_t amp[], int len)
+SPAN_DECLARE(int) v17_rx(v17_rx_state_t *s, const int16_t amp[], int len)
{
int i;
int step;
}
/*- End of function --------------------------------------------------------*/
-void v17_rx_set_put_bit(v17_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(void) v17_rx_set_put_bit(v17_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
{
s->put_bit = put_bit;
s->put_bit_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void v17_rx_set_modem_status_handler(v17_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) v17_rx_set_modem_status_handler(v17_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v17_rx_get_logging_state(v17_rx_state_t *s)
+SPAN_DECLARE(logging_state_t *) v17_rx_get_logging_state(v17_rx_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-int v17_rx_restart(v17_rx_state_t *s, int bit_rate, int short_train)
+SPAN_DECLARE(int) v17_rx_restart(v17_rx_state_t *s, int bit_rate, int short_train)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-v17_rx_state_t *v17_rx_init(v17_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(v17_rx_state_t *) v17_rx_init(v17_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int v17_rx_free(v17_rx_state_t *s)
+SPAN_DECLARE(int) v17_rx_free(v17_rx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-void v17_rx_set_qam_report_handler(v17_rx_state_t *s, qam_report_handler_t handler, void *user_data)
+SPAN_DECLARE(void) v17_rx_set_qam_report_handler(v17_rx_state_t *s, qam_report_handler_t handler, void *user_data)
{
s->qam_report = handler;
s->qam_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-int v17_tx(v17_tx_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) v17_tx(v17_tx_state_t *s, int16_t amp[], int len)
{
#if defined(SPANDSP_USE_FIXED_POINT)
complexi_t x;
}
/*- End of function --------------------------------------------------------*/
-void v17_tx_power(v17_tx_state_t *s, float power)
+SPAN_DECLARE(void) v17_tx_power(v17_tx_state_t *s, float power)
{
/* The constellation design seems to keep the average power the same, regardless
of which bit rate is in use. */
}
/*- End of function --------------------------------------------------------*/
-void v17_tx_set_get_bit(v17_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(void) v17_tx_set_get_bit(v17_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
{
if (s->get_bit == s->current_get_bit)
s->current_get_bit = get_bit;
}
/*- End of function --------------------------------------------------------*/
-void v17_tx_set_modem_status_handler(v17_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) v17_tx_set_modem_status_handler(v17_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v17_tx_get_logging_state(v17_tx_state_t *s)
+SPAN_DECLARE(logging_state_t *) v17_tx_get_logging_state(v17_tx_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-int v17_tx_restart(v17_tx_state_t *s, int bit_rate, int tep, int short_train)
+SPAN_DECLARE(int) v17_tx_restart(v17_tx_state_t *s, int bit_rate, int tep, int short_train)
{
switch (bit_rate)
{
}
/*- End of function --------------------------------------------------------*/
-v17_tx_state_t *v17_tx_init(v17_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(v17_tx_state_t *) v17_tx_init(v17_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int v17_tx_free(v17_tx_state_t *s)
+SPAN_DECLARE(int) v17_tx_free(v17_tx_state_t *s)
{
free(s);
return 0;
{15, 14, 14, 1, 1, 3}
};
-float v22bis_rx_carrier_frequency(v22bis_state_t *s)
+SPAN_DECLARE(float) v22bis_rx_carrier_frequency(v22bis_state_t *s)
{
return dds_frequencyf(s->rx.carrier_phase_rate);
}
/*- End of function --------------------------------------------------------*/
-float v22bis_symbol_timing_correction(v22bis_state_t *s)
+SPAN_DECLARE(float) v22bis_symbol_timing_correction(v22bis_state_t *s)
{
return (float) s->rx.total_baud_timing_correction/((float) PULSESHAPER_COEFF_SETS*40.0f/(3.0f*2.0f));
}
/*- End of function --------------------------------------------------------*/
-float v22bis_rx_signal_power(v22bis_state_t *s)
+SPAN_DECLARE(float) v22bis_rx_signal_power(v22bis_state_t *s)
{
return power_meter_current_dbm0(&s->rx.rx_power);
}
/*- End of function --------------------------------------------------------*/
-int v22bis_equalizer_state(v22bis_state_t *s, complexf_t **coeffs)
+SPAN_DECLARE(int) v22bis_equalizer_state(v22bis_state_t *s, complexf_t **coeffs)
{
*coeffs = s->rx.eq_coeff;
return 2*V22BIS_EQUALIZER_LEN + 1;
}
/*- End of function --------------------------------------------------------*/
-int v22bis_rx(v22bis_state_t *s, const int16_t amp[], int len)
+SPAN_DECLARE(int) v22bis_rx(v22bis_state_t *s, const int16_t amp[], int len)
{
int i;
int j;
}
/*- End of function --------------------------------------------------------*/
-int v22bis_rx_restart(v22bis_state_t *s, int bit_rate)
+SPAN_DECLARE(int) v22bis_rx_restart(v22bis_state_t *s, int bit_rate)
{
/* If bit_rate is 2400, the real bit rate is negotiated. If bit_rate
is 1200, the real bit rate is forced to 1200. */
}
/*- End of function --------------------------------------------------------*/
-void v22bis_set_qam_report_handler(v22bis_state_t *s, qam_report_handler_t handler, void *user_data)
+SPAN_DECLARE(void) v22bis_set_qam_report_handler(v22bis_state_t *s, qam_report_handler_t handler, void *user_data)
{
s->rx.qam_report = handler;
s->rx.qam_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-int v22bis_tx(v22bis_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) v22bis_tx(v22bis_state_t *s, int16_t amp[], int len)
{
complexf_t x;
complexf_t z;
}
/*- End of function --------------------------------------------------------*/
-void v22bis_tx_power(v22bis_state_t *s, float power)
+SPAN_DECLARE(void) v22bis_tx_power(v22bis_state_t *s, float power)
{
float l;
}
/*- End of function --------------------------------------------------------*/
-void v22bis_set_get_bit(v22bis_state_t *s, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(void) v22bis_set_get_bit(v22bis_state_t *s, get_bit_func_t get_bit, void *user_data)
{
s->get_bit = get_bit;
s->user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void v22bis_set_put_bit(v22bis_state_t *s, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(void) v22bis_set_put_bit(v22bis_state_t *s, put_bit_func_t put_bit, void *user_data)
{
s->put_bit = put_bit;
s->user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v22bis_get_logging_state(v22bis_state_t *s)
+SPAN_DECLARE(logging_state_t *) v22bis_get_logging_state(v22bis_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-int v22bis_restart(v22bis_state_t *s, int bit_rate)
+SPAN_DECLARE(int) v22bis_restart(v22bis_state_t *s, int bit_rate)
{
if (bit_rate != 2400 && bit_rate != 1200)
return -1;
}
/*- End of function --------------------------------------------------------*/
-v22bis_state_t *v22bis_init(v22bis_state_t *s,
+SPAN_DECLARE(v22bis_state_t *) v22bis_init(v22bis_state_t *s,
int bit_rate,
int guard,
int caller,
}
/*- End of function --------------------------------------------------------*/
-int v22bis_free(v22bis_state_t *s)
+SPAN_DECLARE(int) v22bis_free(v22bis_state_t *s)
{
free(s);
return 0;
};
#endif
-float v27ter_rx_carrier_frequency(v27ter_rx_state_t *s)
+SPAN_DECLARE(float) v27ter_rx_carrier_frequency(v27ter_rx_state_t *s)
{
return dds_frequencyf(s->carrier_phase_rate);
}
/*- End of function --------------------------------------------------------*/
-float v27ter_rx_symbol_timing_correction(v27ter_rx_state_t *s)
+SPAN_DECLARE(float) v27ter_rx_symbol_timing_correction(v27ter_rx_state_t *s)
{
int steps_per_symbol;
}
/*- End of function --------------------------------------------------------*/
-float v27ter_rx_signal_power(v27ter_rx_state_t *s)
+SPAN_DECLARE(float) v27ter_rx_signal_power(v27ter_rx_state_t *s)
{
return power_meter_current_dbm0(&s->power);
}
/*- End of function --------------------------------------------------------*/
-void v27ter_rx_signal_cutoff(v27ter_rx_state_t *s, float cutoff)
+SPAN_DECLARE(void) v27ter_rx_signal_cutoff(v27ter_rx_state_t *s, float cutoff)
{
/* The 0.4 factor allows for the gain of the DC blocker */
s->carrier_on_power = (int32_t) (power_meter_level_dbm0(cutoff + 2.5f)*0.4f);
/*- End of function --------------------------------------------------------*/
#if defined(SPANDSP_USE_FIXED_POINTx)
-int v27ter_rx_equalizer_state(v27ter_rx_state_t *s, complexi16_t **coeffs)
+SPAN_DECLARE(int) v27ter_rx_equalizer_state(v27ter_rx_state_t *s, complexi16_t **coeffs)
#else
-int v27ter_rx_equalizer_state(v27ter_rx_state_t *s, complexf_t **coeffs)
+SPAN_DECLARE(int) v27ter_rx_equalizer_state(v27ter_rx_state_t *s, complexf_t **coeffs)
#endif
{
*coeffs = s->eq_coeff;
}
/*- End of function --------------------------------------------------------*/
-int v27ter_rx(v27ter_rx_state_t *s, const int16_t amp[], int len)
+SPAN_DECLARE(int) v27ter_rx(v27ter_rx_state_t *s, const int16_t amp[], int len)
{
int i;
int step;
}
/*- End of function --------------------------------------------------------*/
-void v27ter_rx_set_put_bit(v27ter_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(void) v27ter_rx_set_put_bit(v27ter_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
{
s->put_bit = put_bit;
s->put_bit_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void v27ter_rx_set_modem_status_handler(v27ter_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) v27ter_rx_set_modem_status_handler(v27ter_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v27ter_rx_get_logging_state(v27ter_rx_state_t *s)
+SPAN_DECLARE(logging_state_t *) v27ter_rx_get_logging_state(v27ter_rx_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-int v27ter_rx_restart(v27ter_rx_state_t *s, int bit_rate, int old_train)
+SPAN_DECLARE(int) v27ter_rx_restart(v27ter_rx_state_t *s, int bit_rate, int old_train)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Restarting V.27ter\n");
if (bit_rate != 4800 && bit_rate != 2400)
}
/*- End of function --------------------------------------------------------*/
-v27ter_rx_state_t *v27ter_rx_init(v27ter_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(v27ter_rx_state_t *) v27ter_rx_init(v27ter_rx_state_t *s, int bit_rate, put_bit_func_t put_bit, void *user_data)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int v27ter_rx_free(v27ter_rx_state_t *s)
+SPAN_DECLARE(int) v27ter_rx_free(v27ter_rx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-void v27ter_rx_set_qam_report_handler(v27ter_rx_state_t *s, qam_report_handler_t handler, void *user_data)
+SPAN_DECLARE(void) v27ter_rx_set_qam_report_handler(v27ter_rx_state_t *s, qam_report_handler_t handler, void *user_data)
{
s->qam_report = handler;
s->qam_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-int v27ter_tx(v27ter_tx_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) v27ter_tx(v27ter_tx_state_t *s, int16_t amp[], int len)
{
#if defined(SPANDSP_USE_FIXED_POINT)
complexi_t x;
}
/*- End of function --------------------------------------------------------*/
-void v27ter_tx_power(v27ter_tx_state_t *s, float power)
+SPAN_DECLARE(void) v27ter_tx_power(v27ter_tx_state_t *s, float power)
{
float l;
}
/*- End of function --------------------------------------------------------*/
-void v27ter_tx_set_get_bit(v27ter_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(void) v27ter_tx_set_get_bit(v27ter_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
{
if (s->get_bit == s->current_get_bit)
s->current_get_bit = get_bit;
}
/*- End of function --------------------------------------------------------*/
-void v27ter_tx_set_modem_status_handler(v27ter_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) v27ter_tx_set_modem_status_handler(v27ter_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v27ter_tx_get_logging_state(v27ter_tx_state_t *s)
+SPAN_DECLARE(logging_state_t *) v27ter_tx_get_logging_state(v27ter_tx_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-int v27ter_tx_restart(v27ter_tx_state_t *s, int bit_rate, int tep)
+SPAN_DECLARE(int) v27ter_tx_restart(v27ter_tx_state_t *s, int bit_rate, int tep)
{
if (bit_rate != 4800 && bit_rate != 2400)
return -1;
}
/*- End of function --------------------------------------------------------*/
-v27ter_tx_state_t *v27ter_tx_init(v27ter_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(v27ter_tx_state_t *) v27ter_tx_init(v27ter_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int v27ter_tx_free(v27ter_tx_state_t *s)
+SPAN_DECLARE(int) v27ter_tx_free(v27ter_tx_state_t *s)
{
free(s);
return 0;
#define SYNC_CROSS_CORR_COEFF_C -0.378857f /* -alpha*sin(low_edge) */
#endif
-float v29_rx_carrier_frequency(v29_rx_state_t *s)
+SPAN_DECLARE(float) v29_rx_carrier_frequency(v29_rx_state_t *s)
{
return dds_frequencyf(s->carrier_phase_rate);
}
/*- End of function --------------------------------------------------------*/
-float v29_rx_symbol_timing_correction(v29_rx_state_t *s)
+SPAN_DECLARE(float) v29_rx_symbol_timing_correction(v29_rx_state_t *s)
{
return (float) s->total_baud_timing_correction/((float) RX_PULSESHAPER_COEFF_SETS*10.0f/3.0f);
}
/*- End of function --------------------------------------------------------*/
-float v29_rx_signal_power(v29_rx_state_t *s)
+SPAN_DECLARE(float) v29_rx_signal_power(v29_rx_state_t *s)
{
return power_meter_current_dbm0(&s->power);
}
/*- End of function --------------------------------------------------------*/
-void v29_rx_signal_cutoff(v29_rx_state_t *s, float cutoff)
+SPAN_DECLARE(void) v29_rx_signal_cutoff(v29_rx_state_t *s, float cutoff)
{
/* The 0.4 factor allows for the gain of the DC blocker */
s->carrier_on_power = (int32_t) (power_meter_level_dbm0(cutoff + 2.5f)*0.4f);
/*- End of function --------------------------------------------------------*/
#if defined(SPANDSP_USE_FIXED_POINT)
-int v29_rx_equalizer_state(v29_rx_state_t *s, complexi16_t **coeffs)
+SPAN_DECLARE(int) v29_rx_equalizer_state(v29_rx_state_t *s, complexi16_t **coeffs)
#else
-int v29_rx_equalizer_state(v29_rx_state_t *s, complexf_t **coeffs)
+SPAN_DECLARE(int) v29_rx_equalizer_state(v29_rx_state_t *s, complexf_t **coeffs)
#endif
{
*coeffs = s->eq_coeff;
}
/*- End of function --------------------------------------------------------*/
-int v29_rx(v29_rx_state_t *s, const int16_t amp[], int len)
+SPAN_DECLARE(int) v29_rx(v29_rx_state_t *s, const int16_t amp[], int len)
{
int i;
int step;
}
/*- End of function --------------------------------------------------------*/
-void v29_rx_set_put_bit(v29_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(void) v29_rx_set_put_bit(v29_rx_state_t *s, put_bit_func_t put_bit, void *user_data)
{
s->put_bit = put_bit;
s->put_bit_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void v29_rx_set_modem_status_handler(v29_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) v29_rx_set_modem_status_handler(v29_rx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v29_rx_get_logging_state(v29_rx_state_t *s)
+SPAN_DECLARE(logging_state_t *) v29_rx_get_logging_state(v29_rx_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-int v29_rx_restart(v29_rx_state_t *s, int bit_rate, int old_train)
+SPAN_DECLARE(int) v29_rx_restart(v29_rx_state_t *s, int bit_rate, int old_train)
{
switch (bit_rate)
{
}
/*- End of function --------------------------------------------------------*/
-v29_rx_state_t *v29_rx_init(v29_rx_state_t *s, int rate, put_bit_func_t put_bit, void *user_data)
+SPAN_DECLARE(v29_rx_state_t *) v29_rx_init(v29_rx_state_t *s, int rate, put_bit_func_t put_bit, void *user_data)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int v29_rx_free(v29_rx_state_t *s)
+SPAN_DECLARE(int) v29_rx_free(v29_rx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-void v29_rx_set_qam_report_handler(v29_rx_state_t *s, qam_report_handler_t handler, void *user_data)
+SPAN_DECLARE(void) v29_rx_set_qam_report_handler(v29_rx_state_t *s, qam_report_handler_t handler, void *user_data)
{
s->qam_report = handler;
s->qam_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-int v29_tx(v29_tx_state_t *s, int16_t amp[], int len)
+SPAN_DECLARE(int) v29_tx(v29_tx_state_t *s, int16_t amp[], int len)
{
#if defined(SPANDSP_USE_FIXED_POINT)
complexi_t x;
}
/*- End of function --------------------------------------------------------*/
-void v29_tx_power(v29_tx_state_t *s, float power)
+SPAN_DECLARE(void) v29_tx_power(v29_tx_state_t *s, float power)
{
/* The constellation does not maintain constant average power as we change bit rates.
We need to scale the gain we get here by a bit rate specific scaling factor each
}
/*- End of function --------------------------------------------------------*/
-void v29_tx_set_get_bit(v29_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(void) v29_tx_set_get_bit(v29_tx_state_t *s, get_bit_func_t get_bit, void *user_data)
{
if (s->get_bit == s->current_get_bit)
s->current_get_bit = get_bit;
}
/*- End of function --------------------------------------------------------*/
-void v29_tx_set_modem_status_handler(v29_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
+SPAN_DECLARE(void) v29_tx_set_modem_status_handler(v29_tx_state_t *s, modem_tx_status_func_t handler, void *user_data)
{
s->status_handler = handler;
s->status_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v29_tx_get_logging_state(v29_tx_state_t *s)
+SPAN_DECLARE(logging_state_t *) v29_tx_get_logging_state(v29_tx_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-int v29_tx_restart(v29_tx_state_t *s, int bit_rate, int tep)
+SPAN_DECLARE(int) v29_tx_restart(v29_tx_state_t *s, int bit_rate, int tep)
{
span_log(&s->logging, SPAN_LOG_FLOW, "Restarting V.29\n");
s->bit_rate = bit_rate;
}
/*- End of function --------------------------------------------------------*/
-v29_tx_state_t *v29_tx_init(v29_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
+SPAN_DECLARE(v29_tx_state_t *) v29_tx_init(v29_tx_state_t *s, int bit_rate, int tep, get_bit_func_t get_bit, void *user_data)
{
if (s == NULL)
{
}
/*- End of function --------------------------------------------------------*/
-int v29_tx_free(v29_tx_state_t *s)
+SPAN_DECLARE(int) v29_tx_free(v29_tx_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-const char *lapm_status_to_str(int status)
+SPAN_DECLARE(const char *) lapm_status_to_str(int status)
{
switch (status)
{
}
/*- End of function --------------------------------------------------------*/
-int lapm_tx(lapm_state_t *s, const void *buf, int len)
+SPAN_DECLARE(int) lapm_tx(lapm_state_t *s, const void *buf, int len)
{
return queue_write(s->tx_queue, buf, len);
}
/*- End of function --------------------------------------------------------*/
-int lapm_release(lapm_state_t *s)
+SPAN_DECLARE(int) lapm_release(lapm_state_t *s)
{
s->state = LAPM_RELEASE;
return 0;
}
/*- End of function --------------------------------------------------------*/
-int lapm_loopback(lapm_state_t *s, int enable)
+SPAN_DECLARE(int) lapm_loopback(lapm_state_t *s, int enable)
{
s->state = LAPM_TEST;
return 0;
}
/*- End of function --------------------------------------------------------*/
-int lapm_break(lapm_state_t *s, int enable)
+SPAN_DECLARE(int) lapm_break(lapm_state_t *s, int enable)
{
s->state = LAPM_SIGNAL;
return 0;
}
/*- End of function --------------------------------------------------------*/
-int lapm_tx_iframe(lapm_state_t *s, const void *buf, int len, int cr)
+SPAN_DECLARE(int) lapm_tx_iframe(lapm_state_t *s, const void *buf, int len, int cr)
{
lapm_frame_queue_t *f;
}
/*- End of function --------------------------------------------------------*/
-void lapm_dump(lapm_state_t *s, const uint8_t *frame, int len, int showraw, int txrx)
+SPAN_DECLARE(void) lapm_dump(lapm_state_t *s, const uint8_t *frame, int len, int showraw, int txrx)
{
const char *type;
char direction_tag[2];
}
/*- End of function --------------------------------------------------------*/
-void v42_rx_bit(void *user_data, int bit)
+SPAN_DECLARE(void) v42_rx_bit(void *user_data, int bit)
{
v42_state_t *s;
}
/*- End of function --------------------------------------------------------*/
-int v42_tx_bit(void *user_data)
+SPAN_DECLARE(int) v42_tx_bit(void *user_data)
{
v42_state_t *s;
int bit;
}
/*- End of function --------------------------------------------------------*/
-void v42_set_status_callback(v42_state_t *s, v42_status_func_t callback, void *user_data)
+SPAN_DECLARE(void) v42_set_status_callback(v42_state_t *s, v42_status_func_t callback, void *user_data)
{
s->lapm.status_callback = callback;
s->lapm.status_callback_user_data = user_data;
}
/*- End of function --------------------------------------------------------*/
-void v42_restart(v42_state_t *s)
+SPAN_DECLARE(void) v42_restart(v42_state_t *s)
{
span_schedule_init(&s->lapm.sched);
}
/*- End of function --------------------------------------------------------*/
-v42_state_t *v42_init(v42_state_t *s, int caller, int detect, v42_frame_handler_t frame_handler, void *user_data)
+SPAN_DECLARE(v42_state_t *) v42_init(v42_state_t *s, int caller, int detect, v42_frame_handler_t frame_handler, void *user_data)
{
int alloced;
}
/*- End of function --------------------------------------------------------*/
-int v42_release(v42_state_t *s)
+SPAN_DECLARE(int) v42_release(v42_state_t *s)
{
free(s);
return 0;
}
/*- End of function --------------------------------------------------------*/
-int v42bis_compress(v42bis_state_t *s, const uint8_t *buf, int len)
+SPAN_DECLARE(int) v42bis_compress(v42bis_state_t *s, const uint8_t *buf, int len)
{
int ptr;
int i;
}
/*- End of function --------------------------------------------------------*/
-int v42bis_compress_flush(v42bis_state_t *s)
+SPAN_DECLARE(int) v42bis_compress_flush(v42bis_state_t *s)
{
v42bis_compress_state_t *ss;
/*- End of function --------------------------------------------------------*/
#endif
-int v42bis_decompress(v42bis_state_t *s, const uint8_t *buf, int len)
+SPAN_DECLARE(int) v42bis_decompress(v42bis_state_t *s, const uint8_t *buf, int len)
{
int ptr;
int i;
}
/*- End of function --------------------------------------------------------*/
-int v42bis_decompress_flush(v42bis_state_t *s)
+SPAN_DECLARE(int) v42bis_decompress_flush(v42bis_state_t *s)
{
v42bis_decompress_state_t *ss;
/*- End of function --------------------------------------------------------*/
#endif
-void v42bis_compression_control(v42bis_state_t *s, int mode)
+SPAN_DECLARE(void) v42bis_compression_control(v42bis_state_t *s, int mode)
{
s->compress.compression_mode = mode;
switch (mode)
}
/*- End of function --------------------------------------------------------*/
-v42bis_state_t *v42bis_init(v42bis_state_t *s,
+SPAN_DECLARE(v42bis_state_t *) v42bis_init(v42bis_state_t *s,
int negotiated_p0,
int negotiated_p1,
int negotiated_p2,
}
/*- End of function --------------------------------------------------------*/
-int v42bis_release(v42bis_state_t *s)
+SPAN_DECLARE(int) v42bis_release(v42bis_state_t *s)
{
free(s);
return 0;
V8_SYNC_V92
} v8_sync_types_e;
-const char *v8_call_function_to_str(int call_function)
+SPAN_DECLARE(const char *) v8_call_function_to_str(int call_function)
{
switch (call_function)
{
}
/*- End of function --------------------------------------------------------*/
-const char *v8_modulation_to_str(int modulation_scheme)
+SPAN_DECLARE(const char *) v8_modulation_to_str(int modulation_scheme)
{
switch (modulation_scheme)
{
}
/*- End of function --------------------------------------------------------*/
-const char *v8_protocol_to_str(int protocol)
+SPAN_DECLARE(const char *) v8_protocol_to_str(int protocol)
{
switch (protocol)
{
}
/*- End of function --------------------------------------------------------*/
-const char *v8_pstn_access_to_str(int pstn_access)
+SPAN_DECLARE(const char *) v8_pstn_access_to_str(int pstn_access)
{
return "???";
}
/*- End of function --------------------------------------------------------*/
-const char *v8_pcm_modem_availability_to_str(int pcm_modem_availability)
+SPAN_DECLARE(const char *) v8_pcm_modem_availability_to_str(int pcm_modem_availability)
{
return "???";
}
/*- End of function --------------------------------------------------------*/
-void v8_log_supported_modulations(v8_state_t *s, int modulation_schemes)
+SPAN_DECLARE(void) v8_log_supported_modulations(v8_state_t *s, int modulation_schemes)
{
const char *comma;
int i;
}
/*- End of function --------------------------------------------------------*/
-int v8_tx(v8_state_t *s, int16_t *amp, int max_len)
+SPAN_DECLARE(int) v8_tx(v8_state_t *s, int16_t *amp, int max_len)
{
int len;
}
/*- End of function --------------------------------------------------------*/
-int v8_rx(v8_state_t *s, const int16_t *amp, int len)
+SPAN_DECLARE(int) v8_rx(v8_state_t *s, const int16_t *amp, int len)
{
int i;
int residual_samples;
}
/*- End of function --------------------------------------------------------*/
-logging_state_t *v8_get_logging_state(v8_state_t *s)
+SPAN_DECLARE(logging_state_t *) v8_get_logging_state(v8_state_t *s)
{
return &s->logging;
}
/*- End of function --------------------------------------------------------*/
-v8_state_t *v8_init(v8_state_t *s,
+SPAN_DECLARE(v8_state_t *) v8_init(v8_state_t *s,
int caller,
int available_modulations,
v8_result_handler_t *result_handler,
}
/*- End of function --------------------------------------------------------*/
-int v8_release(v8_state_t *s)
+SPAN_DECLARE(int) v8_release(v8_state_t *s)
{
return queue_free(s->tx_queue);
}
/*- End of function --------------------------------------------------------*/
-int v8_free(v8_state_t *s)
+SPAN_DECLARE(int) v8_free(v8_state_t *s)
{
int ret;
#include "spandsp/vector_float.h"
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_copyf(float z[], const float x[], int n)
+SPAN_DECLARE(void) vec_copyf(float z[], const float x[], int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_copyf(float z[], const float x[], int n)
+SPAN_DECLARE(void) vec_copyf(float z[], const float x[], int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_copy(double z[], const double x[], int n)
+SPAN_DECLARE(void) vec_copy(double z[], const double x[], int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_negatef(float z[], const float x[], int n)
+SPAN_DECLARE(void) vec_negatef(float z[], const float x[], int n)
{
int i;
static const uint32_t mask = 0x80000000;
}
}
#else
-void vec_negatef(float z[], const float x[], int n)
+SPAN_DECLARE(void) vec_negatef(float z[], const float x[], int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_negate(double z[], const double x[], int n)
+SPAN_DECLARE(void) vec_negate(double z[], const double x[], int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_zerof(float z[], int n)
+SPAN_DECLARE(void) vec_zerof(float z[], int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_zerof(float z[], int n)
+SPAN_DECLARE(void) vec_zerof(float z[], int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_zero(double z[], int n)
+SPAN_DECLARE(void) vec_zero(double z[], int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_setf(float z[], float x, int n)
+SPAN_DECLARE(void) vec_setf(float z[], float x, int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_setf(float z[], float x, int n)
+SPAN_DECLARE(void) vec_setf(float z[], float x, int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_set(double z[], double x, int n)
+SPAN_DECLARE(void) vec_set(double z[], double x, int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_addf(float z[], const float x[], const float y[], int n)
+SPAN_DECLARE(void) vec_addf(float z[], const float x[], const float y[], int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_addf(float z[], const float x[], const float y[], int n)
+SPAN_DECLARE(void) vec_addf(float z[], const float x[], const float y[], int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_add(double z[], const double x[], const double y[], int n)
+SPAN_DECLARE(void) vec_add(double z[], const double x[], const double y[], int n)
{
int i;
/*- End of function --------------------------------------------------------*/
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_scaledxy_addf(float z[], const float x[], float x_scale, const float y[], float y_scale, int n)
+SPAN_DECLARE(void) vec_scaledxy_addf(float z[], const float x[], float x_scale, const float y[], float y_scale, int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_scaledxy_addf(float z[], const float x[], float x_scale, const float y[], float y_scale, int n)
+SPAN_DECLARE(void) vec_scaledxy_addf(float z[], const float x[], float x_scale, const float y[], float y_scale, int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_scaledxy_add(double z[], const double x[], double x_scale, const double y[], double y_scale, int n)
+SPAN_DECLARE(void) vec_scaledxy_add(double z[], const double x[], double x_scale, const double y[], double y_scale, int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_scaledy_addf(float z[], const float x[], const float y[], float y_scale, int n)
+SPAN_DECLARE(void) vec_scaledy_addf(float z[], const float x[], const float y[], float y_scale, int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_scaledy_addf(float z[], const float x[], const float y[], float y_scale, int n)
+SPAN_DECLARE(void) vec_scaledy_addf(float z[], const float x[], const float y[], float y_scale, int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_scaledy_add(double z[], const double x[], const double y[], double y_scale, int n)
+SPAN_DECLARE(void) vec_scaledy_add(double z[], const double x[], const double y[], double y_scale, int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_subf(float z[], const float x[], const float y[], int n)
+SPAN_DECLARE(void) vec_subf(float z[], const float x[], const float y[], int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_subf(float z[], const float x[], const float y[], int n)
+SPAN_DECLARE(void) vec_subf(float z[], const float x[], const float y[], int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_sub(double z[], const double x[], const double y[], int n)
+SPAN_DECLARE(void) vec_sub(double z[], const double x[], const double y[], int n)
{
int i;
/*- End of function --------------------------------------------------------*/
#endif
-void vec_scaledxy_subf(float z[], const float x[], float x_scale, const float y[], float y_scale, int n)
+SPAN_DECLARE(void) vec_scaledxy_subf(float z[], const float x[], float x_scale, const float y[], float y_scale, int n)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-void vec_scaledxy_sub(double z[], const double x[], double x_scale, const double y[], double y_scale, int n)
+SPAN_DECLARE(void) vec_scaledxy_sub(double z[], const double x[], double x_scale, const double y[], double y_scale, int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_scalar_mulf(float z[], const float x[], float y, int n)
+SPAN_DECLARE(void) vec_scalar_mulf(float z[], const float x[], float y, int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_scalar_mulf(float z[], const float x[], float y, int n)
+SPAN_DECLARE(void) vec_scalar_mulf(float z[], const float x[], float y, int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_scalar_mul(double z[], const double x[], double y, int n)
+SPAN_DECLARE(void) vec_scalar_mul(double z[], const double x[], double y, int n)
{
int i;
/*- End of function --------------------------------------------------------*/
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_scalar_addf(float z[], const float x[], float y, int n)
+SPAN_DECLARE(void) vec_scalar_addf(float z[], const float x[], float y, int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_scalar_addf(float z[], const float x[], float y, int n)
+SPAN_DECLARE(void) vec_scalar_addf(float z[], const float x[], float y, int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_scalar_add(double z[], const double x[], double y, int n)
+SPAN_DECLARE(void) vec_scalar_add(double z[], const double x[], double y, int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_scalar_subf(float z[], const float x[], float y, int n)
+SPAN_DECLARE(void) vec_scalar_subf(float z[], const float x[], float y, int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_scalar_subf(float z[], const float x[], float y, int n)
+SPAN_DECLARE(void) vec_scalar_subf(float z[], const float x[], float y, int n)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_scalar_sub(double z[], const double x[], double y, int n)
+SPAN_DECLARE(void) vec_scalar_sub(double z[], const double x[], double y, int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_mulf(float z[], const float x[], const float y[], int n)
+SPAN_DECLARE(void) vec_mulf(float z[], const float x[], const float y[], int n)
{
int i;
__m128 n1;
}
}
#else
-void vec_mulf(float z[], const float x[], const float y[], int n)
+SPAN_DECLARE(void) vec_mulf(float z[], const float x[], const float y[], int n)
{
int i;
/*- End of function --------------------------------------------------------*/
#endif
-void vec_mul(double z[], const double x[], const double y[], int n)
+SPAN_DECLARE(void) vec_mul(double z[], const double x[], const double y[], int n)
{
int i;
#endif
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-float vec_dot_prodf(const float x[], const float y[], int n)
+SPAN_DECLARE(float) vec_dot_prodf(const float x[], const float y[], int n)
{
int i;
float z;
return z;
}
#else
-float vec_dot_prodf(const float x[], const float y[], int n)
+SPAN_DECLARE(float) vec_dot_prodf(const float x[], const float y[], int n)
{
int i;
float z;
/*- End of function --------------------------------------------------------*/
#endif
-double vec_dot_prod(const double x[], const double y[], int n)
+SPAN_DECLARE(double) vec_dot_prod(const double x[], const double y[], int n)
{
int i;
double z;
/*- End of function --------------------------------------------------------*/
#endif
-float vec_circular_dot_prodf(const float x[], const float y[], int n, int pos)
+SPAN_DECLARE(float) vec_circular_dot_prodf(const float x[], const float y[], int n, int pos)
{
float z;
#define LMS_LEAK_RATE 0.9999f
#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2)
-void vec_lmsf(const float x[], float y[], int n, float error)
+SPAN_DECLARE(void) vec_lmsf(const float x[], float y[], int n, float error)
{
int i;
__m128 n1;
}
}
#else
-void vec_lmsf(const float x[], float y[], int n, float error)
+SPAN_DECLARE(void) vec_lmsf(const float x[], float y[], int n, float error)
{
int i;
#endif
/*- End of function --------------------------------------------------------*/
-void vec_circular_lmsf(const float x[], float y[], int n, int pos, float error)
+SPAN_DECLARE(void) vec_circular_lmsf(const float x[], float y[], int n, int pos, float error)
{
vec_lmsf(&x[pos], &y[0], n - pos, error);
vec_lmsf(&x[0], &y[n - pos], pos, error);
#include "spandsp/telephony.h"
#include "spandsp/vector_int.h"
-int32_t vec_dot_prodi16(const int16_t x[], const int16_t y[], int n)
+SPAN_DECLARE(int32_t) vec_dot_prodi16(const int16_t x[], const int16_t y[], int n)
{
int32_t z;
}
/*- End of function --------------------------------------------------------*/
-int32_t vec_circular_dot_prodi16(const int16_t x[], const int16_t y[], int n, int pos)
+SPAN_DECLARE(int32_t) vec_circular_dot_prodi16(const int16_t x[], const int16_t y[], int n, int pos)
{
int32_t z;
}
/*- End of function --------------------------------------------------------*/
-void vec_lmsi16(const int16_t x[], int16_t y[], int n, int16_t error)
+SPAN_DECLARE(void) vec_lmsi16(const int16_t x[], int16_t y[], int n, int16_t error)
{
int i;
}
/*- End of function --------------------------------------------------------*/
-void vec_circular_lmsi16(const int16_t x[], int16_t y[], int n, int pos, int16_t error)
+SPAN_DECLARE(void) vec_circular_lmsi16(const int16_t x[], int16_t y[], int n, int pos, int16_t error)
{
vec_lmsi16(&x[pos], &y[0], n - pos, error);
vec_lmsi16(&x[0], &y[n - pos], pos, error);
}
/*- End of function --------------------------------------------------------*/
-int32_t vec_min_maxi16(const int16_t x[], int n, int16_t out[])
+SPAN_DECLARE(int32_t) vec_min_maxi16(const int16_t x[], int n, int16_t out[])
{
#if defined(__GNUC__) && defined(SPANDSP_USE_MMX)
static const int32_t lower_bound = 0x80008000;