00001 /* 00002 * SpanDSP - a series of DSP components for telephony 00003 * 00004 * private/v18.h - V.18 text telephony for the deaf. 00005 * 00006 * Written by Steve Underwood <steveu@coppice.org> 00007 * 00008 * Copyright (C) 2004-2009 Steve Underwood 00009 * 00010 * All rights reserved. 00011 * 00012 * This program is free software; you can redistribute it and/or modify 00013 * it under the terms of the GNU Lesser General Public License version 2.1, 00014 * as published by the Free Software Foundation. 00015 * 00016 * This program is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Lesser General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU Lesser General Public 00022 * License along with this program; if not, write to the Free Software 00023 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00024 * 00025 * $Id: v18.h,v 1.4 2009/04/11 15:16:14 steveu Exp $ 00026 */ 00027 00028 #if !defined(_SPANDSP_PRIVATE_V18_H_) 00029 #define _SPANDSP_PRIVATE_V18_H_ 00030 00031 struct v18_state_s 00032 { 00033 /*! \brief TRUE if we are the calling modem */ 00034 int caller; 00035 int mode; 00036 put_msg_func_t put_msg; 00037 void *user_data; 00038 00039 union 00040 { 00041 queue_state_t queue; 00042 uint8_t buf[QUEUE_STATE_T_SIZE(128)]; 00043 } queue; 00044 tone_gen_descriptor_t alert_tone_desc; 00045 tone_gen_state_t alert_tone_gen; 00046 fsk_tx_state_t fsktx; 00047 dtmf_tx_state_t dtmftx; 00048 async_tx_state_t asynctx; 00049 int baudot_tx_shift; 00050 int tx_signal_on; 00051 int byte_no; 00052 00053 fsk_rx_state_t fskrx; 00054 dtmf_rx_state_t dtmfrx; 00055 int baudot_rx_shift; 00056 int consecutive_ones; 00057 uint8_t rx_msg[256 + 1]; 00058 int rx_msg_len; 00059 int bit_pos; 00060 int in_progress; 00061 00062 /*! \brief Error and flow logging control */ 00063 logging_state_t logging; 00064 }; 00065 00066 #endif 00067 /*- End of file ------------------------------------------------------------*/