bell_r2_mf.c File Reference

#include <stdlib.h>
#include <inttypes.h>
#include <string.h>
#include <time.h>
#include <fcntl.h>
#include "spandsp/telephony.h"
#include "spandsp/queue.h"
#include "spandsp/dc_restore.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/bell_r2_mf.h"

Classes

struct  mf_digit_tones_t

Defines

#define M_PI   3.14159265358979323846264338327
#define ms_to_samples(t)   (((t)*SAMPLE_RATE)/1000)
#define BELL_MF_THRESHOLD   3343803100.0f
#define BELL_MF_TWIST   3.981f
#define BELL_MF_RELATIVE_PEAK   12.589f
#define BELL_MF_SAMPLES_PER_BLOCK   120
#define R2_MF_THRESHOLD   1031766650.0f
#define R2_MF_TWIST   5.012f
#define R2_MF_RELATIVE_PEAK   12.589f
#define R2_MF_SAMPLES_PER_BLOCK   133

Functions

int bell_mf_tx (bell_mf_tx_state_t *s, int16_t amp[], int max_samples)
 Generate a buffer of Bell MF tones.
size_t bell_mf_tx_put (bell_mf_tx_state_t *s, const char *digits, int len)
 Put a string of digits in a Bell MF generator's input buffer.
bell_mf_tx_state_tbell_mf_tx_init (bell_mf_tx_state_t *s)
 Initialise a Bell MF generator context.
int bell_mf_tx_free (bell_mf_tx_state_t *s)
 Free a Bell MF generator context.
int r2_mf_tx (r2_mf_tx_state_t *s, int16_t amp[], int samples)
 Generate a block of R2 MF tones.
int r2_mf_tx_put (r2_mf_tx_state_t *s, char digit)
 Generate a block of R2 MF tones.
r2_mf_tx_state_tr2_mf_tx_init (r2_mf_tx_state_t *s, int fwd)
 Initialise an R2 MF tone generator context.
int r2_mf_tx_free (r2_mf_tx_state_t *s)
 Free an R2 MF tone generator context.
int bell_mf_rx (bell_mf_rx_state_t *s, const int16_t amp[], int samples)
 Process a block of received Bell MF audio samples.
size_t bell_mf_rx_get (bell_mf_rx_state_t *s, char *buf, int max)
 Get a string of digits from a Bell MF receiver's output buffer.
bell_mf_rx_state_tbell_mf_rx_init (bell_mf_rx_state_t *s, digits_rx_callback_t callback, void *user_data)
 Initialise a Bell MF receiver context.
int bell_mf_rx_free (bell_mf_rx_state_t *s)
 Free a Bell MF receiver context.
int r2_mf_rx (r2_mf_rx_state_t *s, const int16_t amp[], int samples)
 Process a block of received R2 MF audio samples.
int r2_mf_rx_get (r2_mf_rx_state_t *s)
 Get the current digit from an R2 MF receiver.
r2_mf_rx_state_tr2_mf_rx_init (r2_mf_rx_state_t *s, int fwd, tone_report_func_t callback, void *user_data)
 Initialise an R2 MF receiver context.
int r2_mf_rx_free (r2_mf_rx_state_t *s)
 Free an R2 MF receiver context.

Variables

int bell_mf_gen_inited = FALSE
tone_gen_descriptor_t bell_mf_digit_tones [15]
int r2_mf_gen_inited = FALSE
tone_gen_descriptor_t r2_mf_fwd_digit_tones [15]
tone_gen_descriptor_t r2_mf_back_digit_tones [15]

Detailed Description


Function Documentation

int bell_mf_rx bell_mf_rx_state_t s,
const int16_t  amp[],
int  samples
 

Process a block of received Bell MF audio samples.

Process a block of received Bell MF audio samples.

Parameters:
s The Bell MF receiver context.
amp The audio sample buffer.
samples The number of samples in the buffer.
Returns:
The number of samples unprocessed.

int bell_mf_rx_free bell_mf_rx_state_t s  ) 
 

Free a Bell MF receiver context.

Parameters:
s The Bell MF receiver context.
Returns:
0 for OK, else -1.

size_t bell_mf_rx_get bell_mf_rx_state_t s,
char *  buf,
int  max
 

