Hi all,

I have created my first custom OOT block in c++
It works when my block takes no inputs.
However, after changing my block signature to allow one input variable (called 
samp_rate), I am getting the following error in GRC:

self.custom_blocks_readfilesource_cpp_0 = 
custom_blocks.readfilesource_cpp(samp_rate)
TypeError: make() takes no arguments (1 given)


As you can see, my block is called "readfilesource_cpp"
I have updated the make function in readfilesoure_cpp.h like so:

static sptr make(float input_sample_rate = 1.0);


I have updated the make function and constructor in my 
"readfilesource_cpp_impl.cpp" file like so:

readfilesource_cpp::sptr readfilesource_cpp::make(float input_sample_rate) {
return gnuradio::get_initial_sptr (new 
readfilesource_cpp_impl(input_sample_rate));
}

/* The private constructor */
readfilesource_cpp_impl::readfilesource_cpp_impl(float input_sample_rate)
: gr::sync_block("readfilesource_cpp",gr::io_signature::make(0, 0, 
0),gr::io_signature::make(1, 1, sizeof(float))),
sample_rate(input_sample_rate)
{}

I downloaded the gnu radio source code from github and compared the 
char_to_float block to my own. I can't see why mine isn't working.

Cheers,
Mike

p.s.
Why are there two header files for a block? why is  _impl automatically added 
to my files by gr_modtool?

Reply via email to