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/simple3/main.cpp | 90 +++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 externals/grill/flext/tutorial/simple3/main.cpp (limited to 'externals/grill/flext/tutorial/simple3/main.cpp') diff --git a/externals/grill/flext/tutorial/simple3/main.cpp b/externals/grill/flext/tutorial/simple3/main.cpp new file mode 100644 index 00000000..5d290f67 --- /dev/null +++ b/externals/grill/flext/tutorial/simple3/main.cpp @@ -0,0 +1,90 @@ +/* +flext tutorial - simple 3 + +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 an object digesting several "tagged" messages + +*/ + +// 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 + +class simple3: + public flext_base +{ + FLEXT_HEADER(simple3,flext_base) + +public: + // constructor with variable argument list + simple3(); + +protected: + void m_tag(); + void m_tag_and_int(int i); + void m_sym(t_symbol *s); + + // override default flext help function + virtual void m_help(); + +private: + + FLEXT_CALLBACK(m_tag); // callback for method "m_tag" (no arguments) + FLEXT_CALLBACK_I(m_tag_and_int); // callback for method "m_tag" (int arguments) + FLEXT_CALLBACK_S(m_sym); // callback for method "m_sym" (with one symbol argument) +}; + +// instantiate the class (constructor has a variable argument list) +FLEXT_NEW("simple3",simple3) + + +simple3::simple3() +{ + // define inlets + AddInAnything(); // add inlet of type anything (index 0) + + // set up inlets and outlets + SetupInOut(); + + // register methods + FLEXT_ADDMETHOD_(0,"born",m_tag); // register method for tag "born" + FLEXT_ADDMETHOD_(0,"to",m_tag); // register method for tag "to" + FLEXT_ADDMETHOD_(0,"hula",m_tag); // register method for tag "hula" + FLEXT_ADDMETHOD_I(0,"hula",m_tag_and_int); // register method for tag "hula" and int argument + + FLEXT_ADDMETHOD(0,m_sym); // register method for all other symbols +} + +void simple3::m_tag() +{ + post("tag recognized"); +} + +void simple3::m_tag_and_int(int i) +{ + post("tag recognized (has int arg: %i)",i); +} + +void simple3::m_sym(t_symbol *s) +{ + post("symbol: %s",GetString(s)); +} + + +void simple3::m_help() +{ + // post a help message + // thisName() returns a char * for the object name + post("%s - example for tagged messages",thisName()); +} + + -- cgit v1.2.1