v18.c File Reference

#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <memory.h>
#include "floating_fudge.h"
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/queue.h"
#include "spandsp/async.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/power_meter.h"
#include "spandsp/fsk.h"
#include "spandsp/dtmf.h"
#include "spandsp/modem_connect_tones.h"
#include "spandsp/v8.h"
#include "spandsp/v18.h"
#include "spandsp/private/logging.h"
#include "spandsp/private/queue.h"
#include "spandsp/private/tone_generate.h"
#include "spandsp/private/async.h"
#include "spandsp/private/fsk.h"
#include "spandsp/private/dtmf.h"
#include "spandsp/private/modem_connect_tones.h"
#include "spandsp/private/v18.h"

Classes

struct  dtmf_to_ascii_s

Defines

#define BAUDOT_FIGURE_SHIFT   0x1B
#define BAUDOT_LETTER_SHIFT   0x1F

Functions

int v18_encode_dtmf (v18_state_t *s, char dtmf[], const char msg[])
 Convert a text string to a V.18 DTMF string.
int v18_decode_dtmf (v18_state_t *s, char msg[], const char dtmf[])
 Convert a V.18 DTMF string to a text string.
uint16_t v18_encode_baudot (v18_state_t *s, uint8_t ch)
uint8_t v18_decode_baudot (v18_state_t *s, uint8_t ch)
int v18_tx (v18_state_t *s, int16_t *amp, int max_len)
int v18_rx (v18_state_t *s, const int16_t amp[], int len)
 Process a block of received V.18 audio samples.
int v18_put (v18_state_t *s, const char msg[], int len)
 Put a string to a V.18 context's input buffer.
logging_state_tv18_get_logging_state (v18_state_t *s)
v18_state_t * v18_init (v18_state_t *s, int caller, int mode, put_msg_func_t put_msg, void *user_data)
 Initialise a V.18 context.
int v18_release (v18_state_t *s)
 Release a V.18 context.
int v18_free (v18_state_t *s)
 Release a V.18 context.
const char * v18_mode_to_str (int mode)
 Return a short name for an V.18 mode.

Detailed Description


Define Documentation

#define BAUDOT_FIGURE_SHIFT   0x1B

The baudot code to shift from alpha to digits and symbols

#define BAUDOT_LETTER_SHIFT   0x1F

The baudot code to shift from digits and symbols to alpha


Function Documentation

int v18_decode_dtmf ( v18_state_t *  s,
char  msg[],
const char  dtmf[] 
)

Convert a V.18 DTMF string to a text string.

Convert a V.18 DTMF string to a text string.

Parameters:
s The V.18 context.
msg The resulting test string.
dtmf The DTMF string to be converted.
Returns:
The length of the text string.

int v18_encode_dtmf ( v18_state_t *  s,
char  dtmf[],
const char  msg[] 
)

Convert a text string to a V.18 DTMF string.

Convert a text string to a V.18 DTMF string.

Parameters:
s The V.18 context.
dtmf The resulting DTMF string.
msg The text string to be converted.
Returns:
The length of the DTMF string.

int v18_free ( v18_state_t *  s  ) 

Release a V.18 context.

Free a V.18 context.

Parameters:
s The V.18 context.
Returns:
0 for OK.

v18_state_t* v18_init ( v18_state_t *  s,
int  caller,
int  mode,
put_msg_func_t  put_msg,
void *  user_data 
)

Initialise a V.18 context.

Initialise a V.18 context.

Parameters:
s The V.18 context.
caller TRUE if caller mode, else answerer mode.
mode Mode of operation.
put_msg A callback routine called to deliver the received text to the application.
user_data An opaque pointer for the callback routine.
Returns:
A pointer to the V.18 context, or NULL if there was a problem.

References ASYNC_PARITY_NONE, async_tx_init(), dtmf_rx_init(), dtmf_tx_init(), fsk_rx_init(), fsk_tx_init(), queue_init(), QUEUE_READ_ATOMIC, and QUEUE_WRITE_ATOMIC.

const char* v18_mode_to_str ( int  mode  ) 

Return a short name for an V.18 mode.

Parameters:
mode The code for the V.18 mode.
Returns:
A pointer to the name.

int v18_put ( v18_state_t *  s,
const char  msg[],
int  len 
)

Put a string to a V.18 context's input buffer.

Parameters:
s The V.18 context.
msg The string to be added.
len The length of the string. If negative, the string is assumed to be a NULL terminated string.
Returns:
The number of characters actually added. This may be less than the length of the digit string, if the buffer fills up.

References queue_write().

int v18_release ( v18_state_t *  s  ) 

Release a V.18 context.

Release a V.18 context.

Parameters:
s The V.18 context.
Returns:
0 for OK.

int v18_rx ( v18_state_t *  s,
const int16_t  amp[],
int  len 
)

Process a block of received V.18 audio samples.

Process a block of received V.18 audio samples.

Parameters:
s The V.18 context.
amp The audio sample buffer.
len The number of samples in the buffer.

References dtmf_rx(), and fsk_rx().


Generated on Tue Aug 4 03:36:25 2009 for spandsp by  doxygen 1.5.9