summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-utils/modtool/templates/templates.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/gr-utils/modtool/templates/templates.py b/gr-utils/modtool/templates/templates.py
index 851a5d6d79..70eaf9cdad 100644
--- a/gr-utils/modtool/templates/templates.py
+++ b/gr-utils/modtool/templates/templates.py
@@ -388,16 +388,23 @@ class ${blockname}(${parenttype}):
% endif
% if blocktype == 'general':
- def forecast(self, noutput_items, ninput_items_required):
- #setup size of input_items[i] for work call
- for i in range(len(ninput_items_required)):
- ninput_items_required[i] = noutput_items
+ def forecast(self, noutput_items, ninputs):
+ # ninputs is the number of input connections
+ # setup size of input_items[i] for work call
+ # the required number of input items is returned
+ # in a list where each element represents the
+ # number of required items for each input
+ ninput_items_required = [noutput_items] * ninputs
+ return ninput_items_required
def general_work(self, input_items, output_items):
- output_items[0][:] = input_items[0]
- consume(0, len(input_items[0]))\
- #self.consume_each(len(input_items[0]))
- return len(output_items[0])
+ # For this sample code, the general block is made to behave like a sync block
+ ninput_items = min([len(items) for items in input_items])
+ noutput_items = min(len(output_items[0]), ninput_items)
+ output_items[0][:noutput_items] = input_items[0][:noutput_items]
+ self.consume_each(noutput_items)
+ return noutput_items
+
<% return %>
% endif