adsi.c File Reference

#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "floating_fudge.h"
#include <assert.h>
#include "spandsp/telephony.h"
#include "spandsp/fast_convert.h"
#include "spandsp/logging.h"
#include "spandsp/queue.h"
#include "spandsp/complex.h"
#include "spandsp/dds.h"
#include "spandsp/power_meter.h"
#include "spandsp/async.h"
#include "spandsp/crc.h"
#include "spandsp/fsk.h"
#include "spandsp/tone_detect.h"
#include "spandsp/tone_generate.h"
#include "spandsp/super_tone_rx.h"
#include "spandsp/dtmf.h"
#include "spandsp/adsi.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/adsi.h"

Defines

#define BAUDOT_FIGURE_SHIFT   0x1B
#define BAUDOT_LETTER_SHIFT   0x1F

Enumerations

enum  {
  SOH = 0x01, STX = 0x02, ETX = 0x03, DLE = 0x10,
  SUB = 0x1A
}

Functions

int adsi_rx (adsi_rx_state_t *s, const int16_t amp[], int len)
 Receive a chunk of ADSI audio.
adsi_rx_state_tadsi_rx_init (adsi_rx_state_t *s, int standard, put_msg_func_t put_msg, void *user_data)
 Initialise an ADSI receive context.
int adsi_rx_release (adsi_rx_state_t *s)
 Release an ADSI receive context.
int adsi_rx_free (adsi_rx_state_t *s)
 Free the resources of an ADSI receive context.
int adsi_tx (adsi_tx_state_t *s, int16_t amp[], int max_len)
 Generate a block of ADSI audio samples.
void adsi_tx_send_alert_tone (adsi_tx_state_t *s)
 Request generation of an ADSI alert tone.
void adsi_tx_set_preamble (adsi_tx_state_t *s, int preamble_len, int preamble_ones_len, int postamble_ones_len, int stop_bits)
 Adjust the preamble associated with an ADSI transmit context.
int adsi_tx_put_message (adsi_tx_state_t *s, const uint8_t *msg, int len)
 Put a message into the input buffer of an ADSI transmit context.
adsi_tx_state_tadsi_tx_init (adsi_tx_state_t *s, int standard)
 Initialise an ADSI transmit context.
int adsi_tx_release (adsi_tx_state_t *s)
 Release an ADSI transmit context.
int adsi_tx_free (adsi_tx_state_t *s)
 Free the resources of an ADSI transmit context.
int adsi_next_field (adsi_rx_state_t *s, const uint8_t *msg, int msg_len, int pos, uint8_t *field_type, uint8_t const **field_body, int *field_len)
 Get a field from an ADSI message.
int adsi_add_field (adsi_tx_state_t *s, uint8_t *msg, int len, uint8_t field_type, uint8_t const *field_body, int field_len)
 Insert the header or a field into an ADSI message.
const char * adsi_standard_to_str (int standard)
 Return a short name for an ADSI standard.

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 adsi_add_field ( adsi_tx_state_t s,
uint8_t *  msg,
int  len,
uint8_t  field_type,
uint8_t const *  field_body,
int  field_len 
)

Insert the header or a field into an ADSI message.

Parameters:
s The ADSI transmit context.
msg The message buffer.
len The current length of the message.
field_type The type code for the new field.
field_body Pointer to the body of the new field.
field_len The length of the new field.

References CLIP_DTMF_HASH_UNSPECIFIED.

int adsi_next_field ( adsi_rx_state_t s,
const uint8_t *  msg,
int  msg_len,
int  pos,
uint8_t *  field_type,
uint8_t const **  field_body,
int *  field_len 
)

Get a field from an ADSI message.

Parameters:
s The ADSI receive context.
msg The message buffer.
msg_len The length of the message.
pos Current position within the message. Set to -1 when starting a message.
field_type The type code for the field.
field_body Pointer to the body of the field.
field_len The length of the field, or -1 for no more fields, or -2 for message structure corrupt.

References CLIP_DTMF_HASH_UNSPECIFIED.

int adsi_rx ( adsi_rx_state_t s,
const int16_t  amp[],
int  len 
)

Receive a chunk of ADSI audio.

Parameters:
s The ADSI receive context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.

References dtmf_rx(), and fsk_rx().

int adsi_rx_free ( adsi_rx_state_t s  ) 

Free the resources of an ADSI receive context.

Parameters:
s The ADSI receive context.
Returns:
0 for OK.

adsi_rx_state_t* adsi_rx_init ( adsi_rx_state_t s,
int  standard,
put_msg_func_t  put_msg,
void *  user_data 
)

Initialise an ADSI receive context.

Parameters:
s The ADSI receive context.
standard The code for the ADSI standard to be used.
put_msg A callback routine called to deliver the received messages to the application.
user_data An opaque pointer for the callback routine.
Returns:
A pointer to the initialised context, or NULL if there was a problem.

References dtmf_rx_init(), and fsk_rx_init().

int adsi_rx_release ( adsi_rx_state_t s  ) 

Release an ADSI receive context.

Parameters:
s The ADSI receive context.
Returns:
0 for OK.

const char* adsi_standard_to_str ( int  standard  ) 

Return a short name for an ADSI standard.

Parameters:
standard The code for the standard.
Returns:
A pointer to the name.

int adsi_tx ( adsi_tx_state_t s,
int16_t  amp[],
int  max_len 
)

Generate a block of ADSI audio samples.

Parameters:
s The ADSI transmit context.
amp The audio sample buffer.
max_len The number of samples to be generated.
Returns:
The number of samples actually generated.

References dtmf_tx(), and fsk_tx().

int adsi_tx_free ( adsi_tx_state_t s  ) 

Free the resources of an ADSI transmit context.

Parameters:
s The ADSI transmit context.
Returns:
0 for OK.

adsi_tx_state_t* adsi_tx_init ( adsi_tx_state_t s,
int  standard 
)

Initialise an ADSI transmit context.

Parameters:
s The ADSI transmit context.
standard The code for the ADSI standard to be used.
Returns:
A pointer to the initialised context, or NULL if there was a problem.

References adsi_tx_set_preamble(), and make_tone_gen_descriptor().

int adsi_tx_put_message ( adsi_tx_state_t s,
const uint8_t *  msg,
int  len 
)

Put a message into the input buffer of an ADSI transmit context.

Parameters:
s The ADSI transmit context.
msg The message.
len The length of the message.
Returns:
The length actually added. If a message is already in progress in the transmitter, this function will return zero, as it will not successfully add the message to the buffer.

References crc_itu16_calc(), and dtmf_tx_put().

int adsi_tx_release ( adsi_tx_state_t s  ) 

Release an ADSI transmit context.

Parameters:
s The ADSI transmit context.
Returns:
0 for OK.

void adsi_tx_send_alert_tone ( adsi_tx_state_t s  ) 

Request generation of an ADSI alert tone.

Parameters:
s The ADSI transmit context.

void adsi_tx_set_preamble ( adsi_tx_state_t s,
int  preamble_len,
int  preamble_ones_len,
int  postamble_ones_len,
int  stop_bits 
)

Adjust the preamble associated with an ADSI transmit context.

Parameters:
s The ADSI transmit context.
preamble_len The number of bits of preamble.
preamble_ones_len The number of bits of continuous one before a message.
postamble_ones_len The number of bits of continuous one after a message.
stop_bits The number of stop bits per character.

Referenced by adsi_tx_init().


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