Commit dfd6c06d authored by thomas's avatar thomas
Browse files

no message


git-svn-id: https://svn.grrrr.org/ext/trunk@382 4d9ac71a-51e6-0310-8455-cad1006bcd31
parent d0e0ecf0
/*
flext tutorial - simple 2
flext tutorial - attributes 1
Copyright (c) 2002 Thomas Grill (xovo@gmx.net)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
......@@ -8,8 +8,16 @@ WARRANTIES, see the file, "license.txt," in this distribution.
-------------------------------------------------------------------------
This is an example of a simple object doing a float addition
It is a variation of the tutorial "simple 2"
*/
// IMPORTANT: enable attribute processing (specify before inclusion of flext headers!)
// For clarity, this is done here, but you'd better specify it as a compiler definition
// FLEXT_ATTRIBUTES must be 0 or 1,
#define FLEXT_ATTRIBUTES 1
// include flext header
#include <flext.h>
......@@ -26,7 +34,7 @@ class attr1:
public:
// constructor with float argument
attr1(float init);
attr1();
protected:
void m_trigger(float f);
......@@ -35,21 +43,22 @@ protected:
float arg;
private:
FLEXT_CALLBACK_F(m_trigger); // callback for method "m_trigger" (with one float argument)
// callback for method "m_trigger" (with one float argument)
FLEXT_CALLBACK_F(m_trigger);
FLEXT_ATTRVAR_F(arg); // define attribute callbacks for variable "arg"
// define attribute callbacks for variable "arg" (with GET and SET properties)
FLEXT_ATTRVAR_F(arg);
};
// instantiate the class (constructor has one float argument)
FLEXT_NEW_1("attr1 op",attr1,float)
FLEXT_NEW("attr1",attr1)
attr1::attr1(float init):
arg(init) // store argument
attr1::attr1():
arg(0) // initialize argument
{
// define inlets
AddInAnything(); // first inlet of type anything (index 0)
AddInFloat(); // additional float inlet (index 1)
// define outlets
AddOutFloat(); // one float outlet (has index 0)
......@@ -57,13 +66,12 @@ attr1::attr1(float init):
// register methods
FLEXT_ADDMETHOD(0,m_trigger); // register method (for floats) "m_trigger" for inlet 0
FLEXT_ADDATTR_VAR1("arg",arg); // register attribute "arg"
FLEXT_ADDATTR_VAR1("arg",arg); // register attribute "arg" with variable arg
}
void attr1::m_trigger(float f)
{
float res;
res = arg+f;
float res = arg+f;
// output value to outlet
ToOutFloat(0,res); // (0 stands for the outlet index 0)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment