discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Specify which methods show up in SWIG version of


From: Nowlan, Sean
Subject: Re: [Discuss-gnuradio] Specify which methods show up in SWIG version of C++ block
Date: Wed, 9 Oct 2013 20:55:50 +0000

Declare a pure virtual function in (for example) gr-OOT/include/OOT/myblock.h :

virtual int how_many_things(const int n) const = 0;

Then declare a concrete function in gr-OOT/lib/myblock_impl.h :

int how_many_things(const int n) const;

Then define your concrete function in gr-OOT/lib/myblock_impl.cc :

int how_many_things(const int n)
{
    return n;
}

If you added your block with gr_modtool, you'll find this in 
gr-OOT/swig/OOT_swig.i :

%{
...
#include "OOT/myblock.h"
...
%}
...
%include "OOT/myblock.h"
...
GR_SWIG_BLOCK_MAGIC2(OOT, myblock);

The above statements will automagically SWIG anything defined in myblock.h.



-----Original Message-----
From: address@hidden [mailto:address@hidden On Behalf Of Ethan Trewhitt
Sent: Wednesday, October 09, 2013 4:36 PM
To: GnuRadio Discussion List
Subject: [Discuss-gnuradio] Specify which methods show up in SWIG version of 
C++ block

I'm working on some custom C++ blocks. I would like to have a few methods in 
the C++ world visible to Python so that they can be called directly. My 
understanding is that GRC can then make such things visible through the 
<callback> tag in the block's XML specification.

Looking at the GR3.7 version of fir_filter, for instance, shows that it has a 
"set_taps" method and an "update_tap" method, both of which are public. 
However, only "set_taps" gets translated into the SWIG Python version of the 
fir_filter block, while "update_tap" does not.
What part of the gr-filter source tree instructs SWIG to include one but not 
the other? Does it have something to do with the way the
GR_SWIG_BLOCK_MAGIC2() macro works within filter_swig.i?

Short version: how do I instruct the SWIG build process to translate a 
particular method of a C++ GR block into its Python version?

Thanks in advance.

Ethan

_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



reply via email to

[Prev in Thread] Current Thread [Next in Thread]