id: freq_xlating_fir_filter_xxx
label: Frequency Xlating FIR Filter
flags: [ python ]

parameters:
-   id: type
    label: Type
    dtype: enum
    options: [ccc, ccf, fcc, fcf, scc, scf]
    option_labels: [Complex->Complex (Complex Taps), Complex->Complex (Real Taps),
        Float->Complex (Complex Taps), Float->Complex (Real Taps), Short->Complex
            (Complex Taps), Short->Complex (Real Taps)]
    option_attributes:
        input: [complex, complex, float, float, short, short]
        output: [complex, complex, complex, complex, complex, complex]
        taps: [complex_vector, real_vector, complex_vector, real_vector, complex_vector,
            real_vector]
    hide: part
-   id: decim
    label: Decimation
    dtype: int
    default: '1'
-   id: taps
    label: Taps
    dtype: ${ type.taps }
-   id: center_freq
    label: Center Frequency
    dtype: real
    default: '0'
-   id: samp_rate
    label: Sample Rate
    dtype: real
    default: samp_rate

inputs:
-   domain: stream
    dtype: ${ type.input }
-   domain: message
    id: freq
    optional: true

outputs:
-   domain: stream
    dtype: ${ type.output }

templates:
    imports: |-
        from gnuradio import filter
        from gnuradio.filter import firdes
    make: filter.freq_xlating_fir_filter_${type}(${decim}, ${taps}, ${center_freq},
        ${samp_rate})
    callbacks:
    - set_taps(${taps})
    - set_center_freq(${center_freq})

file_format: 1
