diff options
author | Piotr Krysik <perper@o2.pl> | 2009-06-30 23:03:33 +0200 |
---|---|---|
committer | Piotr Krysik <perper@o2.pl> | 2009-06-30 23:03:33 +0200 |
commit | 8d2bc49fb9e0c9a5fbd75aa3cad207608e72bf99 (patch) | |
tree | a32fdcd2e8e2b16cc725045d049ed94b3f675956 /src/lib/decoder/openbtsstuff/GSML1FEC.h | |
parent | 8f97a59b21fd8d3ecd111ee770932d852e625d52 (diff) |
moved gsm-receiver into directory - preparation to move to airprobe
Diffstat (limited to 'src/lib/decoder/openbtsstuff/GSML1FEC.h')
-rw-r--r-- | src/lib/decoder/openbtsstuff/GSML1FEC.h | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/src/lib/decoder/openbtsstuff/GSML1FEC.h b/src/lib/decoder/openbtsstuff/GSML1FEC.h deleted file mode 100644 index c367681..0000000 --- a/src/lib/decoder/openbtsstuff/GSML1FEC.h +++ /dev/null @@ -1,146 +0,0 @@ -/* -* Copyright 2008 Free Software Foundation, Inc. -* -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see <http://www.gnu.org/licenses/>. -* -* This software is distributed under the terms of the GNU Public License. -* See the COPYING file in the main directory for details. -*/ - - - -#ifndef GSML1FEC_H -#define GSML1FEC_H - -//#include "Threads.h" -#include "Assert.h" -#include "BitVector.h" - -#include "GSMCommon.h" -//#include "GSMTransfer.h" -#include "GSMTDMA.h" -#include "VocoderFrame.h" -#include "RxBurst.h" -//#include "GSM610Tables.h" -#include <stdio.h> - - - -namespace GSM -{ - - -//class SAPMux; - class L1FEC; - class L1Decoder; - - - - /* - Naming convention for bit vectors follows GSM 05.03 Section 2.2. - d[k] data - u[k] data bits after first encoding step - c[k] data bits after second encoding step - i[B][k] interleaved data bits - e[B][k] bits in a burst - */ - - - - - /** L1 decoder used for full rate TCH and FACCH -- mostly from GSM 05.03 3.1 and 4.2 */ -//: public XCCHL1Decoder - class TCHFACCHL1Decoder - { - - protected: - SoftVector mI[8]; ///< deinterleaving history, 8 blocks instead of 4 - SoftVector mC; ///< c[], as per GSM 05.03 2.2 - BitVector mTCHU; ///< u[] (uncoded) in the spec - BitVector mTCHD; ///< d[] (data) in the spec - SoftVector mClass1_c; ///< the class 1 part of c[] - BitVector mClass1A_d; ///< the class 1A part of d[] - SoftVector mClass2_c; ///< the class 2 part of c[] - ViterbiR2O4 mVCoder; - - VocoderFrame mVFrame; ///< unpacking buffer for vocoder frame - unsigned char mPrevGoodFrame[33]; ///< previous good frame. - - Parity mTCHParity; - const TDMAMapping& mMapping; ///< multiplexing description - -// InterthreadQueue<unsigned char> mSpeechQ; ///< output queue for speech frames - - static const unsigned mMaxQSize = 3; - - - public: - - TCHFACCHL1Decoder( const TDMAMapping& wMapping ); - - ChannelType channelType() const { - return FACCHType; - } - - - /** TCH/FACCH has a special-case writeLowSide. */ - void writeLowSide(const RxBurst& inBurst); - - /** - Unlike other DCCHs, TCH/FACCH process burst calls - deinterleave, decode, handleGoodFrame. - */ - bool processBurst( const RxBurst& ); - - /** Deinterleave i[] to c[]. */ - void deinterleave(int blockOffset ); - - void replaceFACCH( int blockOffset ); - - /** - Decode a traffic frame from TCHI[] and enqueue it. - Return true if there's a good frame. - */ - bool decodeTCH(bool stolen); - - unsigned char * get_voice_frame(){ - return mPrevGoodFrame; - } - /** - Receive a traffic frame. - Non-blocking. Returns NULL if queue is dry. - Caller is responsible for deleting the returned array. - */ -// unsigned char *recvTCH() { return mSpeechQ.read(0); } - - /** Return count of internally-queued traffic frames. */ -// unsigned queueSize() const { return mSpeechQ.size(); } - - }; - - - - - - -}; // namespace GSM - - - - - -#endif - -// vim: ts=4 sw=4 |