diff options
author | Josh Blum | 2012-10-18 00:42:56 -0700 |
---|---|---|
committer | Josh Blum | 2012-10-18 00:42:56 -0700 |
commit | cdc35131dba81dfc17ef8c3b14bbe5d766c5f537 (patch) | |
tree | b672a77de6dc916779092eeedf9dad1be9921d16 | |
parent | 5b924be64e1ada926c514058b97e3f7528c8ac7d (diff) | |
download | sandhi-cdc35131dba81dfc17ef8c3b14bbe5d766c5f537.tar.gz sandhi-cdc35131dba81dfc17ef8c3b14bbe5d766c5f537.tar.bz2 sandhi-cdc35131dba81dfc17ef8c3b14bbe5d766c5f537.zip |
put a few more common accessors in block hdr
-rw-r--r-- | include/gnuradio/block.hpp | 15 | ||||
-rw-r--r-- | include/gnuradio/gr_block.h | 4 | ||||
-rw-r--r-- | lib/block.cpp | 18 | ||||
-rw-r--r-- | lib/gr_block.cpp | 15 |
4 files changed, 33 insertions, 19 deletions
diff --git a/include/gnuradio/block.hpp b/include/gnuradio/block.hpp index efa8b7f..23274b1 100644 --- a/include/gnuradio/block.hpp +++ b/include/gnuradio/block.hpp @@ -154,14 +154,27 @@ struct GRAS_API Block : Element */ void set_fixed_rate(const bool fixed_rate); + //! Get the fixed rate setting + bool fixed_rate(void) const; + /*! * The relative rate can be thought of as interpolation/decimation. * In other words, relative rate is the ratio of output items to input items. */ - void set_relative_rate(double relative_rate); + void set_relative_rate(const double relative_rate); + //! Get the relative rate setting double relative_rate(void) const; + /*! + * The output multiple setting controls work output buffer sizes. + * Buffers will be number of items modulo rounted to the multiple. + */ + void set_output_multiple(const size_t multiple); + + //! Get the output multiple setting + size_t output_multiple(void) const; + /******************************************************************* * Deal with data production and consumption ******************************************************************/ diff --git a/include/gnuradio/gr_block.h b/include/gnuradio/gr_block.h index 25ece79..7328dd1 100644 --- a/include/gnuradio/gr_block.h +++ b/include/gnuradio/gr_block.h @@ -84,10 +84,6 @@ struct GRAS_API gr_block : gnuradio::Block void set_history(unsigned history); - unsigned output_multiple(void) const; - - void set_output_multiple(unsigned multiple); - void set_alignment(const size_t alignment); bool is_unaligned(void); diff --git a/lib/block.cpp b/lib/block.cpp index f236ca4..6b27ab2 100644 --- a/lib/block.cpp +++ b/lib/block.cpp @@ -128,6 +128,24 @@ void Block::set_fixed_rate(const bool fixed_rate) (*this)->block->enable_fixed_rate = fixed_rate; } +bool Block::fixed_rate(void) const +{ + return (*this)->block->enable_fixed_rate; +} + +void Block::set_output_multiple(const size_t multiple) +{ + (*this)->block->output_multiple_items = multiple; + gnuradio::OutputPortConfig config = this->output_config(); + config.reserve_items = multiple; + this->set_output_config(config); +} + +size_t Block::output_multiple(void) const +{ + return (*this)->block->output_multiple_items; +} + void Block::set_relative_rate(double relative_rate) { (*this)->block->relative_rate = relative_rate; diff --git a/lib/gr_block.cpp b/lib/gr_block.cpp index b32158a..b4e7c04 100644 --- a/lib/gr_block.cpp +++ b/lib/gr_block.cpp @@ -80,7 +80,7 @@ bool gr_block::is_unaligned(void) size_t gr_block::fixed_rate_noutput_to_ninput(const size_t noutput_items) { - if ((*this)->block->enable_fixed_rate) + if (this->fixed_rate()) { return size_t(0.5 + (noutput_items/this->relative_rate())) + this->history() - 1; } @@ -126,19 +126,6 @@ void gr_block::set_history(unsigned history) this->set_input_config(config); } -unsigned gr_block::output_multiple(void) const -{ - return (*this)->block->output_multiple_items; -} - -void gr_block::set_output_multiple(unsigned multiple) -{ - (*this)->block->output_multiple_items = multiple; - gnuradio::OutputPortConfig config = this->output_config(); - config.reserve_items = multiple; - this->set_output_config(config); -} - int gr_block::max_noutput_items(void) const { return this->output_config().maximum_items; |