summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Blum2012-10-18 00:42:56 -0700
committerJosh Blum2012-10-18 00:42:56 -0700
commitcdc35131dba81dfc17ef8c3b14bbe5d766c5f537 (patch)
treeb672a77de6dc916779092eeedf9dad1be9921d16
parent5b924be64e1ada926c514058b97e3f7528c8ac7d (diff)
downloadsandhi-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.hpp15
-rw-r--r--include/gnuradio/gr_block.h4
-rw-r--r--lib/block.cpp18
-rw-r--r--lib/gr_block.cpp15
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;