#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <tgmath.h>
#include <assert.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/vector.h"
#include "spandsp/dds.h"
#include "spandsp/power_meter.h"
#include "spandsp/async.h"
#include "spandsp/hdlc.h"
#include "spandsp/fsk.h"
#include "spandsp/tone_detect.h"
#include "spandsp/tone_generate.h"
#include "spandsp/adsi.h"
Defines | |
#define | BAUDOT_FIGURE_SHIFT 0x1B |
#define | BAUDOT_LETTER_SHIFT 0x1F |
#define | SOH 0x01 |
#define | STX 0x02 |
#define | ETX 0x03 |
#define | DLE 0x10 |
#define | SUB 0x1A |
Functions | |
void | adsi_rx (adsi_rx_state_t *s, const int16_t *amp, int len) |
Receive a chunk of ADSI audio. | |
void | adsi_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_tx (adsi_tx_state_t *s, int16_t *amp, int max_len) |
Generate a block of ADSI audio samples. | |
void | adsi_send_alert_tone (adsi_tx_state_t *s) |
Request generation of an ADSI alert tone. | |
int | adsi_put_message (adsi_tx_state_t *s, uint8_t *msg, int len) |
Put a message into the input buffer of an ADSI transmit context. | |
void | adsi_tx_init (adsi_tx_state_t *s, int standard) |
Initialise 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. |
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.
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. |
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.
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. |
int adsi_put_message | ( | adsi_tx_state_t * | s, | |
uint8_t * | msg, | |||
int | len | |||
) |
Put a message into the input buffer of an ADSI transmit context.
s | The ADSI transmit context. | |
msg | The message. | |
len | The length of the message. |
void adsi_rx | ( | adsi_rx_state_t * | s, | |
const int16_t * | amp, | |||
int | len | |||
) |
Receive a chunk of ADSI audio.
s | The ADSI receive context. | |
amp | The audio sample buffer. | |
len | The number of samples in the buffer. |
void adsi_rx_init | ( | adsi_rx_state_t * | s, | |
int | standard, | |||
put_msg_func_t | put_msg, | |||
void * | user_data | |||
) |
Initialise an ADSI receive context.
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. |
void adsi_send_alert_tone | ( | adsi_tx_state_t * | s | ) |
Request generation of an ADSI alert tone.
s | The ADSI transmit context. |
const char* adsi_standard_to_str | ( | int | standard | ) |
Return a short name for an ADSI standard.
standard | The code for the standard. |
int adsi_tx | ( | adsi_tx_state_t * | s, | |
int16_t * | amp, | |||
int | max_len | |||
) |
Generate a block of ADSI audio samples.
s | The ADSI transmit context. | |
amp | The audio sample buffer. | |
max_len | The number of samples to be generated. |
void adsi_tx_init | ( | adsi_tx_state_t * | s, | |
int | standard | |||
) |
Initialise an ADSI transmit context.
s | The ADSI transmit context. | |
standard | The code for the ADSI standard to be used. |