aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/fldsp.h
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/flext/source/fldsp.h')
-rw-r--r--externals/grill/flext/source/fldsp.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/externals/grill/flext/source/fldsp.h b/externals/grill/flext/source/fldsp.h
index 91cbccb0..b85bbe07 100644
--- a/externals/grill/flext/source/fldsp.h
+++ b/externals/grill/flext/source/fldsp.h
@@ -55,13 +55,19 @@ public:
t_sample *const *InSig() const { return vecs; }
//! returns input vector
- t_sample *InSig(int i) const { return vecs[i]; }
+ t_sample *InSig(int i) const { return InSig()[i]; }
//! returns array of output vectors (CntOutSig() vectors)
- t_sample *const *OutSig() const { return vecs+CntInSig(); }
+ // \todo cache that returned pointer
+ t_sample *const *OutSig() const
+ {
+ int i = CntInSig();
+ // we have at least one actual dsp in vector
+ return vecs+(i?i:1);
+ }
//! returns output vector
- t_sample *OutSig(int i) const { return vecs[CntInSig()+i]; }
+ t_sample *OutSig(int i) const { return OutSig()[i]; }
//! typedef describing a signal vector
typedef t_sample *t_signalvec;