summaryrefslogtreecommitdiff
path: root/gr-fec/lib/async_decoder_impl.h
diff options
context:
space:
mode:
authorTom Rondeau <tom@trondeau.com>2014-05-19 15:53:10 -0400
committerTom Rondeau <tom@trondeau.com>2014-05-19 19:41:48 -0400
commitfbbde8d01ab43b7a3ffd5ca9d65cf50a84e2a7be (patch)
tree70b64a639fcd0d26b1b3204627b42183d1b1add3 /gr-fec/lib/async_decoder_impl.h
parent39c8a266183789b352622f03d518ba6c37ba3168 (diff)
fec: wip: async encoder/decoder working deployments.
Decoder uses API signatures to do shifting, data conversions. New examples showing use.
Diffstat (limited to 'gr-fec/lib/async_decoder_impl.h')
-rw-r--r--gr-fec/lib/async_decoder_impl.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/gr-fec/lib/async_decoder_impl.h b/gr-fec/lib/async_decoder_impl.h
index 5f4c5c44a0..c3c7a7c3ff 100644
--- a/gr-fec/lib/async_decoder_impl.h
+++ b/gr-fec/lib/async_decoder_impl.h
@@ -24,6 +24,7 @@
#define INCLUDED_FEC_ASYNC_DECODER_IMPL_H
#include <gnuradio/fec/async_decoder.h>
+#include <gnuradio/blocks/pack_k_bits.h>
namespace gr {
namespace fec {
@@ -35,12 +36,25 @@ namespace gr {
size_t d_input_item_size;
size_t d_output_item_size;
- void decode(pmt::pmt_t msg);
+ pmt::pmt_t d_in_port;
+ pmt::pmt_t d_out_port;
+
+ blocks::kernel::pack_k_bits *d_pack;
+
+ bool d_packed;
+ bool d_rev_pack;
+
+ int d_max_bits_in;
+ float *d_tmp_f32;
+ int8_t *d_tmp_u8;
+ uint8_t *d_bits_out;
+
+ void decode_packed(pmt::pmt_t msg);
+ void decode_unpacked(pmt::pmt_t msg);
public:
async_decoder_impl(generic_decoder::sptr my_decoder,
- size_t input_item_size,
- size_t output_item_size);
+ bool packed=false, bool rev_pack=true);
~async_decoder_impl();
int general_work(int noutput_items,