spandsp 0.0.6
sig_tone.c File Reference
#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/fast_convert.h"
#include "spandsp/dc_restore.h"
#include "spandsp/saturated.h"
#include "spandsp/vector_int.h"
#include "spandsp/complex.h"
#include "spandsp/power_meter.h"
#include "spandsp/dds.h"
#include "spandsp/super_tone_rx.h"
#include "spandsp/sig_tone.h"
#include "spandsp/private/sig_tone.h"

Macros

#define PI   3.14159265358979323

Enumerations

enum  { NOTCH_COEFF_SET_2280HZ = 0 , NOTCH_COEFF_SET_2400HZ , NOTCH_COEFF_SET_2600HZ }

Functions

int sig_tone_tx (sig_tone_tx_state_t *s, int16_t amp[], int len)
 Generate a block of signalling tone audio samples.
void sig_tone_tx_set_mode (sig_tone_tx_state_t *s, int mode, int duration)
 Set the tone mode.
sig_tone_tx_state_tsig_tone_tx_init (sig_tone_tx_state_t *s, int tone_type, tone_report_func_t sig_update, void *user_data)
 Initialise a signalling tone context.
int sig_tone_tx_release (sig_tone_tx_state_t *s)
 Release a signalling tone transmitter context.
int sig_tone_tx_free (sig_tone_tx_state_t *s)
 Free a signalling tone transmitter context.
int sig_tone_rx (sig_tone_rx_state_t *s, int16_t amp[], int len)
 Process a block of received audio samples.
void sig_tone_rx_set_mode (sig_tone_rx_state_t *s, int mode, int duration)
 Set the receive mode.
sig_tone_rx_state_tsig_tone_rx_init (sig_tone_rx_state_t *s, int tone_type, tone_report_func_t sig_update, void *user_data)
 Initialise a signalling tone context.
int sig_tone_rx_release (sig_tone_rx_state_t *s)
 Release a signalling tone receiver context.
int sig_tone_rx_free (sig_tone_rx_state_t *s)
 Free a signalling tone receiver context.

Variables

int nnn = 0

Macro Definition Documentation

◆ PI

#define PI   3.14159265358979323

PI

Function Documentation

◆ sig_tone_rx()

int sig_tone_rx ( sig_tone_rx_state_t * s,
int16_t amp[],
int len )

◆ sig_tone_rx_free()

int sig_tone_rx_free ( sig_tone_rx_state_t * s)

Free a signalling tone receiver context.

Free a signalling tone receiver context.

Parameters
sThe signalling tone context.
Returns
0 for OK

◆ sig_tone_rx_init()

sig_tone_rx_state_t * sig_tone_rx_init ( sig_tone_rx_state_t * s,
int tone_type,
tone_report_func_t sig_update,
void * user_data )

◆ sig_tone_rx_release()

int sig_tone_rx_release ( sig_tone_rx_state_t * s)

Release a signalling tone receiver context.

Release a signalling tone receiver context.

Parameters
sThe signalling tone context.
Returns
0 for OK

◆ sig_tone_rx_set_mode()

void sig_tone_rx_set_mode ( sig_tone_rx_state_t * s,
int mode,
int duration )

Set the receive mode.

Set the receive mode.

Parameters
sThe signalling tone context.
modeThe new mode for the receiver.
durationThe duration for this mode, before an update is requested. A duration of zero means forever.

References sig_tone_rx_state_s::current_rx_tone.

◆ sig_tone_tx()

int sig_tone_tx ( sig_tone_tx_state_t * s,
int16_t amp[],
int len )

Generate a block of signalling tone audio samples.

Generate a block of signalling tone audio samples.

Parameters
sThe signalling tone context.
ampThe audio sample buffer.
lenThe number of samples to be generated.
Returns
The number of samples actually generated.

References sig_tone_tx_state_s::current_tx_timeout, sig_tone_tx_state_s::current_tx_tone, dds_mod(), sig_tone_tx_state_s::desc, sig_tone_tx_state_s::high_low_timer, sig_tone_tx_state_s::phase_acc, sig_tone_tx_state_s::phase_rate, SIG_TONE_1_PRESENT, SIG_TONE_2_PRESENT, SIG_TONE_TX_PASSTHROUGH, SIG_TONE_TX_UPDATE_REQUEST, sig_tone_tx_state_s::sig_update, sig_tone_tx_state_s::tone_scaling, sig_tone_descriptor_t::tones, and sig_tone_tx_state_s::user_data.

◆ sig_tone_tx_free()

int sig_tone_tx_free ( sig_tone_tx_state_t * s)

Free a signalling tone transmitter context.

Free a signalling tone transmitter context.

Parameters
sThe signalling tone context.
Returns
0 for OK

◆ sig_tone_tx_init()

sig_tone_tx_state_t * sig_tone_tx_init ( sig_tone_tx_state_t * s,
int tone_type,
tone_report_func_t sig_update,
void * user_data )

Initialise a signalling tone context.

Initialise a signalling tone transmitter context.

Parameters
sThe signalling tone context.
tone_typeThe type of signalling tone.
sig_updateCallback function to handle signalling updates.
user_dataAn opaque pointer.
Returns
A pointer to the signalling tone context, or NULL if there was a problem.

References dds_phase_rate(), dds_scaling_dbm0(), sig_tone_tx_state_s::desc, sig_tone_tx_state_s::phase_rate, sig_tone_tx_state_s::sig_update, sig_tone_descriptor_t::tone_amp, sig_tone_descriptor_t::tone_freq, sig_tone_tx_state_s::tone_scaling, and sig_tone_tx_state_s::user_data.

◆ sig_tone_tx_release()

int sig_tone_tx_release ( sig_tone_tx_state_t * s)

Release a signalling tone transmitter context.

Release a signalling tone transmitter context.

Parameters
sThe signalling tone context.
Returns
0 for OK

◆ sig_tone_tx_set_mode()

void sig_tone_tx_set_mode ( sig_tone_tx_state_t * s,
int mode,
int duration )

Set the tone mode.

Set the tone mode.

Parameters
sThe signalling tone context.
modeThe new mode for the transmitted tones.
durationThe duration for this mode, before an update is requested. A duration of zero means forever.

References sig_tone_tx_state_s::current_tx_timeout, sig_tone_tx_state_s::current_tx_tone, sig_tone_tx_state_s::desc, sig_tone_descriptor_t::high_low_timeout, sig_tone_tx_state_s::high_low_timer, sig_tone_tx_state_s::phase_acc, SIG_TONE_1_PRESENT, and SIG_TONE_2_PRESENT.