aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flmsg.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2005-05-23 16:52:46 +0000
committerThomas Grill <xovo@users.sourceforge.net>2005-05-23 16:52:46 +0000
commita1c2bb17663ce4dea2f5e7e3c1e1bfae35541a2c (patch)
tree9000122288ab01e7d815323c79342f668d6b2a5b /externals/grill/flext/source/flmsg.cpp
parenta98acaeb0ce114ede2cfd31267c6dcc3fc0fbb01 (diff)
oops, fix
Max/MSP has its own check.... changed initialization functions accordingly better timers for Windows fixed timer bug changed template parameter of TableMap compiler flag for MinGW binary compatibility (thanks to GG) enable WIN2000/XP API features with definition in build system fix for symbol messages into non-left inlets restructured TableMap type (doesn't own pointers any more) no sanity check for iterator fixes for MSVC6 slimmed object data structures better c++ compliance fixed problems with symbol binding svn path=/trunk/; revision=3074
Diffstat (limited to 'externals/grill/flext/source/flmsg.cpp')
-rwxr-xr-xexternals/grill/flext/source/flmsg.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/externals/grill/flext/source/flmsg.cpp b/externals/grill/flext/source/flmsg.cpp
index b31ddc41..9a57e4f2 100755
--- a/externals/grill/flext/source/flmsg.cpp
+++ b/externals/grill/flext/source/flmsg.cpp
@@ -138,6 +138,7 @@ bool flext_base::TryMethAny(Item *lst,const t_symbol *s,int argc,const t_atom *a
bool flext_base::FindMeth(int inlet,const t_symbol *s,int argc,const t_atom *argv)
{
Item *lst;
+ ItemCont *clmethhead = ClMeths(thisClassId());
// search for exactly matching tag
if((lst = methhead.FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true;
@@ -196,7 +197,7 @@ bool flext_base::CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_at
#endif
// If float or int message is not explicitly handled: try list handler instead
- if(!trap && argc == 1 && (s == sym_float
+ if(!trap && argc == 1 && (s == sym_float || s == sym_symbol
#if FLEXT_SYS == FLEXT_SYS_MAX
|| s == sym_int
#endif
@@ -208,6 +209,8 @@ bool flext_base::CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_at
else if(s == sym_int)
SetInt(list,GetInt(argv[0]));
#endif
+ else if(s == sym_symbol)
+ SetSymbol(list,GetSymbol(argv[0]));
trap = true;
ret = CbMethodHandler(inlet,sym_list,1,&list);
@@ -226,7 +229,7 @@ bool flext_base::CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_at
if(ret) goto end;
// if distmsgs is switched on then distribute list elements over inlets (Max/MSP behavior)
- if(distmsgs && !trap && inlet == 0 && s == sym_list && insigs <= 1) {
+ if(DoDist() && !trap && inlet == 0 && s == sym_list && insigs <= 1) {
int i = incnt;
if(i > argc) i = argc;
for(--i; i >= 0; --i) { // right to left distribution