GNU Radio C++ API
trellis_pccc_decoder_i.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2004 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * GNU Radio 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  * GNU Radio 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 GNU Radio; 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 // WARNING: this file is machine generated. Edits will be over written
24 
25 #ifndef INCLUDED_TRELLIS_PCCC_DECODER_I_H
26 #define INCLUDED_TRELLIS_PCCC_DECODER_I_H
27 
28 #include <trellis_api.h>
29 #include "fsm.h"
30 #include "interleaver.h"
31 #include <gr_block.h>
32 #include <vector>
33 #include "siso_type.h"
34 
37 
39  const fsm &FSM1, int ST10, int ST1K,
40  const fsm &FSM2, int ST20, int ST2K,
41  const interleaver &INTERLEAVER,
42  int blocklength,
43  int repetitions,
44  trellis_siso_type_t SISO_TYPE // perform "min-sum" or "sum-product" combining
45 );
46 
47 
48 /*!
49  * \ingroup coding_blk
50  */
52 {
53  fsm d_FSM1;
54  int d_ST10;
55  int d_ST1K;
56  fsm d_FSM2;
57  int d_ST20;
58  int d_ST2K;
59  interleaver d_INTERLEAVER;
60  int d_blocklength;
61  int d_repetitions;
62  trellis_siso_type_t d_SISO_TYPE;
63  std::vector<float> d_buffer;
64 
66  const fsm &FSM1, int ST10, int ST1K,
67  const fsm &FSM2, int ST20, int ST2K,
68  const interleaver &INTERLEAVER,
69  int blocklength,
70  int repetitions,
71  trellis_siso_type_t SISO_TYPE
72  );
73 
75  const fsm &FSM1, int ST10, int ST1K,
76  const fsm &FSM2, int ST20, int ST2K,
77  const interleaver &INTERLEAVER,
78  int blocklength,
79  int repetitions,
80  trellis_siso_type_t SISO_TYPE
81  );
82 
83 public:
84  fsm FSM1 () const { return d_FSM1; }
85  fsm FSM2 () const { return d_FSM2; }
86  int ST10 () const { return d_ST10; }
87  int ST1K () const { return d_ST1K; }
88  int ST20 () const { return d_ST20; }
89  int ST2K () const { return d_ST2K; }
90  interleaver INTERLEAVER () const { return d_INTERLEAVER; }
91  int blocklength () const { return d_blocklength; }
92  int repetitions () const { return d_repetitions; }
93  trellis_siso_type_t SISO_TYPE () const { return d_SISO_TYPE; }
94 
95  void forecast (int noutput_items,
96  gr_vector_int &ninput_items_required);
97  int general_work (int noutput_items,
98  gr_vector_int &ninput_items,
99  gr_vector_const_void_star &input_items,
100  gr_vector_void_star &output_items);
101 };
102 
103 #endif