aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flattr.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2005-01-26 05:02:06 +0000
committerThomas Grill <xovo@users.sourceforge.net>2005-01-26 05:02:06 +0000
commitdcbc90c265de6782a1dc6f2e5e7e9fa3c4743f87 (patch)
tree1945ec1d26aaba80a35073c1e40bf8c395740e2f /externals/grill/flext/source/flattr.cpp
parent329c9b00931e368ff4b16177bfc7a70b033689b9 (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.cpp15
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