Get a string of digits from a Bell MF receiver's output buffer.

Parameters:
s The Bell MF receiver context.
buf The buffer for the received digits.
max The maximum number of digits to be returned,
Returns:
The number of digits actually returned.

bell_mf_rx_state_t* bell_mf_rx_init bell_mf_rx_state_t s,
digits_rx_callback_t  callback,
void *  user_data
 

Initialise a Bell MF receiver context.

Parameters:
s The Bell MF receiver context.
callback An optional callback routine, used to report received digits. If no callback routine is set, digits may be collected, using the bell_mf_rx_get() function.
user_data An opaque pointer which is associated with the context, and supplied in callbacks.
Returns:
A pointer to the Bell MF receiver context.

int bell_mf_tx bell_mf_tx_state_t s,
int16_t  amp[],
int  max_samples
 

Generate a buffer of Bell MF tones.

Parameters:
s The Bell MF generator context.
amp The buffer for the generated signal.
max_samples The required number of generated samples.
Returns:
The number of samples actually generated. This may be less than max_samples if the input buffer empties.

int bell_mf_tx_free bell_mf_tx_state_t s  ) 
 

Free a Bell MF generator context.

Parameters:
s The Bell MF generator context.
Returns:
0 for OK, else -1.

bell_mf_tx_state_t* bell_mf_tx_init bell_mf_tx_state_t s  ) 
 

Initialise a Bell MF generator context.

Parameters:
s The Bell MF generator context.
Returns:
A pointer to the Bell MF generator context.

size_t bell_mf_tx_put bell_mf_tx_state_t s,
const char *  digits,
int  len
 

Put a string of digits in a Bell MF generator's input buffer.

Parameters:
s The Bell MF 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.
Returns:
The number of digits actually added. This may be less than the length of the digit string, if the buffer fills up.

int r2_mf_rx r2_mf_rx_state_t s,
const int16_t  amp[],
int  samples
 

Process a block of received R2 MF audio samples.

Process a block of received R2 MF audio samples.

Parameters:
s The R2 MF receiver context.
amp The audio sample buffer.
samples The number of samples in the buffer.
Returns:
The number of samples unprocessed.

int r2_mf_rx_free r2_mf_rx_state_t s  ) 
 

Free an R2 MF receiver context.

Parameters:
s The R2 MF receiver context.
Returns:
0 for OK, else -1.

int r2_mf_rx_get r2_mf_rx_state_t s  ) 
 

Get the current digit from an R2 MF receiver.

Parameters:
s The R2 MF receiver context.
Returns:
The number digits being received.

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
 

Initialise an R2 MF receiver context.

Parameters:
s The R2 MF receiver context.
fwd TRUE if the context is for forward signals. FALSE if the context is for backward signals.
callback An optional callback routine, used to report received digits. If no callback routine is set, digits may be collected, using the r2_mf_rx_get() function.
user_data An opaque pointer which is associated with the context, and supplied in callbacks.
Returns:
A pointer to the R2 MF receiver context.

int r2_mf_tx r2_mf_tx_state_t s,
int16_t  amp[],
int  samples
 

Generate a block of R2 MF tones.

Parameters:
s The R2 MF generator context.
amp The buffer for the generated signal.
samples The required number of generated samples.
Returns:
The number of samples actually generated.

int r2_mf_tx_free r2_mf_tx_state_t s  ) 
 

Free an R2 MF tone generator context.

Parameters:
s The R2 MF tone generator context.
Returns:
0 for OK, else -1.

r2_mf_tx_state_t* r2_mf_tx_init r2_mf_tx_state_t s,
int  fwd
 

Initialise an R2 MF tone generator context.

Parameters:
s The R2 MF generator context.
fwd TRUE if the context is for forward signals. FALSE if the context is for backward signals.
Returns:
A pointer to the MFC/R2 generator context.

int r2_mf_tx_put r2_mf_tx_state_t s,
char  digit
 

Generate a block of R2 MF tones.

Parameters:
s The R2 MF generator context.
digit The digit to be generated.
Returns:
0 for OK, or -1 for a bad request.


Generated on Mon Apr 23 23:27:54 2012 for libspandsp by  doxygen 1.4.6