diff options
Diffstat (limited to 'include/gnuradio')
-rw-r--r-- | include/gnuradio/block.hpp | 31 | ||||
-rw-r--r-- | include/gnuradio/gr_block.h | 2 | ||||
-rw-r--r-- | include/gnuradio/gr_sync_block.h | 13 | ||||
-rw-r--r-- | include/gnuradio/gr_sync_decimator.h | 7 | ||||
-rw-r--r-- | include/gnuradio/gr_sync_interpolator.h | 18 |
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*/ |