GNU Radio C++ API
trellis_sccc_decoder_b.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_SCCC_DECODER_B_H
26 #define INCLUDED_TRELLIS_SCCC_DECODER_B_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 &FSMo, int STo0, int SToK,
40  const fsm &FSMi, int STi0, int STiK,
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_FSMo;
54  int d_STo0;
55  int d_SToK;
56  fsm d_FSMi;
57  int d_STi0;
58  int d_STiK;
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 &FSMo, int STo0, int SToK,
67  const fsm &FSMi, int STi0, int STiK,
68  const interleaver &INTERLEAVER,
69  int blocklength,
70  int repetitions,
71  trellis_siso_type_t SISO_TYPE
72  );
73 
75  const fsm &FSMo, int STo0, int SToK,
76  const fsm &FSMi, int STi0, int STiK,
77  const interleaver &INTERLEAVER,
78  int blocklength,
79  int repetitions,
80  trellis_siso_type_t SISO_TYPE
81  );
82 
83 public:
84  fsm FSMo () const { return d_FSMo; }
85  fsm FSMi () const { return d_FSMi; }
86  int STo0 () const { return d_STo0; }
87  int SToK () const { return d_SToK; }
88  int STi0 () const { return d_STi0; }
89  int STiK () const { return d_STiK; }
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