Statistics
| Branch: | Tag: | Revision:

root / gnuradio-core / src / lib / gengen / gr_chunks_to_symbols_XX.h.t @ cbe1628f

History | View | Annotate | Download (2.4 kB)

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 2, 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@
24
25
#ifndef @GUARD_NAME@
26
#define @GUARD_NAME@
27
28
#include <gr_sync_interpolator.h>
29
30
class @NAME@;
31
typedef boost::shared_ptr<@NAME@> @SPTR_NAME@;
32
33
@SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@O_TYPE@> &symbol_table, const int D = 1);
34
35
/*!
36
 * \brief Map a stream of symbol indexes (unpacked bytes or shorts) to stream of float or complex onstellation points.in \p D dimensions (\p D = 1 by default)
37
 * \ingroup block
38
 *
39
 * input: stream of @I_TYPE@; output: stream of @O_TYPE@
40
 *
41
 * out[n D + k] = symbol_table[in[n] D + k], k=0,1,...,D-1
42
 *
43
 * The combination of gr_packed_to_unpacked_XX followed by
44
 * gr_chunks_to_symbols_XY handles the general case of mapping 
45
 * from a stream of bytes or shorts into arbitrary float
46
 * or complex symbols.
47
 *
48
 * \sa gr_packed_to_unpacked_bb, gr_unpacked_to_packed_bb,
49
 * \sa gr_packed_to_unpacked_ss, gr_unpacked_to_packed_ss,
50
 * \sa gr_chunks_to_symbols_bf, gr_chunks_to_symbols_bc.
51
 * \sa gr_chunks_to_symbols_sf, gr_chunks_to_symbols_sc.
52
 */
53
54
class @NAME@ : public gr_sync_interpolator
55
{
56
  friend @SPTR_NAME@ gr_make_@BASE_NAME@ (const std::vector<@O_TYPE@> &symbol_table, const int D);
57
58
  int d_D;
59
  std::vector<@O_TYPE@> d_symbol_table;
60
  @NAME@ (const std::vector<@O_TYPE@> &symbol_table, const int D = 1);
61
62
 public:
63
  int D () const { return d_D; }
64
  std::vector<@O_TYPE@> symbol_table () const { return d_symbol_table; }
65
  int work (int noutput_items,
66
	    gr_vector_const_void_star &input_items,
67
	    gr_vector_void_star &output_items);
68
69
  bool check_topology(int ninputs, int noutputs) { return ninputs == noutputs; }
70
};
71
72
#endif