Update of /cvsroot/pure-data/externals/grill/flext/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29295/source
Modified Files: flclass.h fldsp.cpp fldsp.h flext.cpp flmsg.cpp flprefix.h flproxy.cpp flqueue.cpp flsupport.h flthr.cpp Log Message: 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
Index: flqueue.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flqueue.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** flqueue.cpp 8 Mar 2005 04:57:17 -0000 1.30 --- flqueue.cpp 13 Mar 2005 04:56:39 -0000 1.31 *************** *** 48,52 **** if(out < 0) // message to self ! th->m_methodmain(-1-out,msg.Header(),msg.Count(),msg.Atoms()); else // message to outlet --- 48,52 ---- if(out < 0) // message to self ! th->CbMethodHandler(-1-out,msg.Header(),msg.Count(),msg.Atoms()); else // message to outlet
Index: flprefix.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flprefix.h,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** flprefix.h 12 Mar 2005 04:56:34 -0000 1.31 --- flprefix.h 13 Mar 2005 04:56:39 -0000 1.32 *************** *** 222,226 ****
#ifndef FLEXT_CPU ! #if defined(_X86_64_) // not sure about this one #define FLEXT_CPU FLEXT_CPU_X86_64 #elif defined(_X86_) || defined(__i386__) || defined(__i586__) || defined(__i686__) --- 222,226 ----
#ifndef FLEXT_CPU ! #if defined(__x86_64__) // not sure about this one #define FLEXT_CPU FLEXT_CPU_X86_64 #elif defined(_X86_) || defined(__i386__) || defined(__i586__) || defined(__i686__) *************** *** 340,352 ****
// ----- set threading model ----- ! // shared builds are always threaded (although this not be so....) #ifdef FLEXT_SHARED #undef FLEXT_THREADS #define FLEXT_THREADS - /* - // and also enabled for virtual daughter-classes?? - #undef FLEXT_VIRT - #define FLEXT_VIRT - */ #endif
--- 340,347 ----
// ----- set threading model ----- ! // shared builds are always threaded #ifdef FLEXT_SHARED #undef FLEXT_THREADS #define FLEXT_THREADS #endif
Index: flthr.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flthr.cpp,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** flthr.cpp 12 Mar 2005 04:56:35 -0000 1.28 --- flthr.cpp 13 Mar 2005 04:56:40 -0000 1.29 *************** *** 321,328 **** }
! bool flext_base::ShouldExit() const { ! thr_entry *fnd = thrstopped.Find(GetThreadId()); ! return fnd != NULL; }
--- 321,327 ---- }
! bool flext::ShouldExit() { ! return thrstopped.Find(GetThreadId()) != NULL; }
Index: flsupport.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.h,v retrieving revision 1.80 retrieving revision 1.81 diff -C2 -d -r1.80 -r1.81 *** flsupport.h 12 Mar 2005 04:56:34 -0000 1.80 --- flsupport.h 13 Mar 2005 04:56:39 -0000 1.81 *************** *** 742,746 **** */ static thrid_t GetSysThreadId(); ! //! Check if current thread is the realtime system's thread static bool IsThread(thrid_t t,thrid_t ref = GetThreadId()) { --- 742,749 ---- */ static thrid_t GetSysThreadId(); ! ! //! Check if current thread should terminate ! static bool ShouldExit(); ! //! Check if current thread is the realtime system's thread static bool IsThread(thrid_t t,thrid_t ref = GetThreadId()) {
Index: flext.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flext.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** flext.cpp 26 Jan 2005 05:01:47 -0000 1.32 --- flext.cpp 13 Mar 2005 04:56:39 -0000 1.33 *************** *** 146,150 ****
#if FLEXT_SYS == FLEXT_SYS_PD || FLEXT_SYS == FLEXT_SYS_MAX - add_method(c,cb_help,"help"); add_loadbang(c,cb_loadbang); #if FLEXT_SYS == FLEXT_SYS_MAX --- 146,149 ---- *************** *** 153,157 **** #endif #else - fts_class_message_varargs(c,MakeSymbol("help"),cb_help); #pragma message ("no implementation of loadbang or assist") #endif --- 152,155 ---- *************** *** 175,194 **** }
! #if FLEXT_SYS == FLEXT_SYS_JMAX ! void flext_base::cb_help(fts_object_t *c,int, fts_symbol_t, int, const fts_atom_t *) { thisObject(c)->m_help(); } ! #else ! void flext_base::cb_help(t_class *c) { thisObject(c)->m_help(); } ! void flext_base::cb_loadbang(t_class *c) { thisObject(c)->m_loadbang(); } #endif
- void flext_base::m_help() - { - // This should better be overloaded - post("%s (using flext " FLEXT_VERSTR ") - compiled on %s %s",thisName(),__DATE__,__TIME__); - } - void flext_base::m_loadbang() {}
! void flext_base::m_click() {}
#if FLEXT_SYS == FLEXT_SYS_PD --- 173,184 ---- }
! #if FLEXT_SYS != FLEXT_SYS_JMAX ! void flext_base::cb_loadbang(t_class *c) { thisObject(c)->CbLoadbang(); } #endif
void flext_base::m_loadbang() {} + void flext_base::CbLoadbang() { return m_loadbang(); }
! void flext_base::CbClick() {}
#if FLEXT_SYS == FLEXT_SYS_PD *************** *** 196,200 **** { if(doit && alt) { ! thisObject(c)->m_click(); return 1; } --- 186,190 ---- { if(doit && alt) { ! thisObject(c)->CbClick(); return 1; } *************** *** 207,211 **** void flext_base::cb_click(t_class *c, Point pt, short mods) { ! thisObject(c)->m_click(); }
--- 197,201 ---- void flext_base::cb_click(t_class *c, Point pt, short mods) { ! thisObject(c)->CbClick(); }
Index: flproxy.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flproxy.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** flproxy.cpp 26 Jan 2005 05:02:00 -0000 1.8 --- flproxy.cpp 13 Mar 2005 04:56:39 -0000 1.9 *************** *** 25,34 **** void flext_base::px_object::px_method(px_object *obj,const t_symbol *s,int argc,t_atom *argv) { ! obj->base->m_methodmain(obj->index,s,argc,argv); }
void flext_base::cb_px_anything(t_class *c,const t_symbol *s,int argc,t_atom *argv) { ! thisObject(c)->m_methodmain(0,s,argc,argv); }
--- 25,34 ---- void flext_base::px_object::px_method(px_object *obj,const t_symbol *s,int argc,t_atom *argv) { ! obj->base->CbMethodHandler(obj->index,s,argc,argv); }
void flext_base::cb_px_anything(t_class *c,const t_symbol *s,int argc,t_atom *argv) { ! thisObject(c)->CbMethodHandler(0,s,argc,argv); }
*************** *** 36,40 **** void flext_base::cb_px_ft ## IX(t_class *c,float v) { \ t_atom atom; SETFLOAT(&atom,v); \ ! thisObject(c)->m_methodmain(IX,sym_float,1,&atom); \ }
--- 36,40 ---- void flext_base::cb_px_ft ## IX(t_class *c,float v) { \ t_atom atom; SETFLOAT(&atom,v); \ ! thisObject(c)->CbMethodHandler(IX,sym_float,1,&atom); \ }
*************** *** 50,54 **** flext_base *o = thisObject(c); int ci = ((flext_hdr *)o->x_obj)->curinlet; ! o->m_methodmain(ci,s,argc,argv); }
--- 50,54 ---- flext_base *o = thisObject(c); int ci = ((flext_hdr *)o->x_obj)->curinlet; ! o->CbMethodHandler(ci,s,argc,argv); }
*************** *** 63,67 **** t_atom atom; SetInt(atom,v); ! o->m_methodmain(ci,sym_int,1,&atom); }
--- 63,67 ---- t_atom atom; SetInt(atom,v); ! o->CbMethodHandler(ci,sym_int,1,&atom); }
*************** *** 73,77 **** t_atom atom; SetFloat(atom,v); ! o->m_methodmain(ci,sym_float,1,&atom); } #else --- 73,77 ---- t_atom atom; SetFloat(atom,v); ! o->CbMethodHandler(ci,sym_float,1,&atom); } #else *************** *** 162,166 **** { flext_base *o = thisObject(c); ! o->m_methodmain(winlet,s,argc,argv); }
--- 162,166 ---- { flext_base *o = thisObject(c); ! o->CbMethodHandler(winlet,s,argc,argv); }
Index: flmsg.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flmsg.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** flmsg.cpp 26 Jan 2005 05:01:59 -0000 1.13 --- flmsg.cpp 13 Mar 2005 04:56:39 -0000 1.14 *************** *** 161,165 **** The messages of all the inlets go here and are promoted to the registered callback functions */ ! bool flext_base::m_methodmain(int inlet,const t_symbol *s,int argc,const t_atom *argv) { static bool trap = false; --- 161,165 ---- The messages of all the inlets go here and are promoted to the registered callback functions */ ! bool flext_base::CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_atom *argv) { static bool trap = false; *************** *** 180,184 **** SetInt(fl,GetAInt(argv[0])); trap = true; ! ret = m_methodmain(inlet,sym_int,1,&fl); trap = false; } --- 180,184 ---- SetInt(fl,GetAInt(argv[0])); trap = true; ! ret = CbMethodHandler(inlet,sym_int,1,&fl); trap = false; } *************** *** 190,194 **** SetFloat(fl,GetAFloat(argv[0])); trap = true; ! ret = m_methodmain(inlet,sym_float,1,&fl); trap = false; } --- 190,194 ---- SetFloat(fl,GetAFloat(argv[0])); trap = true; ! ret = CbMethodHandler(inlet,sym_float,1,&fl); trap = false; } *************** *** 211,215 ****
trap = true; ! ret = m_methodmain(inlet,sym_list,1,&list); trap = false; } --- 211,215 ----
trap = true; ! ret = CbMethodHandler(inlet,sym_list,1,&list); trap = false; } *************** *** 221,225 **** SetSymbol(list,s); trap = true; ! ret = m_methodmain(inlet,sym_list,1,&list); trap = false; } --- 221,225 ---- SetSymbol(list,s); trap = true; ! ret = CbMethodHandler(inlet,sym_list,1,&list); trap = false; } *************** *** 240,244 **** if(sym) { trap = true; ! m_methodmain(i,sym,1,argv+i); trap = false; } --- 240,244 ---- if(sym) { trap = true; ! CbMethodHandler(i,sym,1,argv+i); trap = false; } *************** *** 248,252 **** }
! if(!ret && !trap) ret = m_method_(inlet,s,argc,argv); } catch(std::exception &x) { --- 248,252 ---- }
! if(!ret && !trap) ret = CbMethodResort(inlet,s,argc,argv); } catch(std::exception &x) { *************** *** 274,275 **** --- 274,279 ---- }
+ bool flext_base::CbMethodResort(int inlet,const t_symbol *s,int argc,const t_atom *argv) + { + return m_method_(inlet,s,argc,argv); + }
Index: fldsp.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/fldsp.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** fldsp.cpp 12 Feb 2005 04:56:09 -0000 1.26 --- fldsp.cpp 13 Mar 2005 04:56:33 -0000 1.27 *************** *** 91,95 **** { obj->indsp = true; ! obj->m_signal(obj->blksz,obj->invecs,obj->outvecs); obj->indsp = false; } --- 91,95 ---- { obj->indsp = true; ! obj->CbSignal(); obj->indsp = false; } *************** *** 157,170 ****
// 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 FLEXT_SYS == FLEXT_SYS_JMAX ! fts_atom_t args; ! fts_set_pointer(args,obj); ! fts_dsp_add_function(dspsym,1,args); #else ! dsp_add((t_dspmethod)dspmeth,1,obj); #endif }
--- 157,170 ----
// with the following call derived classes can do their eventual DSP setup ! 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); #else ! dsp_add((t_dspmethod)dspmeth,1,obj); #endif + } }
*************** *** 185,188 **** --- 185,194 ---- 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) { *************** *** 190,193 **** --- 196,202 ---- }
+ 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; }
Index: fldsp.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/fldsp.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** fldsp.h 12 Feb 2005 04:56:09 -0000 1.13 --- fldsp.h 13 Mar 2005 04:56:39 -0000 1.14 *************** *** 52,55 **** --- 52,61 ---- int Blocksize() const { return blksz; }
+ //! returns array of input vectors (CntInSig() vectors) + t_sample *const *InSig() const { return invecs; } + + //! returns array of output vectors (CntOutSig() vectors) + t_sample *const *OutSig() const { return outvecs; } + //! typedef describing a signal vector #if FLEXT_SYS == FLEXT_SYS_JMAX *************** *** 69,73 **** --- 75,92 ---- /*! \brief Called on every dsp init. \note Don't expect any valid data in the signal vectors! + flext_dsp::CbDsp should not be called by the derived class + + \return true (default)... use DSP, false, don't use DSP + */ + virtual bool CbDsp();
+ /*! \brief Called with every signal vector - here you do the dsp calculation + flext_dsp::CbSignal fills all output vectors with silence + */ + virtual void CbSignal(); + + + /*! \brief Deprecated method for CbSignal + \deprecated \param n: frames (aka samples) in one signal vector \param insigs: array of input vectors (get number with function CntInSig()) *************** *** 76,81 **** virtual void m_dsp(int n,t_signalvec const *insigs,t_signalvec const *outsigs);
! /*! \brief Called with every signal vector - here you do the dsp calculation ! \param n: frames (aka samples) in one signal vector \param insigs: array of input vectors (get number with function CntInSig()) --- 95,100 ---- virtual void m_dsp(int n,t_signalvec const *insigs,t_signalvec const *outsigs);
! /*! \brief Deprecated method for CbSignal ! \deprecated \param n: frames (aka samples) in one signal vector \param insigs: array of input vectors (get number with function CntInSig())
Index: flclass.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flclass.h,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** flclass.h 26 Jan 2005 05:01:41 -0000 1.51 --- flclass.h 13 Mar 2005 04:56:31 -0000 1.52 *************** *** 87,98 **** */
- //! called on "help" message: should post some text - virtual void m_help(); - //! called on patcher load (not on mere object creation!) virtual void m_loadbang();
//! called on (double-)click into object box ! virtual void m_click();
/*! \brief Called for every incoming message. --- 87,96 ---- */
//! called on patcher load (not on mere object creation!) + virtual void CbLoadbang(); virtual void m_loadbang();
//! called on (double-)click into object box ! virtual void CbClick();
/*! \brief Called for every incoming message. *************** *** 100,107 **** \return True if a handler was found and called */ ! virtual bool m_methodmain(int inlet,const t_symbol *s,int argc,const t_atom *argv);
! /*! \brief Called for every unhandled message (by m_methodmain) */ virtual bool m_method_(int inlet,const t_symbol *s,int argc,const t_atom *argv);
--- 98,106 ---- \return True if a handler was found and called */ ! virtual bool CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_atom *argv);
! /*! \brief Called for every unhandled message (by CbMethodHandler) */ + virtual bool CbMethodResort(int inlet,const t_symbol *s,int argc,const t_atom *argv); virtual bool m_method_(int inlet,const t_symbol *s,int argc,const t_atom *argv);
*************** *** 502,509 **** //! Terminate all threads of this object bool StopThreads(); - - //! Check if current thread should terminate - bool ShouldExit() const; - #endif // FLEXT_THREADS
--- 501,504 ----