summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJosh Blum2012-08-15 23:29:10 -0700
committerJosh Blum2012-08-26 16:03:50 -0700
commit042c571e9ff7e6df2a7469874c9d7f4fa7c675bb (patch)
tree8b017104bb0e524825908cc3770cd9c5150cadba /include
parenta1cd58f8caf3233f3b2c35616a06c9d8fe3fd1ee (diff)
downloadsandhi-042c571e9ff7e6df2a7469874c9d7f4fa7c675bb.tar.gz
sandhi-042c571e9ff7e6df2a7469874c9d7f4fa7c675bb.tar.bz2
sandhi-042c571e9ff7e6df2a7469874c9d7f4fa7c675bb.zip
runtime: work on api wrapper blocks
Diffstat (limited to 'include')
-rw-r--r--include/gnuradio/block.hpp31
-rw-r--r--include/gnuradio/gr_block.h2
-rw-r--r--include/gnuradio/gr_sync_block.h13
-rw-r--r--include/gnuradio/gr_sync_decimator.h7
-rw-r--r--include/gnuradio/gr_sync_interpolator.h18
5 files changed, 26 insertions, 45 deletions
diff --git a/include/gnuradio/block.hpp b/include/gnuradio/block.hpp
index 2ec2a59..87ebb33 100644
--- a/include/gnuradio/block.hpp
+++ b/include/gnuradio/block.hpp
@@ -22,6 +22,7 @@
#include <gnuradio/tags.hpp>
#include <gruel/pmt.h>
#include <vector>
+#include <string>
namespace gnuradio
{
@@ -68,6 +69,8 @@ struct GR_RUNTIME_API Block : Element
Block(void);
+ Block(const std::string &name);
+
/*!
* Set the block's work mode (how it produces and consumes, and the ratio).
* When automatic, consume is automatically called, and forecast handled.
@@ -83,19 +86,21 @@ struct GR_RUNTIME_API Block : Element
std::string name(void) const;
- unsigned history(void) const;
+ size_t history(const size_t which_input = 0) const;
+
+ void set_history(const size_t history, const size_t which_input = 0);
- void set_history(unsigned history);
+ void set_output_multiple(const size_t multiple, const size_t which_input = 0);
- void set_output_multiple(int multiple);
+ size_t output_multiple(const size_t which_input = 0) const;
- int output_multiple(void) const;
+ void consume(const size_t which_input, const size_t how_many_items);
- void consume(int which_input, int how_many_items);
+ void consume_each(const size_t how_many_items);
- void consume_each(int how_many_items);
+ void produce(const size_t which_output, const size_t how_many_items);
- void produce(int which_output, int how_many_items);
+ void set_fixed_rate(bool fixed_rate);
/*!
* The relative rate can be thought of as interpolation/decimation.
@@ -109,20 +114,20 @@ struct GR_RUNTIME_API Block : Element
* Tag related routines from basic block
******************************************************************/
- uint64_t nitems_read(unsigned int which_input);
+ uint64_t nitems_read(const size_t which_input);
- uint64_t nitems_written(unsigned int which_output);
+ uint64_t nitems_written(const size_t which_output);
tag_propagation_policy_t tag_propagation_policy(void);
void set_tag_propagation_policy(tag_propagation_policy_t p);
void add_item_tag(
- unsigned int which_output, const Tag &tag
+ const size_t which_output, const Tag &tag
);
void add_item_tag(
- unsigned int which_output,
+ const size_t which_output,
uint64_t abs_offset,
const pmt::pmt_t &key,
const pmt::pmt_t &value,
@@ -131,14 +136,14 @@ struct GR_RUNTIME_API Block : Element
void get_tags_in_range(
std::vector<Tag> &tags,
- unsigned int which_input,
+ const size_t which_input,
uint64_t abs_start,
uint64_t abs_end
);
void get_tags_in_range(
std::vector<Tag> &tags,
- unsigned int which_input,
+ const size_t which_input,
uint64_t abs_start,
uint64_t abs_end,
const pmt::pmt_t &key
diff --git a/include/gnuradio/gr_block.h b/include/gnuradio/gr_block.h
index ef27199..4c9b5c2 100644
--- a/include/gnuradio/gr_block.h
+++ b/include/gnuradio/gr_block.h
@@ -46,8 +46,6 @@ struct GR_RUNTIME_API gr_block : gnuradio::Block
gr_io_signature_sptr output_signature(void);
- void set_fixed_rate(bool fixed_rate);
-
//! implements work -> calls general work
int work(
const InputItems &input_items,
diff --git a/include/gnuradio/gr_sync_block.h b/include/gnuradio/gr_sync_block.h
index 335840e..4bfd4e0 100644
--- a/include/gnuradio/gr_sync_block.h
+++ b/include/gnuradio/gr_sync_block.h
@@ -32,11 +32,14 @@ struct GR_RUNTIME_API gr_sync_block : gr_block
);
//! implements work -> calls work
- int general_work (int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- void forecast (int noutput_items, gr_vector_int &ninput_items_required);
+ inline int general_work(
+ int noutput_items,
+ gr_vector_int &ninput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items
+ ){
+ return this->work(noutput_items, input_items, output_items);
+ }
void set_alignment(const size_t alignment);
bool is_unaligned(void);
diff --git a/include/gnuradio/gr_sync_decimator.h b/include/gnuradio/gr_sync_decimator.h
index 08983ce..33dd4d4 100644
--- a/include/gnuradio/gr_sync_decimator.h
+++ b/include/gnuradio/gr_sync_decimator.h
@@ -35,13 +35,6 @@ struct GR_RUNTIME_API gr_sync_decimator : gr_sync_block
size_t decimation(void);
void set_decimation(const size_t decim);
- //! implements work -> calls work
- int general_work (int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- void forecast (int noutput_items, gr_vector_int &ninput_items_required);
-
};
#endif /*INCLUDED_GNURADIO_GR_SYNC_DECIMATOR_H*/
diff --git a/include/gnuradio/gr_sync_interpolator.h b/include/gnuradio/gr_sync_interpolator.h
index 3cac3ed..ad5181e 100644
--- a/include/gnuradio/gr_sync_interpolator.h
+++ b/include/gnuradio/gr_sync_interpolator.h
@@ -35,24 +35,6 @@ struct GR_RUNTIME_API gr_sync_interpolator : gr_sync_block
size_t interpolation(void);
void set_interpolation(const size_t interp);
- //! implements work -> calls work
- int general_work (int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- void forecast (int noutput_items, gr_vector_int &ninput_items_required);
-
- /*!
- * \brief just like gr_block::general_work, only this arranges to call consume_each for you
- *
- * The user must override work to define the signal processing code
- */
- virtual int work(
- int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items
- ) = 0;
-
};
#endif /*INCLUDED_GNURADIO_GR_SYNC_INTERPOLATOR_H*/