bell_r2_mf.h File Reference

Go to the source code of this file.

Classes

struct  bell_mf_tx_state_t
struct  bell_mf_rx_state_t
struct  r2_mf_tx_state_t
struct  r2_mf_rx_state_t

Defines

#define _SPANDSP_BELL_R2_MF_H_
#define MAX_BELL_MF_DIGITS   128

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, ssize_t 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, void(*callback)(void *user_data, const char *digits, int len), 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.
r2_mf_rx_state_tr2_mf_rx_init (r2_mf_rx_state_t *s, int fwd)
 Initialise an R2 MF receiver context.
int r2_mf_rx_free (r2_mf_rx_state_t *s)
 Free an R2 MF receiver context.


Detailed Description


Define Documentation

#define MAX_BELL_MF_DIGITS   128

The maximum number of Bell MF digits we can buffer.

Referenced by bell_mf_rx(), and bell_mf_tx_init().


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.

References bell_mf_rx_state_t::callback, bell_mf_rx_state_t::callback_data, bell_mf_rx_state_t::current_digits, bell_mf_rx_state_t::current_sample, bell_mf_rx_state_t::digits, goertzel_state_t::fac, goertzel_reset(), goertzel_result(), bell_mf_rx_state_t::hits, bell_mf_rx_state_t::lost_digits, MAX_BELL_MF_DIGITS, bell_mf_rx_state_t::out, goertzel_state_t::v2, and goertzel_state_t::v3.

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.

References bell_mf_rx_state_t::current_digits, and bell_mf_rx_state_t::digits.

bell_mf_rx_state_t* bell_mf_rx_init ( bell_mf_rx_state_t s,
void(*)(void *user_data, const char *digits, int len)  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.

References bell_mf_rx_state_t::callback, bell_mf_rx_state_t::callback_data, bell_mf_rx_state_t::current_digits, bell_mf_rx_state_t::current_sample, bell_mf_rx_state_t::digits, goertzel_init(), bell_mf_rx_state_t::hits, bell_mf_rx_state_t::lost_digits, make_goertzel_descriptor(), and bell_mf_rx_state_t::out.

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.

References tone_gen_state_t::current_section, bell_mf_tx_state_t::queue, queue_read_byte(), and bell_mf_tx_state_t::tones.

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.

References bell_mf_tx_state_t::current_sample, tone_gen_state_t::current_section, MAX_BELL_MF_DIGITS, bell_mf_tx_state_t::queue, queue_init(), QUEUE_READ_ATOMIC, QUEUE_WRITE_ATOMIC, and bell_mf_tx_state_t::tones.

size_t bell_mf_tx_put ( bell_mf_tx_state_t s,
const char *  digits,
ssize_t  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.

References bell_mf_tx_state_t::queue, queue_free_space(), and queue_write().

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.

References r2_mf_rx_state_t::current_sample, goertzel_state_t::fac, r2_mf_rx_state_t::fwd, goertzel_reset(), goertzel_result(), r2_mf_rx_state_t::out, goertzel_state_t::v2, and goertzel_state_t::v3.

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.

r2_mf_rx_state_t* r2_mf_rx_init ( r2_mf_rx_state_t s,
int  fwd 
)

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.
Returns:
A pointer to the R2 MF receiver context.

References r2_mf_rx_state_t::current_sample, r2_mf_rx_state_t::fwd, goertzel_init(), make_goertzel_descriptor(), and r2_mf_rx_state_t::out.

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.

References r2_mf_tx_state_t::digit, and r2_mf_tx_state_t::tone.

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.

References r2_mf_tx_state_t::fwd, and make_tone_gen_descriptor().

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.

References r2_mf_tx_state_t::digit, r2_mf_tx_state_t::fwd, and r2_mf_tx_state_t::tone.


Generated on Thu Mar 20 17:20:03 2008 for libspandsp by  doxygen 1.5.5