id: variable_modulate_vector
label: Modulate Vector
category: Modulators
flags: [ show_id, python, cpp ]

parameters:
-   id: mod
    label: Modulator
    dtype: raw
-   id: data
    label: Data vector
    dtype: int_vector
-   id: taps
    label: Filter taps
    dtype: float_vector
value: ${ digital.modulate_vector_bc(mod.to_basic_block(), data, taps) }

templates:
    imports: from gnuradio import digital
    var_make: self.${id} = ${id} = digital.modulate_vector_bc(${mod}.to_basic_block(),
        ${data}, ${taps})

cpp_templates:
    includes: ['#include <gnuradio/digital/modulate_vector.h>']
    declarations: 'digital::modulate_vector_bc::sptr ${id};'
    var_make: |-
        std::vector<int> data = {${str(data)[1:-1]}};
        std::vector<float> taps = {${str(taps)[1:-1]}};
        this->${id} = ${id} = digital::modulate_vector_bc(${mod}.to_basic_block(),
        data, taps);
    link: ['gnuradio::gnuradio-digital']

file_format: 1