diff options
author | Thomas Grill <xovo@users.sourceforge.net> | 2005-09-26 13:59:34 +0000 |
---|---|---|
committer | Thomas Grill <xovo@users.sourceforge.net> | 2005-09-26 13:59:34 +0000 |
commit | 0f849641afd27b4e7c9326fbcd402105fd62ced0 (patch) | |
tree | 6f825a8f7a0e0520797f788a6be4f1274d4225d1 /externals/grill/flext/source/flout.cpp | |
parent | 2b91966061ead3c4aa260033e95cfc4adb396496 (diff) |
- better handling of click callback
bugfixes and optimizations, especially for DSP under Max/MSP
- more compatible handling of attributes in patcher (hiding is now an option - define FLEXT_ATTRHIDE)
svn path=/trunk/; revision=3636
Diffstat (limited to 'externals/grill/flext/source/flout.cpp')
-rw-r--r-- | externals/grill/flext/source/flout.cpp | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/externals/grill/flext/source/flout.cpp b/externals/grill/flext/source/flout.cpp index 7f3130e8..d09b4e55 100644 --- a/externals/grill/flext/source/flout.cpp +++ b/externals/grill/flext/source/flout.cpp @@ -191,24 +191,25 @@ bool flext_base::InitInlets() error("%s: All signal inlets must be left-aligned",thisName()); ok = false; break; - case xlet_float: - inlets[ix] = NULL; - if(ix >= 10) { - post("%s: Only 9 float inlets possible",thisName()); - ok = false; - } - else - floatin(x_obj,ix); - break; - case xlet_int: - inlets[ix] = NULL; - if(ix >= 10) { - post("%s: Only 9 int inlets possible",thisName()); - ok = false; - } - else - intin(x_obj,ix); - break; + case xlet_float: { + if(ix < 10) { + inlets[ix] = NULL; + floatin(x_obj,ix); + break; + } + else + goto makeproxy; + } + case xlet_int: { + if(ix < 10) { + inlets[ix] = NULL; + intin(x_obj,ix); + break; + } + else + goto makeproxy; + } + makeproxy: case xlet_any: // non-leftmost case xlet_sym: case xlet_list: @@ -221,12 +222,9 @@ bool flext_base::InitInlets() } } } - -// incnt = cnt; - - if(insigs) - dsp_setup(thisHdr(),insigs); // signal inlets - } + + while(ix >= 0) inlets[ix--] = NULL; + } #else #error #endif |