id: blocks_file_source label: File Source flags: [ python, cpp ] parameters: - id: file label: File dtype: file_open - id: type label: Output Type dtype: enum options: [complex, float, int, short, byte] option_attributes: size: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, gr.sizeof_char] hide: part - id: repeat label: Repeat dtype: enum default: 'True' options: ['True', 'False'] option_labels: ['Yes', 'No'] - id: vlen label: Vec Length dtype: int default: '1' hide: ${ 'part' if vlen == 1 else 'none' } - id: begin_tag label: Add begin tag dtype: raw default: pmt.PMT_NIL - id: offset label: Offset dtype: int default: '0' - id: length label: Length dtype: int default: '0' outputs: - domain: stream dtype: ${ type } vlen: ${ vlen } asserts: - ${ vlen > 0 } templates: imports: |- from gnuradio import blocks import pmt make: |- blocks.file_source(${type.size}*${vlen}, ${file}, ${repeat}, ${offset}, ${length}) self.${id}.set_begin_tag(${begin_tag}) callbacks: - open(${file}, ${repeat}) - self.${id}.set_begin_tag(${begin_tag}) cpp_templates: includes: ['#include <gnuradio/blocks/file_source.h>'] declarations: 'blocks::file_source::sptr ${id};' make: 'this->${id} =blocks::file_source::make(${type.size})*${vlen}, "${file[1:-1]}", ${repeat}, ${offset}, ${length});' callbacks: - open(${file}, ${repeat}) translations: 'True': 'true' 'False': 'false' gr.sizeof_: 'sizeof(' file_format: 1