summaryrefslogtreecommitdiff
path: root/gr-digital/lib/additive_scrambler_bb_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/lib/additive_scrambler_bb_impl.h')
-rw-r--r--gr-digital/lib/additive_scrambler_bb_impl.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/gr-digital/lib/additive_scrambler_bb_impl.h b/gr-digital/lib/additive_scrambler_bb_impl.h
index b621637e67..a3b31c02bc 100644
--- a/gr-digital/lib/additive_scrambler_bb_impl.h
+++ b/gr-digital/lib/additive_scrambler_bb_impl.h
@@ -34,21 +34,27 @@ namespace gr {
{
private:
digital::lfsr d_lfsr;
- int d_count;
- int d_bits;
+ int d_count; //!< Reset the LFSR after this many bytes (not bits)
+ int d_bytes; //!< Count the processed bytes
int d_len;
int d_seed;
+ int d_bits_per_byte;
+ pmt::pmt_t d_reset_tag_key; //!< Reset the LFSR when this tag is received
+
+ int _get_next_reset_index(int noutput_items, int last_reset_index=-1);
public:
additive_scrambler_bb_impl(int mask, int seed,
- int len, int count=0);
+ int len, int count=0,
+ int bits_per_byte=1, const std::string &reset_tag_key="");
~additive_scrambler_bb_impl();
int mask() const;
int seed() const;
int len() const;
int count() const;
-
+ int bits_per_byte() { return d_bits_per_byte; };
+
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);