aboutsummaryrefslogtreecommitdiff
path: root/externals/grill
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill')
-rw-r--r--externals/grill/flext/changes.txt2
-rw-r--r--externals/grill/flext/flext.cwbin572167 -> 572771 bytes
-rw-r--r--externals/grill/flext/flext.dsp56
-rw-r--r--externals/grill/flext/make-files.txt5
-rw-r--r--externals/grill/flext/source/flbind.cpp2
-rw-r--r--externals/grill/flext/source/flbuf.cpp6
-rw-r--r--externals/grill/flext/source/flclass.h81
-rw-r--r--externals/grill/flext/source/flcwmax.h3
-rwxr-xr-xexternals/grill/flext/source/flqueue.cpp95
-rw-r--r--externals/grill/xsample/maxmsp/xrecord~.helpbin8210 -> 11195 bytes
-rwxr-xr-xexternals/grill/xsample/maxmsp/xsample.helpbin1147 -> 51186 bytes
-rw-r--r--externals/grill/xsample/source/groove.cpp9
-rwxr-xr-xexternals/grill/xsample/xsample.cwbin278705 -> 280733 bytes
13 files changed, 192 insertions, 67 deletions
diff --git a/externals/grill/flext/changes.txt b/externals/grill/flext/changes.txt
index 0a340da5..dbe0895a 100644
--- a/externals/grill/flext/changes.txt
+++ b/externals/grill/flext/changes.txt
@@ -17,6 +17,8 @@ Version history:
- fixed deadly bug for Max/MSP method-to-symbol-binding proxies
- some fixes for CodeWarrior Mach-O compilation
- fixed destruction bug for hashed "item arrays"
+- added flext_base::ToSelf* methods for queued (deferred) self messaging
+- deleted flext::buffer console outputs for undefined arrays/buffer~s: should be done by externals
0.4.3:
- added forgotten flext_base::ToQueueString method
diff --git a/externals/grill/flext/flext.cw b/externals/grill/flext/flext.cw
index bf7ab642..18a53c85 100644
--- a/externals/grill/flext/flext.cw
+++ b/externals/grill/flext/flext.cw
Binary files differ
diff --git a/externals/grill/flext/flext.dsp b/externals/grill/flext/flext.dsp
index de0d40b7..d000aacf 100644
--- a/externals/grill/flext/flext.dsp
+++ b/externals/grill/flext/flext.dsp
@@ -185,6 +185,10 @@ LIB32=link.exe -lib
# PROP Default_Filter ""
# Begin Source File
+SOURCE=.\changes.txt
+# End Source File
+# Begin Source File
+
SOURCE=.\source\fldoxygen.h
# End Source File
# Begin Source File
@@ -233,10 +237,6 @@ SOURCE=.\source\flclass.h
# End Source File
# Begin Source File
-SOURCE=.\source\fldefs.h
-# End Source File
-# Begin Source File
-
SOURCE=.\source\flext.cpp
# End Source File
# Begin Source File
@@ -372,5 +372,53 @@ SOURCE=.\source\flstk.cpp
SOURCE=.\source\flstk.h
# End Source File
# End Group
+# Begin Group "Defs"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\source\fldefs.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_attradd.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_attrcb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_attrvar.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_hdr.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_methadd.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_methbind.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_methcall.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_methcb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_meththr.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\source\fldefs_setup.h
+# End Source File
+# End Group
# End Target
# End Project
diff --git a/externals/grill/flext/make-files.txt b/externals/grill/flext/make-files.txt
index 3702966d..02422580 100644
--- a/externals/grill/flext/make-files.txt
+++ b/externals/grill/flext/make-files.txt
@@ -3,7 +3,10 @@ flutil.cpp flatom.cpp flatom_pr.cpp flthr.cpp fltimer.cpp flsimd.cpp flout.cpp \
flatom_app.cpp flatom_part.cpp flitem.cpp flmeth.cpp flmsg.cpp \
flproxy.cpp flqueue.cpp flbind.cpp
-HDRS=flprefix.h flstdc.h flbase.h flclass.h fldefs.h flext.h flsupport.h fldsp.h flinternal.h
+HDRS=flprefix.h flstdc.h flbase.h flclass.h flext.h flsupport.h fldsp.h flinternal.h \
+fldefs.h fldefs_hdr.h fldefs_setup.h \
+fldefs_methcb.h fldefs_meththr.h fldefs_methadd.h fldefs_methbind.h fldefs_methcall.h \
+fldefs_attrcb.h fldefs_attrvar.h fldefs_attradd.h
SRCS_SNDOBJ=flsndobj.cpp
HDRS_SNDOBJ=flsndobj.h
diff --git a/externals/grill/flext/source/flbind.cpp b/externals/grill/flext/source/flbind.cpp
index 9f840f34..fe1846e2 100644
--- a/externals/grill/flext/source/flbind.cpp
+++ b/externals/grill/flext/source/flbind.cpp
@@ -69,7 +69,7 @@ flext_base::binditem::~binditem()
if(tag->s_thing == (t_object *)px)
const_cast<t_symbol *>(tag)->s_thing = NULL;
else
- error("%s - Binding not found",thisName());
+ error("flext - Binding to symbol %s not found",tag->s_name);
#else
# pragma warning("Not implemented")
#endif
diff --git a/externals/grill/flext/source/flbuf.cpp b/externals/grill/flext/source/flbuf.cpp
index 5d004e4d..89258b11 100644
--- a/externals/grill/flext/source/flbuf.cpp
+++ b/externals/grill/flext/source/flbuf.cpp
@@ -73,7 +73,7 @@ int flext::buffer::Set(const t_symbol *s,bool nameonly)
arr = (t_garray *)pd_findbyclass(const_cast<t_symbol *>(sym), garray_class);
if(!arr)
{
- if (*GetString(sym)) error("buffer: no such array '%s'",GetString(sym));
+ if (*GetString(sym)) FLEXT_LOG1("buffer: no such array '%s'",GetString(sym));
sym = NULL;
if(valid) ret = -1;
}
@@ -108,7 +108,7 @@ int flext::buffer::Set(const t_symbol *s,bool nameonly)
}
}
else {
- error("buffer: symbol '%s' not defined", GetString(sym));
+ FLEXT_LOG1("buffer: symbol '%s' not defined", GetString(sym));
if(valid) ret = -1;
}
#else
@@ -261,7 +261,7 @@ void flext::buffer::Dirty(bool force)
}
}
else {
- error("buffer: symbol '%s' not defined",sym->s_name);
+ FLEXT_LOG1("buffer: symbol '%s' not defined",sym->s_name);
}
#else
#error
diff --git a/externals/grill/flext/source/flclass.h b/externals/grill/flext/source/flclass.h
index 7296c223..fc0ff0f8 100644
--- a/externals/grill/flext/source/flclass.h
+++ b/externals/grill/flext/source/flclass.h
@@ -200,41 +200,27 @@ public:
// output messages
- //! Output bang (to appointed outlet)
-// void ToOutBang(outlet *o) const;
//! Output bang (index n starts with 0)
- void ToOutBang(int n) const; // { outlet *o = GetOut(n); if(o) ToOutBang(o); }
+ void ToOutBang(int n) const;
- //! Output float (to appointed outlet)
-// void ToOutFloat(outlet *o,float f) const;
//! Output float (index n starts with 0)
- void ToOutFloat(int n,float f) const; // { outlet *o = GetOut(n); if(o) ToOutFloat(o,f); }
+ void ToOutFloat(int n,float f) const;
- //! Output integer (to appointed outlet)
-// void ToOutInt(outlet *o,int f) const;
//! Output integer (index n starts with 0)
- void ToOutInt(int n,int f) const; // { outlet *o = GetOut(n); if(o) ToOutInt(o,f); }
+ void ToOutInt(int n,int f) const;
- //! Output symbol (to appointed outlet)
-// void ToOutSymbol(outlet *o,const t_symbol *s) const;
//! Output symbol (index n starts with 0)
- void ToOutSymbol(int n,const t_symbol *s) const; // { outlet *o = GetOut(n); if(o) ToOutSymbol(o,s); }
- //! Output string aka symbol (to appointed outlet)
-// void ToOutString(outlet *o,const char *s) const { ToOutSymbol(o,MakeSymbol(s)); }
+ void ToOutSymbol(int n,const t_symbol *s) const;
//! Output string aka symbol (index n starts with 0)
void ToOutString(int n,const char *s) const { ToOutSymbol(n,MakeSymbol(s)); }
- //! Output list (to appointed outlet)
-// void ToOutList(outlet *o,int argc,const t_atom *argv) const;
//! Output list (index n starts with 0)
- void ToOutList(int n,int argc,const t_atom *argv) const; // { outlet *o = GetOut(n); if(o) ToOutList(o,argc,argv); }
+ void ToOutList(int n,int argc,const t_atom *argv) const;
//! Output list (index n starts with 0)
void ToOutList(int n,const AtomList &list) const { ToOutList(n,list.Count(),list.Atoms()); }
- //! Output anything (to appointed outlet)
-// void ToOutAnything(outlet *o,const t_symbol *s,int argc,const t_atom *argv) const;
//! Output anything (index n starts with 0)
- void ToOutAnything(int n,const t_symbol *s,int argc,const t_atom *argv) const; // { outlet *o = GetOut(n); if(o) ToOutAnything(o,const_cast<t_symbol *>(s),argc,argv); }
+ void ToOutAnything(int n,const t_symbol *s,int argc,const t_atom *argv) const;
//! Output anything (index n starts with 0)
void ToOutAnything(int n,const AtomAnything &any) const { ToOutAnything(n,any.Header(),any.Count(),any.Atoms()); }
@@ -244,48 +230,55 @@ public:
@{
*/
- //! Output bang (to appointed outlet)
-// void ToQueueBang(outlet *o) const;
//! Output bang (index n starts with 0)
- void ToQueueBang(int n) const; // { outlet *o = GetOut(n); if(o) ToQueueBang(o); }
+ void ToQueueBang(int n) const;
- //! Output float (to appointed outlet)
-// void ToQueueFloat(outlet *o,float f) const;
//! Output float (index n starts with 0)
- void ToQueueFloat(int n,float f) const; // { outlet *o = GetOut(n); if(o) ToQueueFloat(o,f); }
+ void ToQueueFloat(int n,float f) const;
- //! Output integer (to appointed outlet)
-// void ToQueueInt(outlet *o,int f) const;
//! Output integer (index n starts with 0)
- void ToQueueInt(int n,int f) const; // { outlet *o = GetOut(n); if(o) ToQueueInt(o,f); }
+ void ToQueueInt(int n,int f) const;
- //! Output symbol (to appointed outlet)
-// void ToQueueSymbol(outlet *o,const t_symbol *s) const;
//! Output symbol (index n starts with 0)
- void ToQueueSymbol(int n,const t_symbol *s) const; // { outlet *o = GetOut(n); if(o) ToQueueSymbol(o,s); }
- //! Output string aka symbol (to appointed outlet)
-// void ToQueueString(outlet *o,const char *s) const { ToQueueSymbol(o,MakeSymbol(s)); }
+ void ToQueueSymbol(int n,const t_symbol *s) const;
//! Output string aka symbol (to appointed outlet)
void ToQueueString(int n,const char *s) const { ToQueueSymbol(n,MakeSymbol(s)); }
- //! Output list (to appointed outlet)
-// void ToQueueList(outlet *o,int argc,const t_atom *argv) const;
- //! Output list (to appointed outlet)
-// void ToQueueList(outlet *o,const AtomList &list) const { ToQueueList(o,list.Count(),list.Atoms()); }
//! Output list (index n starts with 0)
- void ToQueueList(int n,int argc,const t_atom *argv) const; // { outlet *o = GetOut(n); if(o) ToQueueList(o,argc,argv); }
+ void ToQueueList(int n,int argc,const t_atom *argv) const;
//! Output list (index n starts with 0)
void ToQueueList(int n,const AtomList &list) const { ToQueueList(n,list.Count(),list.Atoms()); }
- //! Output anything (to appointed outlet)
-// void ToQueueAnything(outlet *o,const t_symbol *s,int argc,const t_atom *argv) const;
- //! Output anything (to appointed outlet)
-// void ToQueueAnything(outlet *o,const AtomAnything &any) const { ToQueueAnything(o,any.Header(),any.Count(),any.Atoms()); }
//! Output anything (index n starts with 0)
- void ToQueueAnything(int n,const t_symbol *s,int argc,const t_atom *argv) const; // { outlet *o = GetOut(n); if(o) ToQueueAnything(o,s,argc,argv); }
+ void ToQueueAnything(int n,const t_symbol *s,int argc,const t_atom *argv) const;
//! Output anything (index n starts with 0)
void ToQueueAnything(int n,const AtomAnything &any) const { ToQueueAnything(n,any.Header(),any.Count(),any.Atoms()); }
+
+ //! Send bang to self (inlet n)
+ void ToSelfBang(int n) const;
+
+ //! Send float to self (inlet n)
+ void ToSelfFloat(int n,float f) const;
+
+ //! Send integer to self (inlet n)
+ void ToSelfInt(int n,int f) const;
+
+ //! Send symbol to self (inlet n)
+ void ToSelfSymbol(int n,const t_symbol *s) const;
+ //! Send string aka symbol to self (inlet 0)
+ void ToSelfString(int n,const char *s) const { ToSelfSymbol(n,MakeSymbol(s)); }
+
+ //! Send list to self (inlet n)
+ void ToSelfList(int n,int argc,const t_atom *argv) const;
+ //! Send list to self (inlet n)
+ void ToSelfList(int n,const AtomList &list) const { ToSelfList(n,list.Count(),list.Atoms()); }
+
+ //! Send anything to self (inlet n)
+ void ToSelfAnything(int n,const t_symbol *s,int argc,const t_atom *argv) const;
+ //! Send anything to self (inlet n)
+ void ToSelfAnything(int n,const AtomAnything &any) const { ToSelfAnything(n,any.Header(),any.Count(),any.Atoms()); }
+
//! @} FLEXT_C_IO_QUEUE
//! @} FLEXT_C_INOUT
diff --git a/externals/grill/flext/source/flcwmax.h b/externals/grill/flext/source/flcwmax.h
index 87653e3b..a0c17832 100644
--- a/externals/grill/flext/source/flcwmax.h
+++ b/externals/grill/flext/source/flcwmax.h
@@ -25,7 +25,8 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#include <MacHeaders.h>
#endif
-#if __option(sym) || !__option(opt_dead_code)
+#if /*__option(sym) ||*/ !__option(opt_dead_code)
+ #pragma message("Optimization disabled -> Compiling a debug version (with FLEXT_DEBUG)")
#define FLEXT_DEBUG
#endif
diff --git a/externals/grill/flext/source/flqueue.cpp b/externals/grill/flext/source/flqueue.cpp
index 13cada78..92045fbf 100755
--- a/externals/grill/flext/source/flqueue.cpp
+++ b/externals/grill/flext/source/flqueue.cpp
@@ -10,6 +10,8 @@ WARRANTIES, see the file, "license.txt," in this distribution.
/*! \file flqueue.cpp
\brief Implementation of the flext message queuing functionality.
+
+ \todo Let's see if queuing can be implemented for Max/MSP with defer_low
*/
#include "flext.h"
@@ -79,17 +81,59 @@ void flext_base::QTick(flext_base *th)
qmsg *m = th->qhead;
if(!m) break;
- switch(m->tp) {
- case qmsg::tp_bang: th->ToOutBang(m->out); break;
- case qmsg::tp_float: th->ToOutFloat(m->out,m->_float); break;
- case qmsg::tp_int: th->ToOutInt(m->out,m->_int); break;
- case qmsg::tp_sym: th->ToOutSymbol(m->out,m->_sym); break;
- case qmsg::tp_list: th->ToOutList(m->out,m->_list.argc,m->_list.argv); break;
- case qmsg::tp_any: th->ToOutAnything(m->out,m->_any.s,m->_any.argc,m->_any.argv); break;
-#ifdef FLEXT_DEBUG
- default: ERRINTERNAL();
+ if(m->out < 0) {
+ // message to self
+
+ const int n = -1-m->out;
+ t_atom tmp;
+
+ switch(m->tp) {
+ case qmsg::tp_bang:
+ th->m_methodmain(n,sym_bang,0,&tmp);
+ break;
+ case qmsg::tp_float:
+ SetFloat(tmp,m->_float);
+ th->m_methodmain(n,sym_float,1,&tmp);
+ break;
+ case qmsg::tp_int:
+ SetInt(tmp,m->_int);
+#if FLEXT_SYS == FLEXT_SYS_PD
+ th->m_methodmain(n,sym_float,1,&tmp);
+#elif FLEXT_SYS == FLEXT_SYS_MAX
+ th->m_methodmain(n,sym_int,1,&tmp);
+#else
+#error Not implemented!
#endif
- }
+ case qmsg::tp_sym:
+ SetSymbol(tmp,m->_sym);
+ th->m_methodmain(n,sym_symbol,1,&tmp);
+ break;
+ case qmsg::tp_list:
+ th->m_methodmain(n,sym_list,m->_list.argc,m->_list.argv);
+ break;
+ case qmsg::tp_any:
+ th->m_methodmain(n,m->_any.s,m->_any.argc,m->_any.argv);
+ break;
+ #ifdef FLEXT_DEBUG
+ default: ERRINTERNAL();
+ #endif
+ }
+ }
+ else {
+ // message to outlet
+
+ switch(m->tp) {
+ case qmsg::tp_bang: th->ToOutBang(m->out); break;
+ case qmsg::tp_float: th->ToOutFloat(m->out,m->_float); break;
+ case qmsg::tp_int: th->ToOutInt(m->out,m->_int); break;
+ case qmsg::tp_sym: th->ToOutSymbol(m->out,m->_sym); break;
+ case qmsg::tp_list: th->ToOutList(m->out,m->_list.argc,m->_list.argv); break;
+ case qmsg::tp_any: th->ToOutAnything(m->out,m->_any.s,m->_any.argc,m->_any.argv); break;
+ #ifdef FLEXT_DEBUG
+ default: ERRINTERNAL();
+ #endif
+ }
+ }
th->qhead = m->nxt;
if(!th->qhead) th->qtail = NULL;
@@ -169,3 +213,34 @@ void flext_base::ToQueueAnything(int o,const t_symbol *s,int argc,const t_atom *
const_cast<flext_base &>(*this).Queue(m);
}
+
+void flext_base::ToSelfBang(int n) const
+{
+ ToQueueBang(-1-n);
+}
+
+void flext_base::ToSelfFloat(int n,float f) const
+{
+ ToQueueFloat(-1-n,f);
+}
+
+void flext_base::ToSelfInt(int n,int f) const
+{
+ ToQueueInt(-1-n,f);
+}
+
+void flext_base::ToSelfSymbol(int n,const t_symbol *s) const
+{
+ ToQueueSymbol(-1-n,s);
+}
+
+void flext_base::ToSelfList(int n,int argc,const t_atom *argv) const
+{
+ ToQueueList(-1-n,argc,argv);
+}
+
+void flext_base::ToSelfAnything(int n,const t_symbol *s,int argc,const t_atom *argv) const
+{
+ ToQueueAnything(-1-n,s,argc,argv);
+}
+
diff --git a/externals/grill/xsample/maxmsp/xrecord~.help b/externals/grill/xsample/maxmsp/xrecord~.help
index b4a55d78..a6bf7709 100644
--- a/externals/grill/xsample/maxmsp/xrecord~.help
+++ b/externals/grill/xsample/maxmsp/xrecord~.help
Binary files differ
diff --git a/externals/grill/xsample/maxmsp/xsample.help b/externals/grill/xsample/maxmsp/xsample.help
index 6af68c77..e021f58c 100755
--- a/externals/grill/xsample/maxmsp/xsample.help
+++ b/externals/grill/xsample/maxmsp/xsample.help
Binary files differ
diff --git a/externals/grill/xsample/source/groove.cpp b/externals/grill/xsample/source/groove.cpp
index 1c6f195f..66e55cea 100644
--- a/externals/grill/xsample/source/groove.cpp
+++ b/externals/grill/xsample/source/groove.cpp
@@ -169,8 +169,11 @@ xgroove::xgroove(I argc,const t_atom *argv):
}
#endif
+
if(argc > argi && IsSymbol(argv[argi])) {
- buf = new buffer(GetSymbol(argv[argi]),true);
+
+ buf = new buffer(GetSymbol(argv[argi]),true);
+
argi++;
#if FLEXT_SYS == FLEXT_SYS_MAX
@@ -182,8 +185,8 @@ xgroove::xgroove(I argc,const t_atom *argv):
}
#endif
}
- else
- buf = new buffer(NULL,true);
+ else
+ buf = new buffer(NULL,true);
AddInSignal("Signal of playing speed"); // speed signal
AddInFloat("Starting point"); // min play pos
diff --git a/externals/grill/xsample/xsample.cw b/externals/grill/xsample/xsample.cw
index 7e26972f..35e592d5 100755
--- a/externals/grill/xsample/xsample.cw
+++ b/externals/grill/xsample/xsample.cw
Binary files differ