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