From 0ed7a8b68dd73e2b0473b8127aeca99f3bac9061 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Wed, 1 Apr 2009 21:13:09 +0000 Subject: cleaned up grill externals - replaced with svn:externals to svn.grrrr.org/ext/trunk/ svn path=/trunk/; revision=10951 --- externals/grill/flext/tutorial/attr3/main.cpp | 157 -------------------------- 1 file changed, 157 deletions(-) delete mode 100644 externals/grill/flext/tutorial/attr3/main.cpp (limited to 'externals/grill/flext/tutorial/attr3/main.cpp') diff --git a/externals/grill/flext/tutorial/attr3/main.cpp b/externals/grill/flext/tutorial/attr3/main.cpp deleted file mode 100644 index 8d37f467..00000000 --- a/externals/grill/flext/tutorial/attr3/main.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* -flext tutorial - attributes 3 - -Copyright (c) 2002,2003 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 tutorial example "advanced 3" with the usage of attributes. - -*/ - - -// 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 - - -// check for appropriate flext version -#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 401) -#error You need at least flext version 0.4.1 -#endif - - -class attr3: - public flext_base -{ - FLEXT_HEADER_S(attr3,flext_base,setup) - -public: - // constructor with no arguments - // initial values are set by attributes at creation time (see help file) - attr3(): - // initialize data members - i_down(0),i_up(0),i_count(0),i_step(1) - { - // --- define inlets and outlets --- - AddInAnything(); // default inlet - AddInList(); // inlet for bounds - AddInInt(); // inlet for step size - - AddOutInt(); // outlet for integer count - AddOutBang(); // outlet for bang - } - -protected: - - void m_reset() { i_count = i_down; } - - void m_set(int argc,t_atom *argv) - { - i_count = argc?GetAInt(argv[0]):0; - } - - void m_bang() - { - int f = i_count; - i_count += i_step; - if(i_down != i_up) { - if((i_step > 0) && (i_count > i_up)) { - i_count = i_down; - ToOutBang(1); - } - else if(i_count < i_down) { - i_count = i_up; - ToOutBang(1); - } - } - ToOutInt(0,f); - } - - void m_bounds(int f1,int f2) - { - i_down = f1 < f2?f1:f2; - i_up = f1 > f2?f1:f2; - } - - void m_step(int s) { i_step = s; } - - - // setter method of bounds variables - void ms_bounds(const AtomList &l) - { - if(l.Count() == 2 && CanbeInt(l[0]) && CanbeInt(l[1])) - // if it is a two element integer list use m_bounds method - m_bounds(GetAInt(l[0]),GetAInt(l[1])); - else - // else post a warning - post("%s - 'bounds' needs two integer parameters",thisName()); - } - - // getter method of bounds variables - void mg_bounds(AtomList &l) const - { - l(2); // initialize two element list - SetInt(l[0],i_down); // set first element - SetInt(l[1],i_up); // set second element - } - - - int i_count,i_down,i_up,i_step; - -private: - - static void setup(t_classid c) - { - // --- set up methods (class scope) --- - - // register a bang method to the default inlet (0) - FLEXT_CADDBANG(c,0,m_bang); - - // set up tagged methods for the default inlet (0) - FLEXT_CADDMETHOD_(c,0,"reset",m_reset); - FLEXT_CADDMETHOD_(c,0,"set",m_set); - - // set up methods for inlets 1 and 2 - // no message tag used - FLEXT_CADDMETHOD(c,1,m_bounds); // variable arg type recognized automatically - FLEXT_CADDMETHOD(c,2,m_step); // single int arg also recognized automatically - - // --- set up attributes (class scope) --- - - // these have equally named getters and setters - // see the wrappers below - FLEXT_CADDATTR_VAR1(c,"count",i_count); - FLEXT_CADDATTR_VAR1(c,"step",i_step); - - // bounds has differently named getter and setter functions - // see the wrappers below - FLEXT_CADDATTR_VAR(c,"bounds",mg_bounds,ms_bounds); - } - - // normal method callbacks for bang and reset - FLEXT_CALLBACK(m_bang) - FLEXT_CALLBACK(m_reset) - - FLEXT_CALLBACK_V(m_set) // normal method wrapper for m_set - FLEXT_ATTRVAR_I(i_count) // wrapper functions (get and set) for integer variable i_count - - FLEXT_CALLBACK_II(m_bounds) // normal method wrapper for m_bounds - FLEXT_CALLVAR_V(mg_bounds,ms_bounds) // getter and setter method of bounds - - FLEXT_CALLBACK_I(m_step) // normal method wrapper for m_step - FLEXT_ATTRVAR_I(i_step) // wrapper functions (get and set) for integer variable i_step -}; - - -// instantiate the class (constructor takes no arguments) -FLEXT_NEW("attr3",attr3) - - -- cgit v1.2.1