Go to the documentation of this file.
28 #if !defined(_SPANDSP_BELL_R2_MF_H_)
29 #define _SPANDSP_BELL_R2_MF_H_
103 #define MAX_BELL_MF_DIGITS 128
126 #if defined(__cplusplus)
268 #if defined(__cplusplus)
int r2_mf_rx_get(r2_mf_rx_state_t *s)
Get the current digit from an R2 MF receiver.
Definition: bell_r2_mf.c:801
void make_goertzel_descriptor(goertzel_descriptor_t *t, float freq, int samples)
Create a descriptor for use with either a Goertzel transform.
Definition: tone_detect.c:59
int bell_mf_rx_free(bell_mf_rx_state_t *s)
Free a Bell MF receiver context.
Definition: bell_r2_mf.c:673
int bell_mf_tx_free(bell_mf_tx_state_t *s)
Free a Bell MF generator context.
Definition: bell_r2_mf.c:350
int r2_mf_rx_free(r2_mf_rx_state_t *s)
Free an R2 MF receiver context.
Definition: bell_r2_mf.c:857
int bell_mf_rx_free(bell_mf_rx_state_t *s)
Free a Bell MF receiver context.
Definition: bell_r2_mf.c:673
int bell_mf_tx_free(bell_mf_tx_state_t *s)
Free a Bell MF generator context.
Definition: bell_r2_mf.c:350
Definition: private/bell_r2_mf.h:73
#define QUEUE_WRITE_ATOMIC
Definition: queue.h:48
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.
Definition: bell_r2_mf.c:807
goertzel_state_t * goertzel_init(goertzel_state_t *s, goertzel_descriptor_t *t)
Initialise the state of a Goertzel transform.
Definition: tone_detect.c:70
Definition: private/bell_r2_mf.h:86
void * digits_callback_data
Definition: private/bell_r2_mf.h:53
int r2_mf_rx_free(r2_mf_rx_state_t *s)
Free an R2 MF receiver context.
Definition: bell_r2_mf.c:857
int bell_mf_tx_release(bell_mf_tx_state_t *s)
Release a Bell MF generator context.
Definition: bell_r2_mf.c:344
float goertzel_result(goertzel_state_t *s)
Evaluate the final result of a Goertzel transform.
Definition: tone_detect.c:156
int r2_mf_tx_release(r2_mf_tx_state_t *s)
Release an R2 MF tone generator context.
Definition: bell_r2_mf.c:447
int r2_mf_tx_put(r2_mf_tx_state_t *s, char digit)
Generate a block of R2 MF tones.
Definition: bell_r2_mf.c:374
void * callback_data
Definition: private/bell_r2_mf.h:90
Definition: private/awgn.h:33
uint8_t hits[5]
Definition: private/bell_r2_mf.h:57
digits_rx_callback_t digits_callback
Definition: private/bell_r2_mf.h:51
goertzel_state_t out[6]
Definition: private/bell_r2_mf.h:94
int queue_read_byte(queue_state_t *s)
Read a byte from a queue.
Definition: queue.c:188
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.
Definition: bell_r2_mf.c:680
int r2_mf_rx_release(r2_mf_rx_state_t *s)
Release an R2 MF receiver context.
Definition: bell_r2_mf.c:851
int current_digits
Definition: private/bell_r2_mf.h:64
int r2_mf_rx_get(r2_mf_rx_state_t *s)
Get the current digit from an R2 MF receiver.
Definition: bell_r2_mf.c:801
#define MAX_BELL_MF_DIGITS
Definition: bell_r2_mf.h:103
int r2_mf_tx_free(r2_mf_tx_state_t *s)
Free an R2 MF tone generator context.
Definition: bell_r2_mf.c:453
int bell_mf_tx_release(bell_mf_tx_state_t *s)
Release a Bell MF generator context.
Definition: bell_r2_mf.c:344
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.
Definition: bell_r2_mf.c:680
tone_gen_state_t tone
Definition: private/bell_r2_mf.h:75
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.
Definition: bell_r2_mf.c:460
int r2_mf_tx_free(r2_mf_tx_state_t *s)
Free an R2 MF tone generator context.
Definition: bell_r2_mf.c:453
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.
Definition: bell_r2_mf.c:613
r2_mf_tx_state_t * r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd)
Initialise an R2 MF tone generator context.
Definition: bell_r2_mf.c:394
Definition: bell_r2_mf.c:72
queue_state_t * queue_init(queue_state_t *s, int len, int flags)
Initialise a queue.
Definition: queue.c:394
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.
Definition: bell_r2_mf.c:460
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.
Definition: bell_r2_mf.c:613
goertzel_state_t out[6]
Definition: private/bell_r2_mf.h:55
int queue_free_space(queue_state_t *s)
Check available free space.
Definition: queue.c:52
int digit
Definition: private/bell_r2_mf.h:79
Definition: private/tone_generate.h:43
int current_sample
Definition: private/bell_r2_mf.h:96
r2_mf_tx_state_t * r2_mf_tx_init(r2_mf_tx_state_t *s, int fwd)
Initialise an R2 MF tone generator context.
Definition: bell_r2_mf.c:394
int r2_mf_tx(r2_mf_tx_state_t *s, int16_t amp[], int samples)
Generate a block of R2 MF tones.
Definition: bell_r2_mf.c:357
bell_mf_tx_state_t * bell_mf_tx_init(bell_mf_tx_state_t *s)
Initialise a Bell MF generator context.
Definition: bell_r2_mf.c:325
tone_gen_descriptor_t * tone_gen_descriptor_init(tone_gen_descriptor_t *s, int f1, int l1, int f2, int l2, int d1, int d2, int d3, int d4, int repeat)
Create a tone generator descriptor.
Definition: tone_generate.c:60
int queue_write(queue_state_t *s, const uint8_t *buf, int len)
Write bytes to a queue.
Definition: queue.c:214
Definition: tone_detect.h:33
char digits[MAX_BELL_MF_DIGITS+1]
Definition: private/bell_r2_mf.h:66
#define QUEUE_READ_ATOMIC
Definition: queue.h:45
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.
Definition: bell_r2_mf.c:628
int bell_mf_rx_release(bell_mf_rx_state_t *s)
Release a Bell MF receiver context.
Definition: bell_r2_mf.c:667
int bell_mf_tx(bell_mf_tx_state_t *s, int16_t amp[], int max_samples)
Generate a buffer of Bell MF tones.
Definition: bell_r2_mf.c:281
int r2_mf_rx_release(r2_mf_rx_state_t *s)
Release an R2 MF receiver context.
Definition: bell_r2_mf.c:851
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.
Definition: bell_r2_mf.c:628
bell_mf_tx_state_t * bell_mf_tx_init(bell_mf_tx_state_t *s)
Initialise a Bell MF generator context.
Definition: bell_r2_mf.c:325
int fwd
Definition: private/bell_r2_mf.h:92
int r2_mf_tx_put(r2_mf_tx_state_t *s, char digit)
Generate a block of R2 MF tones.
Definition: bell_r2_mf.c:374
int bell_mf_tx(bell_mf_tx_state_t *s, int16_t amp[], int max_samples)
Generate a buffer of Bell MF tones.
Definition: bell_r2_mf.c:281
int r2_mf_tx(r2_mf_tx_state_t *s, int16_t amp[], int samples)
Generate a block of R2 MF tones.
Definition: bell_r2_mf.c:357
Definition: private/bell_r2_mf.h:49
int 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.
Definition: bell_r2_mf.c:305
Definition: private/tone_generate.h:54
tone_gen_state_t tones
Definition: private/bell_r2_mf.h:36
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.
Definition: bell_r2_mf.c:807
int fwd
Definition: private/bell_r2_mf.h:77
int current_digit
Definition: private/bell_r2_mf.h:98
int 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.
Definition: bell_r2_mf.c:305
int bell_mf_rx_release(bell_mf_rx_state_t *s)
Release a Bell MF receiver context.
Definition: bell_r2_mf.c:667
tone_report_func_t callback
Definition: private/bell_r2_mf.h:88
int current_sample
Definition: private/bell_r2_mf.h:59
Definition: private/bell_r2_mf.h:34
int r2_mf_tx_release(r2_mf_tx_state_t *s)
Release an R2 MF tone generator context.
Definition: bell_r2_mf.c:447
int lost_digits
Definition: private/bell_r2_mf.h:62