FreeCalypso > hg > tcs211-fcmodem
diff chipsetsw/layer1/gtt_include/ctm/ctm_transmitter.h @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chipsetsw/layer1/gtt_include/ctm/ctm_transmitter.h Mon Jun 01 03:24:05 2015 +0000 @@ -0,0 +1,159 @@ +/* +******************************************************************************* +* +* COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH +* 90411 NUERNBERG, GERMANY, Tel Int + 49 911 5217 100 +* +* The program(s) may be used and/or copied only with the +* written permission from Ericsson or in accordance +* with the terms and conditions stipulated in the agreement or +* contract under which the program(s) have been supplied. +* +******************************************************************************* +* +* File : ctm_transmitter.h +* Author : EEDN/RV Matthias Doerbecker +* Tested Platforms : Sun Solaris, Windows NT 4.0 +* Description : header file for ctm_transmitter.c +* +* Changes since October 13, 2000: +* - added reset function reset_ctm_transmitter() +* +* $Log: $ +* +******************************************************************************* +*/ +#ifndef ctm_transmitter_h +#define ctm_transmitter_h "$Id: $" + +/* +******************************************************************************* +* INCLUDE FILES +******************************************************************************* +*/ + +#include "ctm_typedefs.h" +#include "ctm_defines.h" +#include "init_interleaver.h" +#include "tonemod.h" +#include "conv_poly.h" +#include "fifo.h" + +/* ******************************************************************/ +/* Type definitions for variables that contain all states of the */ +/* CTM Transmitter */ +/* ******************************************************************/ + +typedef struct { + BOOL burstActive; + WORD16 cntIdleSymbols; + WORD16 cntEncBitsInCurrentBlock; + WORD16 cntTXBitsInCurrentBlock; + + /* vectors (not to be allocated) */ + WORD16 resync_sequence[RESYNC_SEQ_LENGTH]; + +#if (NUM_MUTE_ROWS>0) + WORD16 mutePositions[intlvB*NUM_MUTE_ROWS]; +#else + WORD16 mutePositions[1]; +#endif + + fifo_state_t fifo_state; + fifo_state_t octet_fifo_state; + interleaver_state_t diag_int_state; + conv_encoder_t conv_enc_state; +} tx_state_t; + + + +/***********************************************************************/ +/* init_ctm_transmitter() */ +/* ********************** */ +/* Initialization of the CTM Transmitter */ +/* */ +/* output vaiables: */ +/* tx_state : pointer to a variable of tx_state_t containing the */ +/* initialized states of the receiver */ +/***********************************************************************/ + +void init_ctm_transmitter(tx_state_t* tx_state); +/* + *********************************************************************** + * Shutdown_ctm_transmitter() * + * ********************** * + * Shutdown of the Cellular Text Telephone Modem transmitter and * + * deallocate memory used by the CTM Tx buffers. * + * * + * Input variables: * + * tx_state : pointer to a variable of tx_state_t containing the * + * initialized states of the transmitter. * + *********************************************************************** +*/ +void Shutdown_ctm_transmitter(tx_state_t* tx_state); + +/* + *********************************************************************** + * reset_ctm_transmitter() * + * ********************** * + * Reset of the Cellular Text Telephone Modem transmitter, state * + * machines and buffer pointers. * + * * + * Input variables: * + * tx_state : pointer to a variable of tx_state_t containing the * + * initialized states of the transmitter. * + *********************************************************************** +*/ +void reset_ctm_transmitter(tx_state_t* tx_state); + + +/***********************************************************************/ +/* ctm_transmitter() */ +/* ***************** */ +/* Runs the Cellular Text Telephone Modem (CTM) Transmitter for a */ +/* block of 160 output samples, representing 8 gross bits. */ +/* The bits, which are modulated into tones, are taken from an */ +/* internal fifo buffer. If the fifo buffer is empty, zero-valued */ +/* samples are generated. The fifo buffer is filled with */ +/* channel-encoded and interlaeved bits, which are generated */ +/* internally by coding the actual input character. With each call of */ +/* this function one or less input characters can be coded. If there */ +/* is no character to for transmission, one of the following code has */ +/* be used: */ +/* - 0xFFFF: indicates that there is no character to transmit and */ +/* that the transmitter should stay in idle mode, if it is */ +/* currently already in idle mode. If the transmitter is */ +/* NOT in idle mode, it might generate <IDLE> symbols in */ +/* to keep an active burst running. The CTM burst is */ +/* terminated if five <IDLE> symbols have been generated */ +/* consecutevely. */ +/* */ +/* - 0xFFFE: although there is no character to transmit, a CTM burst */ +/* is initiated in order to signalize to the far-end side */ +/* that CTM is supported. The burst starts with the <IDLE> */ +/* symbol and will be contiued with <IDLE> symbols if there */ +/* are no regular characters handed over during the next */ +/* calls of this function. The CTM burst is terminated if */ +/* five <IDLE> symbols have been transmitted consecutevely. */ +/* */ +/* In order to avoid an overflow of the internal fifo buffer, the */ +/* variable *ptrNumBitsStillToModulate should be checked before */ +/* calling this function. */ +/* */ +/* input variables: */ +/* ucsCode UCS code of the character */ +/* or one of the codes 0xFFFF or 0xFFFE */ +/* sineOutput must be false in regular mode; if true, */ +/* a pure sine output signal is generated */ +/* output variables: */ +/* txToneVec output signal (vector of 160 samples) */ +/* input/output variables: */ +/* tx_state pointer to the variable containing the */ +/* transmitter states */ +/***********************************************************************/ + +void ctm_transmitter(UWORD16 ucsCode, + fifo_state_t* ctmCodeOutputVec, + tx_state_t* tx_state ); + +#endif