From d62e56f4df9594f72ce501f5e19c974fd18e7295 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 22 Oct 2002 23:07:10 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r186, which included commits to RCS files with non-trunk default branches. svn path=/trunk/; revision=187 --- externals/grill/flext/tutorial/simple1/main.cpp | 78 +++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100755 externals/grill/flext/tutorial/simple1/main.cpp (limited to 'externals/grill/flext/tutorial/simple1/main.cpp') diff --git a/externals/grill/flext/tutorial/simple1/main.cpp b/externals/grill/flext/tutorial/simple1/main.cpp new file mode 100755 index 00000000..38f12573 --- /dev/null +++ b/externals/grill/flext/tutorial/simple1/main.cpp @@ -0,0 +1,78 @@ +/* +flext tutorial - simple 1 + +Copyright (c) 2002 Thomas Grill (xovo@gmx.net) +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "license.txt," in this distribution. + +------------------------------------------------------------------------- + +This is an example of a simple object doing a float inversion +*/ + +// include flext header +#include + +// check for appropriate flext version +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 300) +#error You need at least flext version 0.3.0 +#endif + + +// define the class that stands for a pd/Max object +// Attention: the class name must be the same as the object name!! (without an eventual ~) + +class simple1: + // inherit from basic flext class + public flext_base +{ + // obligatory flext header (class name,base class name) + FLEXT_HEADER(simple1,flext_base) + +public: + // constructor + simple1(); + +protected: + void m_float(float f); // method for float values + +private: + FLEXT_CALLBACK_1(m_float,float); // callback for method "m_float" (with one float argument) +}; + +// instantiate the class +FLEXT_NEW("simple1",simple1) + + +simple1::simple1() +{ + // define inlets: + // first inlet must always by of type anything (or signal for dsp objects) + AddInAnything(); // add one inlet for any message + + // define outlets: + AddOutFloat(); // add one float outlet (has index 0) + + // set up inlets and outlets - obligatory! + SetupInOut(); + + // register methods + FLEXT_ADDMETHOD(0,m_float); // register method (for float messages) "m_float" for inlet 0 +} + +void simple1::m_float(float f) +{ + float res; + if(f == 0) { + // special case 0 + post("%s - zero can't be inverted!",thisName()); + res = 0; + } + else + // normal case + res = 1/f; + + // output value to outlet + ToOutFloat(0,res); // (0 stands for the outlet index 0 - the leftmost outlet) +} + -- cgit v1.2.1