blob: 902b2161b61c28265af8c39669f2b2f42069bac2 [file] [log] [blame]
Vasil Velichkov7f259fd2018-05-06 02:13:36 +03001/* -*- c++ -*- */
2/*
3 * @file
4 * @author (C) 2018 by Vasil Velichkov <vvvelichkov@gmail.com>
5 * @section LICENSE
6 *
7 * Gr-gsm is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * Gr-gsm is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with gr-gsm; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 */
22
23#ifndef INCLUDED_GSM_TCH_H_DECODER_IMPL_H
24#define INCLUDED_GSM_TCH_H_DECODER_IMPL_H
25
26#include <grgsm/decoding/tch_h_decoder.h>
27#include "tch_f_decoder_impl.h"
28
29namespace gr {
30 namespace gsm {
31
32 class tch_h_decoder_impl : public tch_h_decoder
33 {
34 private:
35 unsigned int d_collected_bursts_num;
36 pmt::pmt_t d_bursts[8];
37
38 enum tch_mode d_tch_mode;
39 unsigned int d_sub_channel;
40
41 std::vector<uint8_t> d_multi_rate_codes;
42
43 bool d_boundary_check;
44 bool d_boundary_decode;
45 bool d_header_sent;
46
47 uint8_t d_ft;
48 uint8_t d_cmr;
49
50 void decode(pmt::pmt_t msg);
51 public:
52 tch_h_decoder_impl(unsigned int sub_channel, std::string multi_rate, bool boundary_check=false);
53 ~tch_h_decoder_impl();
54 };
55
56 } // namespace gsm
57} // namespace gr
58
59#endif /* INCLUDED_GSM_TCH_H_DECODER_IMPL_H */
60