id: hilbert_fc
label: Hilbert
flags: [ python, cpp ]

parameters:
-   id: num_taps
    label: Num Taps
    dtype: int
    default: '65'
-   id: win
    label: Window
    dtype: raw
    default: window.WIN_HAMMING
    options: [window.WIN_HAMMING, window.WIN_HANN, window.WIN_BLACKMAN, window.WIN_BLACKMAN_hARRIS,
        window.WIN_RECTANGULAR, window.WIN_KAISER]
    option_labels: [Hamming, Hann, Blackman, Blackman-harris, Rectangular, Kaiser]
    hide: part
-   id: beta
    label: Beta
    dtype: real
    default: '6.76'
    hide: part

inputs:
-   domain: stream
    dtype: float

outputs:
-   domain: stream
    dtype: complex

templates:
    imports: from gnuradio import filter
    make: filter.hilbert_fc(${num_taps}, ${win}, ${beta})

cpp_templates:
    includes: ['#include <gnuradio/filter/hilbert_fc.h>']
    declarations: 'filter::hilbert_fc::sptr ${id};'
    make: |-
        this->${id} = filter::hilbert_fc::make(
            ${num_taps},
            ${win},
            ${beta});
    link: ['gnuradio::gnuradio-filter']

file_format: 1
