diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-01-26 05:02:06 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-01-26 05:02:06 +0000 |
commit | dcbc90c265de6782a1dc6f2e5e7e9fa3c4743f87 (patch) | |
tree | 1945ec1d26aaba80a35073c1e40bf8c395740e2f /externals/grill/flext/source/flattr.cpp | |
parent | 329c9b00931e368ff4b16177bfc7a70b033689b9 (diff) |
- fixed typos and 64-bit compatibility
usage of symbols for method and attribute adding
fixed buggy unbinding of receive symbols
reconsidered flext::buffer:Update
some restructuring
added object construction and destruction flags
better templates, some minor changes
build system: added profiler mode, more fixes
added method for clicks into object box
- conform to idle callback functionality in devel_0_38
oops, forgot about SIMD for Windows
fix for ToOut calls in dsp time
svn path=/trunk/; revision=2540
Diffstat (limited to 'externals/grill/flext/source/flattr.cpp')
-rw-r--r-- | externals/grill/flext/source/flattr.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/externals/grill/flext/source/flattr.cpp b/externals/grill/flext/source/flattr.cpp index 764e1f02..c1a98ecf 100644 --- a/externals/grill/flext/source/flattr.cpp +++ b/externals/grill/flext/source/flattr.cpp @@ -2,7 +2,7 @@ flext - C++ layer for Max/MSP and pd (pure data) externals -Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) +Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org) For information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES, see the file, "license.txt," in this distribution. @@ -43,9 +43,8 @@ flext_base::AttrDataCont::~AttrDataCont() //! Add get and set attributes -void flext_base::AddAttrib(ItemCont *aa,ItemCont *ma,const char *attr,metharg tp,methfun gfun,methfun sfun) +void flext_base::AddAttrib(ItemCont *aa,ItemCont *ma,const t_symbol *asym,metharg tp,methfun gfun,methfun sfun) { - const t_symbol *asym = MakeSymbol(attr); AttrItem *a,*b; FLEXT_ASSERT(asym != sym__ && asym != sym_list && asym != sym_float && asym != sym_symbol && asym != sym_anything); @@ -71,7 +70,7 @@ void flext_base::AddAttrib(ItemCont *aa,ItemCont *ma,const char *attr,metharg tp aa->Add(b,asym); static char tmp[256] = "get"; - strcpy(tmp+3,attr); + strcpy(tmp+3,GetString(asym)); // bind attribute to a method MethItem *mi = new MethItem(b); @@ -87,7 +86,7 @@ void flext_base::AddAttrib(ItemCont *aa,ItemCont *ma,const char *attr,metharg tp } } -void flext_base::AddAttrib(const char *attr,metharg tp,methfun gfun,methfun sfun) +void flext_base::AddAttrib(const t_symbol *attr,metharg tp,methfun gfun,methfun sfun) { if(procattr) AddAttrib(ThAttrs(),ThMeths(),attr,tp,gfun,sfun); @@ -95,7 +94,7 @@ void flext_base::AddAttrib(const char *attr,metharg tp,methfun gfun,methfun sfun error("%s - attribute procession is not enabled!",thisName()); } -void flext_base::AddAttrib(t_classid c,const char *attr,metharg tp,methfun gfun,methfun sfun) +void flext_base::AddAttrib(t_classid c,const t_symbol *attr,metharg tp,methfun gfun,methfun sfun) { AddAttrib(ClAttrs(c),ClMeths(c),attr,tp,gfun,sfun); } @@ -169,12 +168,14 @@ bool flext_base::InitAttrib(int argc,const t_atom *argv) return true; } +static const t_symbol *sym_attributes = flext::MakeSymbol("attributes"); + bool flext_base::ListAttrib() const { if(procattr) { AtomList la; ListAttrib(la); - ToOutAnything(GetOutAttr(),MakeSymbol("attributes"),la.Count(),la.Atoms()); + ToOutAnything(GetOutAttr(),sym_attributes,la.Count(),la.Atoms()); return true; } else |