diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-05-23 16:52:46 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-05-23 16:52:46 +0000 |
commit | a1c2bb17663ce4dea2f5e7e3c1e1bfae35541a2c (patch) | |
tree | 9000122288ab01e7d815323c79342f668d6b2a5b /externals/grill/flext/source/flmsg.cpp | |
parent | a98acaeb0ce114ede2cfd31267c6dcc3fc0fbb01 (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-x | externals/grill/flext/source/flmsg.cpp | 7 |
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 |