aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/fldsp.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2005-03-13 04:56:40 +0000
committerThomas Grill <xovo@users.sourceforge.net>2005-03-13 04:56:40 +0000
commit9026ea4981dd69959341b3f646ed26a7fd9b9f5b (patch)
tree175b729c3721fbbf201d35a7043dcfda1da2d97c /externals/grill/flext/source/fldsp.cpp
parent6ff61d35633695bd356bf8d9bb59e2b8294de4f7 (diff)
fixes for attribute editor (to deal with large dialogs)
fix for gcc strangeness eliminated ChannelsIn/ChannelsOut moved ShouldExit to flext namespace new naming for some virtual callback functions fix for flext_dsp @ Max svn path=/trunk/; revision=2621
Diffstat (limited to 'externals/grill/flext/source/fldsp.cpp')
-rw-r--r--externals/grill/flext/source/fldsp.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/externals/grill/flext/source/fldsp.cpp b/externals/grill/flext/source/fldsp.cpp
index 0cf5eb37..85d7f2f8 100644
--- a/externals/grill/flext/source/fldsp.cpp
+++ b/externals/grill/flext/source/fldsp.cpp
@@ -90,7 +90,7 @@ t_int *flext_dsp::dspmeth(t_int *w)
#endif
{
obj->indsp = true;
- obj->m_signal(obj->blksz,obj->invecs,obj->outvecs);
+ obj->CbSignal();
obj->indsp = false;
}
return w+2;
@@ -156,16 +156,16 @@ void flext_dsp::cb_dsp(t_class *c,t_signal **sp)
#endif
// with the following call derived classes can do their eventual DSP setup
- obj->m_dsp(obj->blksz,obj->invecs,obj->outvecs);
-
- // set the DSP function
+ if(obj->CbDsp()) {
+ // set the DSP function
#if FLEXT_SYS == FLEXT_SYS_JMAX
- fts_atom_t args;
- fts_set_pointer(args,obj);
- fts_dsp_add_function(dspsym,1,args);
+ fts_atom_t args;
+ fts_set_pointer(args,obj);
+ fts_dsp_add_function(dspsym,1,args);
#else
- dsp_add((t_dspmethod)dspmeth,1,obj);
+ dsp_add((t_dspmethod)dspmeth,1,obj);
#endif
+ }
}
/*
@@ -184,11 +184,20 @@ void flext_dsp::cb_dsp_delete(fts_object_t *c, int winlet, fts_symbol_t *s, int
void flext_dsp::m_dsp(int /*n*/,t_signalvec const * /*insigs*/,t_signalvec const * /*outsigs*/) {}
+bool flext_dsp::CbDsp()
+{
+ m_dsp(Blocksize(),invecs,outvecs);
+ return true;
+}
+
void flext_dsp::m_signal(int n,t_sample *const * /*insigs*/,t_sample *const *outs)
{
for(int i = 0; i < CntOutSig(); ++i) ZeroSamples(outs[i],n);
}
+void flext_dsp::CbSignal() { m_signal(Blocksize(),invecs,outvecs); }
+
+
#if FLEXT_SYS == FLEXT_SYS_PD
void flext_dsp::cb_enable(t_class *c,t_float on) { thisObject(c)->dspon = on != 0; }
#elif FLEXT_SYS == FLEXT_SYS_JMAX