Update of /cvsroot/pure-data/externals/grill/flext/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22978/source
Modified Files: flbase.cpp flbuf.cpp fldsp.h flext.cpp flmsg.cpp flsndobj.cpp flsndobj.h flstk.cpp flstk.h flsupport.h Log Message: changed initialization functions accordingly minimal additions for buffers and exception handling change click modifier to shift (seems to work) small fixes for tutorial examples added flfeatures.h for compile-time version-specific feature detection added typed flext::NewAligned fixed severe Altivec bug adapted for pd-devel 0.39 - better handling of click callback slimmed object data structures update DSP methods for SndObj and STK classes - more compatible handling of attributes in patcher (hiding is now an option - define FLEXT_ATTRHIDE) better buffer checking
Index: fldsp.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/fldsp.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** fldsp.h 23 May 2005 16:52:44 -0000 1.15 --- fldsp.h 12 Sep 2005 10:27:40 -0000 1.16 *************** *** 55,61 **** --- 55,67 ---- t_sample *const *InSig() const { return invecs; }
+ //! returns input vector + t_sample *InSig(int i) const { return invecs[i]; } + //! returns array of output vectors (CntOutSig() vectors) t_sample *const *OutSig() const { return outvecs; }
+ //! returns output vector + t_sample *OutSig(int i) const { return outvecs[i]; } + //! typedef describing a signal vector #if FLEXT_SYS == FLEXT_SYS_JMAX
Index: flsupport.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.h,v retrieving revision 1.96 retrieving revision 1.97 diff -C2 -d -r1.96 -r1.97 *** flsupport.h 30 Aug 2005 10:54:36 -0000 1.96 --- flsupport.h 12 Sep 2005 10:27:40 -0000 1.97 *************** *** 201,205 **** \note This must be true to use any of the other functions except set */ ! bool Ok() const { return sym && data; } /*! \brief Check if buffer content is valid (not in state of content change) --- 201,212 ---- \note This must be true to use any of the other functions except set */ ! bool Ok() const ! { ! return sym ! #if FLEXT_SYS == FLEXT_SYS_PD ! && arr ! #endif ! && data; ! } /*! \brief Check if buffer content is valid (not in state of content change)
Index: flstk.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flstk.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** flstk.cpp 26 Jan 2005 05:02:03 -0000 1.6 --- flstk.cpp 12 Sep 2005 10:27:40 -0000 1.7 *************** *** 46,50 **** }
! void flext_stk::m_dsp(int n,t_sample *const *in,t_sample *const *out) { // called on every rebuild of the dsp chain --- 46,50 ---- }
! bool flext_stk::CbDsp() { // called on every rebuild of the dsp chain *************** *** 65,74 **** inobj = new Input *[inobjs]; for(i = 0; i < inobjs; ++i) ! inobj[i] = new Input(in[i],blsz); } if(outobjs) { outobj = new Output *[outobjs]; for(i = 0; i < outobjs; ++i) ! outobj[i] = new Output(out[i],blsz); }
--- 65,74 ---- inobj = new Input *[inobjs]; for(i = 0; i < inobjs; ++i) ! inobj[i] = new Input(InSig(i),blsz); } if(outobjs) { outobj = new Output *[outobjs]; for(i = 0; i < outobjs; ++i) ! outobj[i] = new Output(OutSig(i),blsz); }
*************** *** 78,87 **** // assign changed input/output vectors
! for(i = 0; i < inobjs; ++i) inobj[i]->SetBuf(in[i]); ! for(i = 0; i < outobjs; ++i) outobj[i]->SetBuf(out[i]); } }
! void flext_stk::m_signal(int n,t_sample *const *in,t_sample *const *out) { if(inobjs || outobjs) ProcessObjs(blsz); --- 78,88 ---- // assign changed input/output vectors
! for(i = 0; i < inobjs; ++i) inobj[i]->SetBuf(InSig(i)); ! for(i = 0; i < outobjs; ++i) outobj[i]->SetBuf(OutSig(i)); } + return true; }
! void flext_stk::CbSignal() { if(inobjs || outobjs) ProcessObjs(blsz);
Index: flext.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flext.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** flext.cpp 30 Jul 2005 21:59:43 -0000 1.38 --- flext.cpp 12 Sep 2005 10:27:40 -0000 1.39 *************** *** 176,180 **** void flext_base::cb_click(t_gobj *c,t_floatarg xpos,t_floatarg ypos,t_floatarg shift,t_floatarg ctrl,t_floatarg alt) { ! if(alt) thisObject(c)->CbClick(); } #endif --- 176,180 ---- void flext_base::cb_click(t_gobj *c,t_floatarg xpos,t_floatarg ypos,t_floatarg shift,t_floatarg ctrl,t_floatarg alt) { ! if(shift) thisObject(c)->CbClick(); } #endif
Index: flmsg.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flmsg.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** flmsg.cpp 19 Jul 2005 13:17:50 -0000 1.18 --- flmsg.cpp 12 Sep 2005 10:27:40 -0000 1.19 *************** *** 254,263 **** --- 254,266 ---- catch(std::exception &x) { error("%s - Exception while processing method: %s",thisName(),x.what()); + ret = false; } catch(const char *txt) { error("%s - Exception while processing method: %s",thisName(),txt); + ret = false; } catch(...) { error("%s - Unknown exception while processing method",thisName()); + ret = false; }
Index: flbase.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flbase.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** flbase.cpp 30 Jul 2005 12:21:41 -0000 1.24 --- flbase.cpp 12 Sep 2005 10:27:40 -0000 1.25 *************** *** 26,29 **** --- 26,30 ---- #pragma warning (disable:4091) #endif + // for canvas_realizedollar (should be noon-critical) #include <g_canvas.h> #ifdef _MSC_VER
Index: flsndobj.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsndobj.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** flsndobj.h 26 Jan 2005 05:02:03 -0000 1.8 --- flsndobj.h 12 Sep 2005 10:27:40 -0000 1.9 *************** *** 42,48 **** virtual void Exit();
- virtual void m_dsp(int n,t_sample *const *in,t_sample *const *out); - virtual void m_signal(int n,t_sample *const *in,t_sample *const *out); - private: //! SndObj for reading from inlet buffer --- 42,45 ---- *************** *** 76,79 **** --- 73,79 ---- };
+ virtual bool CbDsp(); + virtual void CbSignal(); + void ClearObjs();
Index: flstk.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flstk.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** flstk.h 26 Jan 2005 05:02:03 -0000 1.7 --- flstk.h 12 Sep 2005 10:27:40 -0000 1.8 *************** *** 80,85 ****
private: ! virtual void m_dsp(int n,t_sample *const *in,t_sample *const *out); ! virtual void m_signal(int n,t_sample *const *in,t_sample *const *out);
void ClearObjs(); --- 80,85 ----
private: ! virtual bool CbDsp(); ! virtual void CbSignal();
void ClearObjs();
Index: flbuf.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flbuf.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** flbuf.cpp 22 Aug 2005 19:20:27 -0000 1.25 --- flbuf.cpp 12 Sep 2005 10:27:40 -0000 1.26 *************** *** 327,335 **** bool flext::buffer::IsDirty() const { ! FLEXT_ASSERT(sym); #if FLEXT_SYS == FLEXT_SYS_PD - FLEXT_ASSERT(arr); #ifdef _FLEXT_HAVE_PD_GARRAYUPDATETIME ! return isdirty || garray_updatetime(arr) > cleantime; #else // Don't know.... (no method in PD judging whether buffer has been changed from outside flext...) --- 327,334 ---- bool flext::buffer::IsDirty() const { ! if(!sym) return false; #if FLEXT_SYS == FLEXT_SYS_PD #ifdef _FLEXT_HAVE_PD_GARRAYUPDATETIME ! return arr && (isdirty || garray_updatetime(arr) > cleantime); #else // Don't know.... (no method in PD judging whether buffer has been changed from outside flext...)
Index: flsndobj.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsndobj.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** flsndobj.cpp 26 Jan 2005 05:02:02 -0000 1.9 --- flsndobj.cpp 12 Sep 2005 10:27:40 -0000 1.10 *************** *** 51,55 **** }
! void flext_sndobj::m_dsp(int n,t_sample *const *in,t_sample *const *out) { // called on every rebuild of the dsp chain --- 51,55 ---- }
! bool flext_sndobj::CbDsp() { // called on every rebuild of the dsp chain *************** *** 69,73 **** tmpobj = new SndObj *[inobjs]; for(i = 0; i < inobjs; ++i) { ! inobj[i] = new Inlet(in[i],blsz,smprt); tmpobj[i] = new SndObj(NULL,blsz,smprt); } --- 69,73 ---- tmpobj = new SndObj *[inobjs]; for(i = 0; i < inobjs; ++i) { ! inobj[i] = new Inlet(InSig(i),blsz,smprt); tmpobj[i] = new SndObj(NULL,blsz,smprt); } *************** *** 75,79 **** if(outobjs) { outobj = new Outlet *[outobjs]; ! for(i = 0; i < outobjs; ++i) outobj[i] = new Outlet(out[i],blsz,smprt); }
--- 75,79 ---- if(outobjs) { outobj = new Outlet *[outobjs]; ! for(i = 0; i < outobjs; ++i) outobj[i] = new Outlet(OutSig(i),blsz,smprt); }
*************** *** 83,92 **** // assign changed input/output vectors
! for(i = 0; i < inobjs; ++i) inobj[i]->SetBuf(in[i]); ! for(i = 0; i < outobjs; ++i) outobj[i]->SetBuf(out[i]); } }
! void flext_sndobj::m_signal(int n,t_sample *const *in,t_sample *const *out) { for(int i = 0; i < inobjs; ++i) *tmpobj[i] << *inobj[i]; --- 83,93 ---- // assign changed input/output vectors
! for(i = 0; i < inobjs; ++i) inobj[i]->SetBuf(InSig(i)); ! for(i = 0; i < outobjs; ++i) outobj[i]->SetBuf(OutSig(i)); } + return true; }
! void flext_sndobj::CbSignal() { for(int i = 0; i < inobjs; ++i) *tmpobj[i] << *inobj[i];