[PD] c++ objects?
Mathieu Bouchard
matju at artengine.ca
Thu Aug 12 20:51:58 CEST 2010
On Thu, 12 Aug 2010, IOhannes m zmoelnig wrote:
> On 2010-08-11 22:57, Mathieu Bouchard wrote:
>> On Wed, 11 Aug 2010, padovani wrote:
>>> I would like to know if there are any Pd objects out there written in
>>> C++...
>> There are three C++ interfaces to Pd that are currently in use :
>> * GridFlow's
>> * GEM's
>> * Flext
> there are more.
I mean generic interfacing tools that make the pd interface more "native"
to C++. For example, the three above have some system that allows to use
inheritance and virtual functions (?). But some make more steps to hide
some long C boilerplate code. For example, GF has a preprocessor that
allows the C++ code to just get to the point, as all the class_addmethod
stuff is automated, and even simple data conversions are :
\decl 2 symbol (string a) {your code goes here}
automatically sets a = std::string($1->s_name); and takes care of
registering the method name 'symbol' in inlet 2.
> e.g. georg holzmann's "PDContainer" (externals/grh/PDContainer) is
> written in C++ (it's a wrapper around the C++ STL) and uses it's own
> interface. georg's interface has no dependencies (apart from c++ and
> pd), whereas flext, gem and gf need to be installed if you use them
> (unless you are just cloning the code)
You mean every C++ thing is wrapped using custom plain C code written for
each separate occasion, no macros, no shortcuts, no actual framework for
generalising the use of C++ features in relationship with pd. IMHO, it
just uses <m_pd.h> and nothing else. That's why it has "no dependencies".
But ok, that was not the original question. Well, if you are just looking
for something that is compiled as C++, there is tclpd, pix_opencv,
pdp_opencv, ... but they hardly use any C++ features at all. Then there
are C externals that use a bit of C++, such as pdoctave, and then there
are externals made with Flext, such as msd and sc4pd.
To find an exhaustive list of them in the pd svn, it's probably sufficient
to do :
find externals -iname '*.cpp' -o -iname '*.cc' -o -iname '*.cxx'
and then sort out those that really use C++, from those that use
essentially C plus one C++ feature out of 1000.
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801
More information about the Pd-list
mailing list