aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/tutorial/simple3/main.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2002-10-22 23:07:10 +0000
committerThomas Grill <xovo@users.sourceforge.net>2002-10-22 23:07:10 +0000
commitd62e56f4df9594f72ce501f5e19c974fd18e7295 (patch)
tree635d4af7a7c2425098e60ca277086ec436b617f7 /externals/grill/flext/tutorial/simple3/main.cpp
parentc6f373c281ecb5cd1f4aa7a070e15cc61ab8793c (diff)
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
Diffstat (limited to 'externals/grill/flext/tutorial/simple3/main.cpp')
-rw-r--r--externals/grill/flext/tutorial/simple3/main.cpp90
1 files changed, 90 insertions, 0 deletions
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 <flext.h>
+
+// 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());
+}
+
+