3 * Copyright 2009 Free Software Foundation, Inc.
5 * This file is part of GNU Radio
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)
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.
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.
23 %include "gnuradio.i" // the common stuff
26 #include <atsc_randomizer.h>
27 #include <atsc_derandomizer.h>
28 #include <atsc_rs_encoder.h>
29 #include <atsc_rs_decoder.h>
30 #include <atsc_interleaver.h>
31 #include <atsc_deinterleaver.h>
32 #include <atsc_trellis_encoder.h>
33 #include <atsc_viterbi_decoder.h>
34 #include <atsc_ds_to_softds.h>
35 #include <atsc_field_sync_mux.h>
36 #include <atsc_field_sync_demux.h>
37 #include <atsc_equalizer.h>
38 #include <atsc_fs_checker.h>
39 #include <atsc_bit_timing_loop.h>
40 #include <atsc_fpll.h>
41 #include <atsc_depad.h>
45 %include "atsc_consts.h"
47 %constant int sizeof_atsc_mpeg_packet = sizeof(atsc_mpeg_packet);
48 %constant int sizeof_atsc_mpeg_packet_no_sync = sizeof(atsc_mpeg_packet_no_sync);
49 %constant int sizeof_atsc_mpeg_packet_rs_encoded = sizeof(atsc_mpeg_packet_rs_encoded);
50 %constant int sizeof_atsc_data_segment = sizeof(atsc_data_segment);
51 %constant int sizeof_atsc_soft_data_segment = sizeof(atsc_soft_data_segment);
53 %constant int sizeof_atsc_mpeg_packet_pad = atsc_mpeg_packet::NPAD;
54 %constant int sizeof_atsc_mpeg_packet_no_sync_pad = atsc_mpeg_packet_no_sync::NPAD;
55 %constant int sizeof_atsc_mpeg_packet_rs_encoded_pad = atsc_mpeg_packet_rs_encoded::NPAD;
56 %constant int sizeof_atsc_data_segment_pad = atsc_data_segment::NPAD;
57 %constant int sizeof_atsc_soft_data_segment_pad = atsc_soft_data_segment::NPAD;
59 // ----------------------------------------------------------------
61 GR_SWIG_BLOCK_MAGIC(atsc,randomizer);
63 atsc_randomizer_sptr atsc_make_randomizer();
65 class atsc_randomizer : public gr_sync_block
73 // ----------------------------------------------------------------
75 GR_SWIG_BLOCK_MAGIC(atsc,derandomizer);
77 atsc_derandomizer_sptr atsc_make_derandomizer();
79 class atsc_derandomizer : public gr_sync_block
87 // ----------------------------------------------------------------
89 GR_SWIG_BLOCK_MAGIC(atsc,rs_encoder);
91 atsc_rs_encoder_sptr atsc_make_rs_encoder();
93 class atsc_rs_encoder : public gr_sync_block
101 // ----------------------------------------------------------------
103 GR_SWIG_BLOCK_MAGIC(atsc,rs_decoder);
105 atsc_rs_decoder_sptr atsc_make_rs_decoder();
107 class atsc_rs_decoder : public gr_sync_block
115 // ----------------------------------------------------------------
117 GR_SWIG_BLOCK_MAGIC(atsc,interleaver);
119 atsc_interleaver_sptr atsc_make_interleaver();
121 class atsc_interleaver : public gr_sync_block
129 // ----------------------------------------------------------------
131 GR_SWIG_BLOCK_MAGIC(atsc,deinterleaver);
133 atsc_deinterleaver_sptr atsc_make_deinterleaver();
135 class atsc_deinterleaver : public gr_sync_block
137 atsc_deinterleaver();
143 // ----------------------------------------------------------------
145 GR_SWIG_BLOCK_MAGIC(atsc,trellis_encoder);
147 atsc_trellis_encoder_sptr atsc_make_trellis_encoder();
149 class atsc_trellis_encoder : public gr_sync_block
151 atsc_trellis_encoder();
157 // ----------------------------------------------------------------
159 GR_SWIG_BLOCK_MAGIC(atsc,viterbi_decoder);
161 atsc_viterbi_decoder_sptr atsc_make_viterbi_decoder();
163 class atsc_viterbi_decoder : public gr_sync_block
165 atsc_viterbi_decoder();
171 // ----------------------------------------------------------------
173 GR_SWIG_BLOCK_MAGIC(atsc,ds_to_softds);
175 atsc_ds_to_softds_sptr atsc_make_ds_to_softds();
177 class atsc_ds_to_softds : public gr_sync_block
185 // ----------------------------------------------------------------
187 GR_SWIG_BLOCK_MAGIC(atsc,field_sync_mux);
189 atsc_field_sync_mux_sptr atsc_make_field_sync_mux();
191 class atsc_field_sync_mux : public gr_sync_block
193 atsc_field_sync_mux();
199 // ----------------------------------------------------------------
201 GR_SWIG_BLOCK_MAGIC(atsc,field_sync_demux);
203 atsc_field_sync_demux_sptr atsc_make_field_sync_demux();
205 class atsc_field_sync_demux : public gr_block
207 atsc_field_sync_demux();
213 // ----------------------------------------------------------------
215 GR_SWIG_BLOCK_MAGIC(atsc,equalizer);
217 atsc_equalizer_sptr atsc_make_equalizer();
219 class atsc_equalizer : public gr_sync_block
227 // ----------------------------------------------------------------
229 GR_SWIG_BLOCK_MAGIC(atsc,fs_checker);
231 atsc_fs_checker_sptr atsc_make_fs_checker();
233 class atsc_fs_checker : public gr_sync_block
241 // ----------------------------------------------------------------
243 GR_SWIG_BLOCK_MAGIC(atsc,bit_timing_loop);
245 atsc_bit_timing_loop_sptr atsc_make_bit_timing_loop();
247 class atsc_bit_timing_loop : public gr_block
249 atsc_bit_timing_loop();
255 // ----------------------------------------------------------------
257 GR_SWIG_BLOCK_MAGIC(atsc,fpll);
259 atsc_fpll_sptr atsc_make_fpll();
261 class atsc_fpll : public gr_sync_block
270 // ----------------------------------------------------------------
272 GR_SWIG_BLOCK_MAGIC(atsc,depad);
274 atsc_depad_sptr atsc_make_depad();
276 class atsc_depad : public gr_sync_interpolator
285 // ----------------------------------------------------------------
287 GR_SWIG_BLOCK_MAGIC(atsc,pad);
289 atsc_pad_sptr atsc_make_pad();
291 class atsc_pad : public gr_sync_decimator
300 // ----------------------------------------------------------------