spandsp
0.0.6
|
#include <stdlib.h>
#include <inttypes.h>
#include "floating_fudge.h"
#include <memory.h>
#include <string.h>
#include <limits.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/fast_convert.h"
#include "spandsp/queue.h"
#include "spandsp/complex.h"
#include "spandsp/dds.h"
#include "spandsp/tone_detect.h"
#include "spandsp/tone_generate.h"
#include "spandsp/super_tone_rx.h"
#include "spandsp/dtmf.h"
#include "spandsp/private/logging.h"
#include "spandsp/private/queue.h"
#include "spandsp/private/tone_generate.h"
#include "spandsp/private/dtmf.h"
Functions | |
int | dtmf_rx (dtmf_rx_state_t *s, const int16_t amp[], int samples) |
Process a block of received DTMF audio samples. More... | |
int | dtmf_rx_fillin (dtmf_rx_state_t *s, int samples) |
Fake processing of a missing block of received DTMF audio samples. More... | |
int | dtmf_rx_status (dtmf_rx_state_t *s) |
Get the status of DTMF detection during processing of the last audio chunk. More... | |
size_t | dtmf_rx_get (dtmf_rx_state_t *s, char *buf, int max) |
Get a string of digits from a DTMF receiver's output buffer. More... | |
void | dtmf_rx_set_realtime_callback (dtmf_rx_state_t *s, tone_report_func_t callback, void *user_data) |
Set a realtime callback for a DTMF receiver context. More... | |
void | dtmf_rx_parms (dtmf_rx_state_t *s, int filter_dialtone, int twist, int reverse_twist, int threshold) |
Adjust a DTMF receiver context. More... | |
logging_state_t * | dtmf_rx_get_logging_state (dtmf_rx_state_t *s) |
Get the logging context associated with a DTMF receiver context. More... | |
dtmf_rx_state_t * | dtmf_rx_init (dtmf_rx_state_t *s, digits_rx_callback_t callback, void *user_data) |
Initialise a DTMF receiver context. More... | |
int | dtmf_rx_release (dtmf_rx_state_t *s) |
Release a DTMF receiver context. More... | |
int | dtmf_rx_free (dtmf_rx_state_t *s) |
Free a DTMF receiver context. More... | |
int | dtmf_tx (dtmf_tx_state_t *s, int16_t amp[], int max_samples) |
Generate a buffer of DTMF tones. More... | |
int | dtmf_tx_put (dtmf_tx_state_t *s, const char *digits, int len) |
Put a string of digits in a DTMF generator's input buffer. More... | |
void | dtmf_tx_set_level (dtmf_tx_state_t *s, int level, int twist) |
Change the transmit level for a DTMF tone generator context. More... | |
void | dtmf_tx_set_timing (dtmf_tx_state_t *s, int on_time, int off_time) |
Change the transmit on and off time for a DTMF tone generator context. More... | |
dtmf_tx_state_t * | dtmf_tx_init (dtmf_tx_state_t *s) |
Initialise a DTMF tone generator context. More... | |
int | dtmf_tx_release (dtmf_tx_state_t *s) |
Release a DTMF tone generator context. More... | |
int | dtmf_tx_free (dtmf_tx_state_t *s) |
Free a DTMF tone generator context. More... | |
int dtmf_rx | ( | dtmf_rx_state_t * | s, |
const int16_t | amp[], | ||
int | samples | ||
) |
Process a block of received DTMF audio samples.
Process a block of received DTMF audio samples.
s | The DTMF receiver context. |
amp | The audio sample buffer. |
samples | The number of samples in the buffer. |
int dtmf_rx_fillin | ( | dtmf_rx_state_t * | s, |
int | samples | ||
) |
Fake processing of a missing block of received DTMF audio samples.
Fake processing of a missing block of received DTMF audio samples. (e.g due to packet loss).
s | The DTMF receiver context. |
len | The number of samples to fake. |
References dtmf_rx_state_s::col_out, dtmf_rx_state_s::current_sample, dtmf_rx_state_s::energy, goertzel_reset(), and dtmf_rx_state_s::row_out.
int dtmf_rx_free | ( | dtmf_rx_state_t * | s | ) |
Free a DTMF receiver context.
s | The DTMF receiver context. |
size_t dtmf_rx_get | ( | dtmf_rx_state_t * | s, |
char * | digits, | ||
int | max | ||
) |
Get a string of digits from a DTMF receiver's output buffer.
s | The DTMF receiver context. |
digits | The buffer for the received digits. |
max | The maximum number of digits to be returned, |
logging_state_t* dtmf_rx_get_logging_state | ( | dtmf_rx_state_t * | s | ) |
Get the logging context associated with a DTMF receiver context.
s | The DTMF receiver context. |
References dtmf_rx_state_s::logging.
dtmf_rx_state_t* dtmf_rx_init | ( | dtmf_rx_state_t * | s, |
digits_rx_callback_t | callback, | ||
void * | user_data | ||
) |
Initialise a DTMF receiver context.
s | The DTMF receiver context. |
callback | An optional callback routine, used to report received digits. If no callback routine is set, digits may be collected, using the dtmf_rx_get() function. |
user_data | An opaque pointer which is associated with the context, and supplied in callbacks. |
void dtmf_rx_parms | ( | dtmf_rx_state_t * | s, |
int | filter_dialtone, | ||
int | twist, | ||
int | reverse_twist, | ||
int | threshold | ||
) |
Adjust a DTMF receiver context.
s | The DTMF receiver context. |
filter_dialtone | TRUE to enable filtering of dialtone, FALSE to disable, < 0 to leave unchanged. |
twist | Acceptable twist, in dB. < 0 to leave unchanged. |
reverse_twist | Acceptable reverse twist, in dB. < 0 to leave unchanged. |
threshold | The minimum acceptable tone level for detection, in dBm0. <= -99 to leave unchanged. |
References dtmf_rx_state_s::filter_dialtone, dtmf_rx_state_s::normal_twist, dtmf_rx_state_s::reverse_twist, dtmf_rx_state_s::z350, and dtmf_rx_state_s::z440.
int dtmf_rx_release | ( | dtmf_rx_state_t * | s | ) |
Release a DTMF receiver context.
s | The DTMF receiver context. |
void dtmf_rx_set_realtime_callback | ( | dtmf_rx_state_t * | s, |
tone_report_func_t | callback, | ||
void * | user_data | ||
) |
Set a realtime callback for a DTMF receiver context.
Set a optional realtime callback for a DTMF receiver context. This function is called immediately a confirmed state change occurs in the received DTMF. It is called with the ASCII value for a DTMF tone pair, or zero to indicate no tone is being received.
s | The DTMF receiver context. |
callback | Callback routine used to report the start and end of digits. |
user_data | An opaque pointer which is associated with the context, and supplied in callbacks. |
References dtmf_rx_state_s::duration, dtmf_rx_state_s::realtime_callback, and dtmf_rx_state_s::realtime_callback_data.
int dtmf_rx_status | ( | dtmf_rx_state_t * | s | ) |
Get the status of DTMF detection during processing of the last audio chunk.
Get the status of DTMF detection during processing of the last audio chunk.
s | The DTMF receiver context. |
References dtmf_rx_state_s::in_digit, and dtmf_rx_state_s::last_hit.
int dtmf_tx | ( | dtmf_tx_state_t * | s, |
int16_t | amp[], | ||
int | max_samples | ||
) |
Generate a buffer of DTMF tones.
s | The DTMF generator context. |
amp | The buffer for the generated signal. |
max_samples | The required number of generated samples. |
int dtmf_tx_free | ( | dtmf_tx_state_t * | s | ) |
Free a DTMF tone generator context.
s | The DTMF tone generator context. |
dtmf_tx_state_t* dtmf_tx_init | ( | dtmf_tx_state_t * | s | ) |
Initialise a DTMF tone generator context.
s | The DTMF generator context. |
int dtmf_tx_put | ( | dtmf_tx_state_t * | s, |
const char * | digits, | ||
int | len | ||
) |
Put a string of digits in a DTMF generator's input buffer.
s | The DTMF generator context. |
digits | The string of digits to be added. |
len | The length of the string of digits. If negative, the string is assumed to be a NULL terminated string. |
int dtmf_tx_release | ( | dtmf_tx_state_t * | s | ) |
Release a DTMF tone generator context.
s | The DTMF tone generator context. |
void dtmf_tx_set_level | ( | dtmf_tx_state_t * | s, |
int | level, | ||
int | twist | ||
) |
Change the transmit level for a DTMF tone generator context.
s | The DTMF generator context. |
level | The level of the low tone, in dBm0. |
twist | The twist, in dB. |
void dtmf_tx_set_timing | ( | dtmf_tx_state_t * | s, |
int | on_time, | ||
int | off_time | ||
) |
Change the transmit on and off time for a DTMF tone generator context.
s | The DTMF generator context. |
on-time | The on time, in ms. |
off_time | The off time, in ms. |