#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <ctype.h>
#include <time.h>
#include <inttypes.h>
#include "floating_fudge.h"
#include "spandsp/telephony.h"
#include "spandsp/complex.h"
#include "spandsp/vector_float.h"
#include "spandsp/complex_vector_float.h"
#include "spandsp/tone_detect.h"
#include "spandsp/tone_generate.h"
#include "spandsp/super_tone_rx.h"
Defines | |
#define | DETECTION_THRESHOLD 269338317.0f |
#define | TONE_TWIST 3.981f |
#define | TONE_TO_TOTAL_ENERGY 1.995f |
#define | DTMF_TO_TOTAL_ENERGY 64.152f |
Functions | |
int | super_tone_rx_add_tone (super_tone_rx_descriptor_t *desc) |
int | super_tone_rx_add_element (super_tone_rx_descriptor_t *desc, int tone, int f1, int f2, int min, int max) |
super_tone_rx_descriptor_t * | super_tone_rx_make_descriptor (super_tone_rx_descriptor_t *desc) |
int | super_tone_rx_free_descriptor (super_tone_rx_descriptor_t *desc) |
void | super_tone_rx_segment_callback (super_tone_rx_state_t *s, void(*callback)(void *data, int f1, int f2, int duration)) |
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) |
int | super_tone_rx_free (super_tone_rx_state_t *s) |
int | super_tone_rx (super_tone_rx_state_t *s, const int16_t amp[], int samples) |
Apply supervisory tone detection processing to a block of audio samples. |
int super_tone_rx | ( | super_tone_rx_state_t * | super, | |
const int16_t | amp[], | |||
int | samples | |||
) |
Apply supervisory tone detection processing to a block of audio samples.
Apply supervisory tone detection processing to a block of audio samples.
super | The supervisory tone context. | |
amp | The audio sample buffer. | |
samples | The number of samples in the buffer. |
References goertzel_update().
int super_tone_rx_add_element | ( | super_tone_rx_descriptor_t * | desc, | |
int | tone, | |||
int | f1, | |||
int | f2, | |||
int | min, | |||
int | max | |||
) |
Add a new tone pattern element to a tone pattern in a supervisory tone detector.
desc | The supervisory tone set desciptor. | |
tone | The tone ID within the descriptor. | |
f1 | Frequency 1 (-1 for a silent period). | |
f2 | Frequency 2 (-1 for a silent period, or only one frequency). | |
min | The minimum duration, in ms. | |
max | The maximum duration, in ms. |
int super_tone_rx_add_tone | ( | super_tone_rx_descriptor_t * | desc | ) |
Add a new tone pattern to a supervisory tone detector set.
desc | The supervisory tone set descriptor. |
int super_tone_rx_free | ( | super_tone_rx_state_t * | s | ) |
Release a supervisory tone detector.
s | The supervisory tone context. |
int super_tone_rx_free_descriptor | ( | super_tone_rx_descriptor_t * | desc | ) |
Free a supervisory tone detector descriptor.
desc | The supervisory tone set desciptor. |
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 | |||
) |
Initialise a supervisory tone detector.
s | The supervisory tone detector context. | |
desc | The tone descriptor. | |
callback | The callback routine called to report the valid detection or termination of one of the monitored tones. | |
user_data | An opaque pointer passed when calling the callback routine. |
References goertzel_init().
super_tone_rx_descriptor_t* super_tone_rx_make_descriptor | ( | super_tone_rx_descriptor_t * | desc | ) |
Create a new supervisory tone detector descriptor.
desc | The supervisory tone set desciptor. If NULL, the routine will allocate space for a descriptor. |
void super_tone_rx_segment_callback | ( | super_tone_rx_state_t * | s, | |
void(*)(void *data, int f1, int f2, int duration) | callback | |||
) |
Define a callback routine to be called each time a tone pattern element is complete. This is mostly used when analysing a tone.
s | The supervisory tone context. | |
callback | The callback routine. |