aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-12-12 03:41:32 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-12-12 03:41:32 +0000
commitdd500deadc8cc4577a305a9f1fe438786671f9e6 (patch)
tree4e73ff62c4a697446570a2f64c470978b7725204
parentc0ca4188c9813ddb28076c025fdcd3f4f100abeb (diff)
""
svn path=/trunk/; revision=1217
-rw-r--r--externals/grill/dyn/readme.txt1
-rw-r--r--externals/grill/flext/changes.txt12
-rw-r--r--externals/grill/flext/config-pd-cygwin.txt2
-rw-r--r--externals/grill/flext/flext.doxy58
-rw-r--r--externals/grill/flext/source/flattr_ed.cpp56
-rw-r--r--externals/grill/flext/source/flbase.h9
-rw-r--r--externals/grill/flext/source/fldefs.h6
-rw-r--r--externals/grill/flext/source/fldefs_attradd.h2
-rw-r--r--externals/grill/flext/source/fldefs_attrcb.h3
-rw-r--r--externals/grill/flext/source/fldefs_attrvar.h49
-rw-r--r--externals/grill/flext/source/fldefs_methadd.h2
-rw-r--r--externals/grill/flext/source/fldefs_methcall.h1
-rw-r--r--externals/grill/flext/source/fldefs_methcb.h1
-rw-r--r--externals/grill/flext/source/fldefs_setup.h4
-rw-r--r--externals/grill/flext/source/fldoxygen.h2
-rwxr-xr-xexternals/grill/flext/source/flqueue.cpp18
-rw-r--r--externals/grill/flext/source/flsupport.h7
-rw-r--r--externals/grill/pool/pool.cpp2
-rwxr-xr-xexternals/grill/pool/pool.cwbin202236 -> 202236 bytes
-rw-r--r--externals/grill/py/pd/attr-1.pd32
-rw-r--r--externals/grill/py/py.dsp229
-rw-r--r--externals/grill/py/source/bound.cpp3
-rwxr-xr-xexternals/grill/xsample/config-pd-linux.txt1
-rw-r--r--externals/grill/xsample/maxmsp/xgroove~.helpbin7457 -> 7572 bytes
-rwxr-xr-xexternals/grill/xsample/xsample.cwbin394881 -> 394881 bytes
25 files changed, 174 insertions, 326 deletions
diff --git a/externals/grill/dyn/readme.txt b/externals/grill/dyn/readme.txt
index a757e55a..09b7c45f 100644
--- a/externals/grill/dyn/readme.txt
+++ b/externals/grill/dyn/readme.txt
@@ -65,3 +65,4 @@ CHANGES:
TODO:
--------
- Hash table for object tags
+- add mute attribute
diff --git a/externals/grill/flext/changes.txt b/externals/grill/flext/changes.txt
index 84ebac86..4c0eca4b 100644
--- a/externals/grill/flext/changes.txt
+++ b/externals/grill/flext/changes.txt
@@ -23,7 +23,6 @@ Version history:
- added "getmethods" message (for attribute-enabled externals) to list methods for a specified inlet (default = 0)
- "getattributes" or "getmethods" output lists are now alphabethically sorted
- flext::StopThread function to terminate running threads (started with LaunchThread)
-- added flext::post() and flext::error() console printing (thread-safe)
- added flext::CmpAtom and AtomList::operator < methods ... useful for using lists as keys for STL
- make use of new PD thread locking (PD functions sys_lock() and sys_unlock()), queue messages only if necessary
- better FLEXT_OSAPI resolution
@@ -35,6 +34,7 @@ Version history:
- moved memory functions and console output from flext to super-base-class flext_root and derived all helper classes from that
- changed FLEXT_THREAD_X: wrappers doesn't delete the passed data pointer anymore -> the called method is responsible for that (and it knows the type....)
- enabled binding of more than one function to a symbol and added flext_base::GetBoundMethod
+- native support for Windows threading model
0.4.4:
- fixed deadly bug for Max/MSP method-to-symbol-binding proxies
@@ -277,11 +277,12 @@ general:
- add log messages for debugging version
- use PD's t_float and t_int types (or comparable for 32-Bit safety)
-- make links flext.a -> libflext.a for compatibility
-
- add double handlers
- add signal in/out connection query function
+- support for Max qelem style
+
+
bugs:
- attributes and attribute editor saving with patcher arguments (like $0-gugu )
@@ -290,8 +291,9 @@ bugs:
- Max rounding bug ... buffer resize could be one sample less!
- flext_dsp: Max/MSP doesn't correctly report in/out channel counts
-- new called in a flext-based class member function doesn _NOT_ call flext::operator new.
- how can we achieve that????
+- linker problems between MFC libraries and global new and delete overloadings
+- flext::post and flext::error should print via a worker thread
+
tests:
- PD: figure out what "pointer" messages do and where they occur
diff --git a/externals/grill/flext/config-pd-cygwin.txt b/externals/grill/flext/config-pd-cygwin.txt
index dec1ebc4..50a72db0 100644
--- a/externals/grill/flext/config-pd-cygwin.txt
+++ b/externals/grill/flext/config-pd-cygwin.txt
@@ -25,4 +25,4 @@ INSTDIR=${PDPATH}/flext
# additional compiler flags
# (check if they fit for your system!)
-UFLAGS=-mcpu=pentium3 -msse \ No newline at end of file
+UFLAGS=-mcpu=pentium4 -msse \ No newline at end of file
diff --git a/externals/grill/flext/flext.doxy b/externals/grill/flext/flext.doxy
index 8b245668..46f973d6 100644
--- a/externals/grill/flext/flext.doxy
+++ b/externals/grill/flext/flext.doxy
@@ -1,12 +1,34 @@
-# Doxyfile 1.3-rc2
+# Doxyfile 1.3.5
#---------------------------------------------------------------------------
-# General configuration options
+# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = flext
-PROJECT_NUMBER = "version 0.4.4"
+PROJECT_NUMBER = "version 0.5.0"
OUTPUT_DIRECTORY = f:/prog/max/flext/doc/
OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = YES
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = YES
+INHERIT_DOCS = YES
+DISTRIBUTE_GROUP_DOC = NO
+TAB_SIZE = 8
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = NO
+SUBGROUPING = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
@@ -15,35 +37,18 @@ HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
-SHORT_NAMES = NO
HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = NO
SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-TAB_SIZE = 8
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
-ALIASES =
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
-OPTIMIZE_OUTPUT_FOR_C = YES
-OPTIMIZE_OUTPUT_JAVA = NO
SHOW_USED_FILES = YES
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
@@ -77,6 +82,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
+VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@@ -117,6 +123,7 @@ LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -137,8 +144,10 @@ MAN_LINKS = NO
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
+XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
+XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
@@ -183,24 +192,21 @@ HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
+UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
+MAX_DOT_GRAPH_DEPTH = 0
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
-CGI_NAME = search.cgi
-CGI_URL =
-DOC_URL =
-DOC_ABSPATH =
-BIN_ABSPATH = /usr/local/bin/
-EXT_DOC_PATHS =
diff --git a/externals/grill/flext/source/flattr_ed.cpp b/externals/grill/flext/source/flattr_ed.cpp
index fb6183ed..6b2b1d96 100644
--- a/externals/grill/flext/source/flattr_ed.cpp
+++ b/externals/grill/flext/source/flattr_ed.cpp
@@ -64,9 +64,6 @@ void flext_base::SetAttrEditor(t_classid c)
widgetbehavior.w_clickfn = text_widgetbehavior.w_clickfn;
#endif
- widgetbehavior.w_visfn = cb_GfxVis;
- class_setwidget(c, &widgetbehavior);
-
#if PD_MINOR_VERSION >= 37
class_setpropertiesfn(c,cb_GfxProperties);
class_setsavefn(c,cb_GfxSave);
@@ -75,6 +72,9 @@ void flext_base::SetAttrEditor(t_classid c)
widgetbehavior.w_savefn = cb_GfxSave;
#endif
+ widgetbehavior.w_visfn = cb_GfxVis;
+ class_setwidget(c, &widgetbehavior);
+
// generate the script for the property dialog
sys_gui(
@@ -411,29 +411,33 @@ void flext_base::cb_GfxProperties(t_gobj *c, t_glist *)
//! Strip the attributes off the object command line
void flext_base::cb_GfxVis(t_gobj *c, t_glist *gl, int vis)
{
- t_text *x = (t_text *)c;
-
- FLEXT_ASSERT(x->te_binbuf);
-
- int argc = binbuf_getnatom(x->te_binbuf);
- t_atom *argv = binbuf_getvec(x->te_binbuf);
- int cnt = CheckAttrib(argc,argv);
-
- if(cnt) {
- t_binbuf *nb = binbuf_new();
- binbuf_restore(nb,cnt,argv);
- binbuf_free(x->te_binbuf);
- x->te_binbuf = nb;
- }
-
- t_rtext *rt = glist_findrtext(gl,x);
- rtext_retext(rt);
-
-#ifdef FLEXT_CLONEWIDGET
- text_widgetbehavior.w_visfn(c,gl,vis);
-#else
- ori_vis(c,gl,vis);
-#endif
+ // show object if it's not a GOP
+ if(!gl->gl_isgraph || gl->gl_havewindow) {
+
+ t_text *x = (t_text *)c;
+ FLEXT_ASSERT(x->te_binbuf);
+
+ int argc = binbuf_getnatom(x->te_binbuf);
+ t_atom *argv = binbuf_getvec(x->te_binbuf);
+ int cnt = CheckAttrib(argc,argv);
+
+ if(cnt) {
+ t_binbuf *nb = binbuf_new();
+ binbuf_restore(nb,cnt,argv);
+ binbuf_free(x->te_binbuf);
+ x->te_binbuf = nb;
+ }
+
+ t_rtext *rt = glist_findrtext(gl,x);
+ rtext_retext(rt);
+
+ // now display the changed text with the normal drawing function
+ #ifdef FLEXT_CLONEWIDGET
+ text_widgetbehavior.w_visfn(c,gl,vis);
+ #else
+ ori_vis(c,gl,vis);
+ #endif
+ }
}
static void BinbufAdd(t_binbuf *b,const t_atom &at)
diff --git a/externals/grill/flext/source/flbase.h b/externals/grill/flext/source/flbase.h
index 789a0855..594bfbfc 100644
--- a/externals/grill/flext/source/flbase.h
+++ b/externals/grill/flext/source/flbase.h
@@ -139,9 +139,8 @@ class FLEXT_SHARE FLEXT_CLASSDEF(flext_obj):
t_canvas *thisCanvas() const { return m_canvas; }
//! Get the PD or Max/MSP object
- t_sigobj *thisHdr() { return &x_obj->obj; }
- //! Get the PD or Max/MSP object
- const t_sigobj *thisHdr() const { return &x_obj->obj; }
+ t_sigobj *thisHdr() { FLEXT_ASSERT(x_obj); return &x_obj->obj; }
+ const t_sigobj *thisHdr() const { FLEXT_ASSERT(x_obj); return &x_obj->obj; }
//! Get the class name (as a string)
const char *thisName() const { return GetString(m_name); }
//! Get the class name (as a symbol)
@@ -150,9 +149,9 @@ class FLEXT_SHARE FLEXT_CLASSDEF(flext_obj):
//! Get the class pointer
#if FLEXT_SYS == FLEXT_SYS_PD
- t_class *thisClass() const { return (t_class *)((t_object *)(x_obj))->te_g.g_pd; }
+ t_class *thisClass() const { FLEXT_ASSERT(x_obj); return (t_class *)((t_object *)(x_obj))->te_g.g_pd; }
#elif FLEXT_SYS == FLEXT_SYS_MAX
- t_class *thisClass() const { return (t_class *)(((t_tinyobject *)x_obj)->t_messlist-1); }
+ t_class *thisClass() const { FLEXT_ASSERT(x_obj); return (t_class *)(((t_tinyobject *)x_obj)->t_messlist-1); }
#elif FLEXT_SYS == FLEXT_SYS_JMAX
t_class *thisClass() const { return fts_object_get_class((fts_object_t *)thisHdr()); }
#else
diff --git a/externals/grill/flext/source/fldefs.h b/externals/grill/flext/source/fldefs.h
index 66d50c17..f0e37ab8 100644
--- a/externals/grill/flext/source/fldefs.h
+++ b/externals/grill/flext/source/fldefs.h
@@ -29,6 +29,8 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#define FLEXT_CAST static_cast
#endif
+//! @} FLEXT_DEFS
+
#include "fldefs_hdr.h"
#include "fldefs_setup.h"
@@ -65,8 +67,4 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#endif // FLEXT_ATTRIBUTES
-
-
-//! @} FLEXT_DEFS
-
#endif // __FLEXT_DEFS_H
diff --git a/externals/grill/flext/source/fldefs_attradd.h b/externals/grill/flext/source/fldefs_attradd.h
index db0ce82b..50aef3cb 100644
--- a/externals/grill/flext/source/fldefs_attradd.h
+++ b/externals/grill/flext/source/fldefs_attradd.h
@@ -18,6 +18,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
/*! \defgroup FLEXT_D_CADDATTR Announce object attributes at class scope
+ \ingroup FLEXT_D_ATTRIB
\note These can only be used at class construction time
@{
*/
@@ -67,6 +68,7 @@ AddAttrib(CL,NAME,(bool (*)(flext_base *,int &))(FLEXT_GET_PRE(FUN)),(bool (*)(f
/*! \defgroup FLEXT_D_ADDATTR Announce object attributes
+ \ingroup FLEXT_D_ATTRIB
\note These can only be used at object construction time
\note (in constructor or in Init() function before call to parent's Init())
@{
diff --git a/externals/grill/flext/source/fldefs_attrcb.h b/externals/grill/flext/source/fldefs_attrcb.h
index 1c147613..cf9aec4c 100644
--- a/externals/grill/flext/source/fldefs_attrcb.h
+++ b/externals/grill/flext/source/fldefs_attrcb.h
@@ -35,6 +35,7 @@ static bool FLEXT_GET_PRE(FUN)(flext_base *c,TP &arg) \
/*! \defgroup FLEXT_DA_CALLSET Definition of attribute set handlers
+ \ingroup FLEXT_D_ATTRIB
@{
*/
@@ -75,6 +76,7 @@ static bool FLEXT_SET_PRE(FUN)(flext_base *c,AtomList *&arg) \
//! @} FLEXT_DA_CALLSET
/*! \defgroup FLEXT_DA_CALLGET Definition of attribute get handlers
+ \ingroup FLEXT_D_ATTRIB
@{
*/
@@ -116,6 +118,7 @@ static bool FLEXT_GET_PRE(FUN)(flext_base *c,AtomList *&arg) \
/*! \defgroup FLEXT_DA_CALLVAR Definition of attribute transfer handlers (both get and set)
+ \ingroup FLEXT_D_ATTRIB
@{
*/
diff --git a/externals/grill/flext/source/fldefs_attrvar.h b/externals/grill/flext/source/fldefs_attrvar.h
index 89592c29..c63fbb35 100644
--- a/externals/grill/flext/source/fldefs_attrvar.h
+++ b/externals/grill/flext/source/fldefs_attrvar.h
@@ -17,14 +17,14 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#define __FLEXT_DEFS_ATTRVAR_H
-/*! \brief Declare an implicite attribute set function
+/*! \brief Declare an implicit attribute set function
\internal
*/
#define FLEXT_ATTRSET_(VAR,TP) \
static bool FLEXT_SET_PRE(VAR)(flext_base *c,TP &arg) \
{ FLEXT_CAST<thisType *>(c)->VAR = arg; return true; }
-/*! \brief Declare an implicite attribute get function
+/*! \brief Declare an implicit attribute get function
\internal
*/
#define FLEXT_ATTRGET_(VAR,TP) \
@@ -33,26 +33,27 @@ static bool FLEXT_GET_PRE(VAR)(flext_base *c,TP &arg) \
-/*! \defgroup FLEXT_DA_ATTRSET Definition of implicite attribute set handlers
+/*! \defgroup FLEXT_DA_ATTRSET Definition of implicit attribute set handlers
+ \ingroup FLEXT_D_ATTRIB
@{
*/
-//! Declare an implicite set function for a float attribute
+//! Declare an implicit set function for a float attribute
#define FLEXT_ATTRSET_F(VAR) \
\
FLEXT_ATTRSET_(VAR,float)
-//! Declare an implicite set function for an integer attribute
+//! Declare an implicit set function for an integer attribute
#define FLEXT_ATTRSET_I(VAR) \
\
FLEXT_ATTRSET_(VAR,int)
-//! Declare an implicite set function for a symbol attribute
+//! Declare an implicit set function for a symbol attribute
#define FLEXT_ATTRSET_S(VAR) \
\
FLEXT_ATTRSET_(VAR,const t_symbol *)
-//! Declare an implicite set function for a boolean attribute
+//! Declare an implicit set function for a boolean attribute
#define FLEXT_ATTRSET_B(VAR) \
\
FLEXT_ATTRSET_(VAR,bool)
@@ -61,38 +62,39 @@ static bool FLEXT_SET_PRE(VAR)(flext_base *c,int &arg) \
{ FLEXT_CAST<thisType *>(c)->VAR = arg != 0; return true; }
*/
-//! Declare an implicite set function for an enum attribute
+//! Declare an implicit set function for an enum attribute
#define FLEXT_ATTRSET_E(VAR,TP) \
\
FLEXT_ATTRSET_(VAR,TP)
-//! Declare an implicite set function for a variable list attribute
+//! Declare an implicit set function for a variable list attribute
#define FLEXT_ATTRSET_V(VAR) \
static bool FLEXT_SET_PRE(VAR)(flext_base *c,AtomList *&arg) \
{ FLEXT_CAST<thisType *>(c)->VAR = *arg; return true; }
//! @} FLEXT_DA_ATTRSET
-/*! \defgroup FLEXT_DA_ATTRGET Definition of implicite attribute get handlers
+/*! \defgroup FLEXT_DA_ATTRGET Definition of implicit attribute get handlers
+ \ingroup FLEXT_D_ATTRIB
@{
*/
-//! Declare an implicite get function for a float attribute
+//! Declare an implicit get function for a float attribute
#define FLEXT_ATTRGET_F(VAR) \
\
FLEXT_ATTRGET_(VAR,float)
-//! Declare an implicite get function for an integer attribute
+//! Declare an implicit get function for an integer attribute
#define FLEXT_ATTRGET_I(VAR) \
\
FLEXT_ATTRGET_(VAR,int)
-//! Declare an implicite get function for a symbol attribute
+//! Declare an implicit get function for a symbol attribute
#define FLEXT_ATTRGET_S(VAR) \
\
FLEXT_ATTRGET_(VAR,const t_symbol *)
-//! Declare an implicite get function for a boolean attribute
+//! Declare an implicit get function for a boolean attribute
#define FLEXT_ATTRGET_B(VAR) \
\
FLEXT_ATTRGET_(VAR,bool)
@@ -101,12 +103,12 @@ static bool FLEXT_GET_PRE(VAR)(flext_base *c,int &arg) \
{ arg = FLEXT_CAST<thisType *>(c)->VAR?1:0; return true; }
*/
-//! Declare an implicite get function for an enum attribute
+//! Declare an implicit get function for an enum attribute
#define FLEXT_ATTRGET_E(VAR,TP) \
\
FLEXT_ATTRGET_(VAR,TP)
-//! Declare an implicite get function for a variable list attribute
+//! Declare an implicit get function for a variable list attribute
#define FLEXT_ATTRGET_V(VAR) \
static bool FLEXT_GET_PRE(VAR)(flext_base *c,AtomList *&arg) \
{ *arg = FLEXT_CAST<thisType *>(c)->VAR; return true; }
@@ -114,36 +116,37 @@ static bool FLEXT_GET_PRE(VAR)(flext_base *c,AtomList *&arg) \
//! @} FLEXT_DA_ATTRGET
-/*! \defgroup FLEXT_DA_ATTRVAR Definition of implicite attribute transfer handlers (both get and set)
+/*! \defgroup FLEXT_DA_ATTRVAR Definition of implicit attribute transfer handlers (both get and set)
+ \ingroup FLEXT_D_ATTRIB
@{
*/
-//! Declare both implicite get and set functions for a float attribute
+//! Declare both implicit get and set functions for a float attribute
#define FLEXT_ATTRVAR_F(VAR) \
\
FLEXT_ATTRGET_F(VAR) FLEXT_ATTRSET_F(VAR)
-//! Declare both implicite get and set functions for an integer attribute
+//! Declare both implicit get and set functions for an integer attribute
#define FLEXT_ATTRVAR_I(VAR) \
\
FLEXT_ATTRGET_I(VAR) FLEXT_ATTRSET_I(VAR)
-//! Declare both implicite get and set functions for a symbol attribute
+//! Declare both implicit get and set functions for a symbol attribute
#define FLEXT_ATTRVAR_S(VAR) \
\
FLEXT_ATTRGET_S(VAR) FLEXT_ATTRSET_S(VAR)
-//! Declare both implicite get and set functions for a boolean attribute
+//! Declare both implicit get and set functions for a boolean attribute
#define FLEXT_ATTRVAR_B(VAR) \
\
FLEXT_ATTRGET_B(VAR) FLEXT_ATTRSET_B(VAR)
-//! Declare both implicite get and set functions for an enum attribute
+//! Declare both implicit get and set functions for an enum attribute
#define FLEXT_ATTRVAR_E(VAR,TP) \
\
FLEXT_ATTRGET_(VAR,TP) FLEXT_ATTRSET_(VAR,TP)
-//! Declare both implicite get and set functions for a variable list attribute
+//! Declare both implicit get and set functions for a variable list attribute
#define FLEXT_ATTRVAR_V(VAR) \
\
FLEXT_ATTRGET_V(VAR) FLEXT_ATTRSET_V(VAR)
diff --git a/externals/grill/flext/source/fldefs_methadd.h b/externals/grill/flext/source/fldefs_methadd.h
index f2f2d62b..e9cb93d4 100644
--- a/externals/grill/flext/source/fldefs_methadd.h
+++ b/externals/grill/flext/source/fldefs_methadd.h
@@ -18,6 +18,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
/*! \defgroup FLEXT_D_CADDMETHOD Add flext methods within class scope
+ \ingroup FLEXT_D_METHOD
\note These can only be used at class construction time
@{
*/
@@ -108,6 +109,7 @@ FLEXT_CADDMETHOD_3(CL,IX,M_TAG,M_FUN,int,int,int)
/*! \defgroup FLEXT_D_ADDMETHOD Add flext methods
+ \ingroup FLEXT_D_METHOD
\note These can only be used at object construction time
\note (in constructor or in Init() function before call to parent's Init())
@{
diff --git a/externals/grill/flext/source/fldefs_methcall.h b/externals/grill/flext/source/fldefs_methcall.h
index 8085e9d9..8b6e1bde 100644
--- a/externals/grill/flext/source/fldefs_methcall.h
+++ b/externals/grill/flext/source/fldefs_methcall.h
@@ -18,6 +18,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
/*! \defgroup FLEXT_D_CALLMETHOD Call flext methods manually
+ \ingroup FLEXT_D_METHOD
@{
*/
diff --git a/externals/grill/flext/source/fldefs_methcb.h b/externals/grill/flext/source/fldefs_methcb.h
index de279d92..45763f59 100644
--- a/externals/grill/flext/source/fldefs_methcb.h
+++ b/externals/grill/flext/source/fldefs_methcb.h
@@ -18,6 +18,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
/*! \defgroup FLEXT_D_CALLBACK Declare callbacks for class methods
+ \ingroup FLEXT_D_METHOD
@{
*/
diff --git a/externals/grill/flext/source/fldefs_setup.h b/externals/grill/flext/source/fldefs_setup.h
index e00cc943..255b18ad 100644
--- a/externals/grill/flext/source/fldefs_setup.h
+++ b/externals/grill/flext/source/fldefs_setup.h
@@ -8,7 +8,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
*/
-/*! \file fldef_setup.h
+/*! \file fldefs_setup.h
\brief This file contains all #defines for actual usage
*/
@@ -27,6 +27,8 @@ WARRANTIES, see the file, "license.txt," in this distribution.
- There may be additional names (aliases) appened, separated by spaces
- There may be a help path prepended, separated by a colon
- This help path doesn't work for Max/MSP. There you'll have to use a object mapping file (Max/MSP version >= 4.2)
+
+ @{
*/
diff --git a/externals/grill/flext/source/fldoxygen.h b/externals/grill/flext/source/fldoxygen.h
index 202176ea..27b000c0 100644
--- a/externals/grill/flext/source/fldoxygen.h
+++ b/externals/grill/flext/source/fldoxygen.h
@@ -150,7 +150,7 @@ private:
For each method that shall be exposed to the realtime-system (for receiving messages) and
every attribute (for setting and getting values) callbacks have to be set up.
-The functions in the groups "\ref FLEXT_D_CALLBACK" and "\ref FLEXT_D_ATTRIB" allow for their
+The functions in the groups \ref FLEXT_D_CALLBACK and \ref FLEXT_D_ATTRIB allow for their
convenient definition.
\verbatim
diff --git a/externals/grill/flext/source/flqueue.cpp b/externals/grill/flext/source/flqueue.cpp
index 2d10aeee..747c4cc8 100755
--- a/externals/grill/flext/source/flqueue.cpp
+++ b/externals/grill/flext/source/flqueue.cpp
@@ -66,8 +66,8 @@ void qmsg::Clear()
tp = tp_none;
}
-static int qcnt = 0;
-static qmsg *qhead = NULL,*qtail = NULL;
+static volatile int qcnt = 0;
+static qmsg *volatile qhead = NULL,*volatile qtail = NULL;
#ifdef FLEXT_QTHR
static flext::ThrCond qthrcond;
@@ -275,13 +275,15 @@ void flext_base::StartQueue()
void flext_base::ToQueueBang(int o) const
{
- qmsg *m = new qmsg(const_cast<flext_base *>(this));
+ FLEXT_ASSERT(o >= 0);
+ qmsg *m = new qmsg(const_cast<flext_base *>(this));
m->SetBang(o);
Queue(m);
}
void flext_base::ToQueueFloat(int o,float f) const
{
+ FLEXT_ASSERT(o >= 0);
qmsg *m = new qmsg(const_cast<flext_base *>(this));
m->SetFloat(o,f);
Queue(m);
@@ -289,6 +291,7 @@ void flext_base::ToQueueFloat(int o,float f) const
void flext_base::ToQueueInt(int o,int f) const
{
+ FLEXT_ASSERT(o >= 0);
qmsg *m = new qmsg(const_cast<flext_base *>(this));
m->SetInt(o,f);
Queue(m);
@@ -296,6 +299,7 @@ void flext_base::ToQueueInt(int o,int f) const
void flext_base::ToQueueSymbol(int o,const t_symbol *s) const
{
+ FLEXT_ASSERT(o >= 0);
qmsg *m = new qmsg(const_cast<flext_base *>(this));
m->SetSymbol(o,s);
Queue(m);
@@ -303,6 +307,7 @@ void flext_base::ToQueueSymbol(int o,const t_symbol *s) const
void flext_base::ToQueueList(int o,int argc,const t_atom *argv) const
{
+ FLEXT_ASSERT(o >= 0);
qmsg *m = new qmsg(const_cast<flext_base *>(this));
m->SetList(o,argc,argv);
Queue(m);
@@ -310,6 +315,7 @@ void flext_base::ToQueueList(int o,int argc,const t_atom *argv) const
void flext_base::ToQueueAnything(int o,const t_symbol *s,int argc,const t_atom *argv) const
{
+ FLEXT_ASSERT(o >= 0);
qmsg *m = new qmsg(const_cast<flext_base *>(this));
m->SetAny(o,s,argc,argv);
Queue(m);
@@ -318,31 +324,37 @@ void flext_base::ToQueueAnything(int o,const t_symbol *s,int argc,const t_atom *
void flext_base::ToSelfBang(int n) const
{
+ FLEXT_ASSERT(n >= 0);
ToQueueBang(-1-n);
}
void flext_base::ToSelfFloat(int n,float f) const
{
+ FLEXT_ASSERT(n >= 0);
ToQueueFloat(-1-n,f);
}
void flext_base::ToSelfInt(int n,int f) const
{
+ FLEXT_ASSERT(n >= 0);
ToQueueInt(-1-n,f);
}
void flext_base::ToSelfSymbol(int n,const t_symbol *s) const
{
+ FLEXT_ASSERT(n >= 0);
ToQueueSymbol(-1-n,s);
}
void flext_base::ToSelfList(int n,int argc,const t_atom *argv) const
{
+ FLEXT_ASSERT(n >= 0);
ToQueueList(-1-n,argc,argv);
}
void flext_base::ToSelfAnything(int n,const t_symbol *s,int argc,const t_atom *argv) const
{
+ FLEXT_ASSERT(n >= 0);
ToQueueAnything(-1-n,s,argc,argv);
}
diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h
index b135b613..283466ac 100644
--- a/externals/grill/flext/source/flsupport.h
+++ b/externals/grill/flext/source/flsupport.h
@@ -18,6 +18,10 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#include "flstdc.h"
#include <new>
+/*! \defgroup FLEXT_SUPPORT Flext support classes
+ @{
+*/
+
class FLEXT_SHARE FLEXT_CLASSDEF(flext_root);
typedef class FLEXT_CLASSDEF(flext_root) flext_root;
@@ -65,6 +69,7 @@ public:
//! @} FLEXT_S_MEMORY
};
+
#if !defined(_MSC_VER) && !defined(__BORLANDC__)
#define NEWTHROW throw(std::bad_alloc)
#define DELTHROW throw()
@@ -1106,6 +1111,6 @@ inline bool operator <=(const t_atom &a,const t_atom &b) { return FLEXT_CLASSDEF
inline bool operator >(const t_atom &a,const t_atom &b) { return FLEXT_CLASSDEF(flext)::CmpAtom(a,b) > 0; }
inline bool operator >=(const t_atom &a,const t_atom &b) { return FLEXT_CLASSDEF(flext)::CmpAtom(a,b) >= 0; }
-
+//! @} // FLEXT_SUPPORT
#endif
diff --git a/externals/grill/pool/pool.cpp b/externals/grill/pool/pool.cpp
index 52c6a60c..d7491c0d 100644
--- a/externals/grill/pool/pool.cpp
+++ b/externals/grill/pool/pool.cpp
@@ -688,7 +688,7 @@ BL pooldir::LdDirXML(istream &is,I depth,BL mkdir)
}
else if(tag.type == xmltag::t_end) {
if(d.Count())
- d.Set(d.Count()-1,d.Atoms(),0,true);
+ d.Part(0,d.Count()-1);
else
post("pool - superfluous </dir> in XML data");
}
diff --git a/externals/grill/pool/pool.cw b/externals/grill/pool/pool.cw
index 0169ea73..8f88ff0c 100755
--- a/externals/grill/pool/pool.cw
+++ b/externals/grill/pool/pool.cw
Binary files differ
diff --git a/externals/grill/py/pd/attr-1.pd b/externals/grill/py/pd/attr-1.pd
new file mode 100644
index 00000000..3a870839
--- /dev/null
+++ b/externals/grill/py/pd/attr-1.pd
@@ -0,0 +1,32 @@
+#N canvas 114 127 683 413 12;
+#X obj 224 370 pyext simple ex3;
+#X obj 365 370 print A;
+#X msg 252 180 get tmp;
+#X msg 369 210 get _inlets;
+#X msg 253 204 set tmp 3;
+#X msg 368 234 set _inlets 4;
+#X msg 18 179 dir;
+#X msg 15 282 getattributes;
+#X msg 15 309 getmethods;
+#X msg 18 207 dir+;
+#X text 15 48 This demonstrates the usage of attributes. See the simple.py
+file.;
+#X text 252 161 access a class variable;
+#X text 368 191 try to get/set internal stuff;
+#X text 479 234 (NOT allowed!);
+#X text 16 15 py/pyext - Python script objects \, (C)2003 Thomas Grill
+;
+#X text 16 261 get attributes and methods;
+#X text 51 178 Python module dict;
+#X text 59 208 Python class dict;
+#X text 17 101 All attribute-related methods dump eventual output to
+the attribute outlet (which is the right-most one);
+#X connect 0 1 1 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 0;
diff --git a/externals/grill/py/py.dsp b/externals/grill/py/py.dsp
deleted file mode 100644
index d6613064..00000000
--- a/externals/grill/py/py.dsp
+++ /dev/null
@@ -1,229 +0,0 @@
-# Microsoft Developer Studio Project File - Name="py" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** NICHT BEARBEITEN **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=py - Win32 Threads Debug
-!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
-!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
-!MESSAGE
-!MESSAGE NMAKE /f "py.mak".
-!MESSAGE
-!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
-!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
-!MESSAGE
-!MESSAGE NMAKE /f "py.mak" CFG="py - Win32 Threads Debug"
-!MESSAGE
-!MESSAGE Für die Konfiguration stehen zur Auswahl:
-!MESSAGE
-!MESSAGE "py - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "py - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "py - Win32 Threads Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "py - Win32 Threads Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "py"
-# PROP Scc_LocalPath "."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "py - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "pd-msvc\r"
-# PROP Intermediate_Dir "pd-msvc\r"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PY_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /W3 /O2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /I "C:\Programme\prog\Python22\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D FLEXT_SYS=2 /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc07 /d "NDEBUG"
-# ADD RSC /l 0xc07 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\pd-msvc" /libpath:"C:\Programme\prog\Python22\libs"
-
-!ELSEIF "$(CFG)" == "py - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "pd-msvc\d"
-# PROP Intermediate_Dir "pd-msvc\d"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PY_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GR /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /I "C:\Programme\prog\Python22\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D FLEXT_SYS=2 /FR /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc07 /d "_DEBUG"
-# ADD RSC /l 0xc07 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib pd.lib flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\pd-msvc" /libpath:"f:\prog\packs\Python-2.2.1\PCbuild"
-
-!ELSEIF "$(CFG)" == "py - Win32 Threads Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "py___Win32_Threads_Release"
-# PROP BASE Intermediate_Dir "py___Win32_Threads_Release"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "pd-msvc\tr"
-# PROP Intermediate_Dir "pd-msvc\tr"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GR /GX /O2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext" /I "C:\Programme\prog\Python22\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GR /O2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /I "C:\Programme\prog\Python22\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D FLEXT_SYS=2 /D "FLEXT_THREADS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc07 /d "NDEBUG"
-# ADD RSC /l 0xc07 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\msvc" /libpath:"C:\Programme\prog\Python22\libs"
-# ADD LINK32 kernel32.lib user32.lib pd.lib flext_t-pdwin.lib pthreadVC.lib /nologo /dll /machine:I386 /out:"pd-msvc\py.dll" /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\pd-msvc" /libpath:"C:\Programme\prog\Python22\libs"
-
-!ELSEIF "$(CFG)" == "py - Win32 Threads Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "py___Win32_Threads_Debug"
-# PROP BASE Intermediate_Dir "py___Win32_Threads_Debug"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "pd-msvc\td"
-# PROP Intermediate_Dir "pd-msvc\td"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext" /I "C:\Programme\prog\Python22\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /FR /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /I "C:\Programme\prog\Python22\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D FLEXT_SYS=2 /D "FLEXT_THREADS" /FR /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc07 /d "_DEBUG"
-# ADD RSC /l 0xc07 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\msvc-debug" /libpath:"f:\prog\packs\Python-2.2.1\PCbuild"
-# ADD LINK32 kernel32.lib user32.lib pd.lib flext_td-pdwin.lib pthreadVC.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\pd-msvc" /libpath:"f:\prog\packs\Python-2.2.1\PCbuild"
-
-!ENDIF
-
-# Begin Target
-
-# Name "py - Win32 Release"
-# Name "py - Win32 Debug"
-# Name "py - Win32 Threads Release"
-# Name "py - Win32 Threads Debug"
-# Begin Group "scripts"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\scripts\script.py
-# End Source File
-# Begin Source File
-
-SOURCE=.\scripts\sendrecv.py
-# End Source File
-# Begin Source File
-
-SOURCE=.\scripts\simple.py
-# End Source File
-# Begin Source File
-
-SOURCE=.\scripts\tcltk.py
-# End Source File
-# Begin Source File
-
-SOURCE=.\scripts\threads.py
-# End Source File
-# End Group
-# Begin Group "doc"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\gpl.txt
-# End Source File
-# Begin Source File
-
-SOURCE=.\license.txt
-# End Source File
-# Begin Source File
-
-SOURCE=.\readme.txt
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\source\bound.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\clmeth.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\main.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\main.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\modmeth.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\py.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\pyargs.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\pyext.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\pyext.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\source\register.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/externals/grill/py/source/bound.cpp b/externals/grill/py/source/bound.cpp
index c0e8c35a..debbf5dd 100644
--- a/externals/grill/py/source/bound.cpp
+++ b/externals/grill/py/source/bound.cpp
@@ -123,6 +123,9 @@ PyObject *pyext::pyext_unbind(PyObject *,PyObject *args)
V pyext::ClearBinding()
{
+ // in case the object couldn't be constructed...
+ if(!pyobj) return;
+
void *data = NULL;
const t_symbol *sym = NULL;
diff --git a/externals/grill/xsample/config-pd-linux.txt b/externals/grill/xsample/config-pd-linux.txt
index e89b6e98..be08468b 100755
--- a/externals/grill/xsample/config-pd-linux.txt
+++ b/externals/grill/xsample/config-pd-linux.txt
@@ -4,6 +4,7 @@
# your c++ compiler (if not g++)
#CXX=g++
+CXX=g++-3.2
# where does the PD installation reside?
PD=/usr/local/lib/pd
diff --git a/externals/grill/xsample/maxmsp/xgroove~.help b/externals/grill/xsample/maxmsp/xgroove~.help
index 6b25dcda..a1cb7bbc 100644
--- a/externals/grill/xsample/maxmsp/xgroove~.help
+++ b/externals/grill/xsample/maxmsp/xgroove~.help
Binary files differ
diff --git a/externals/grill/xsample/xsample.cw b/externals/grill/xsample/xsample.cw
index f18d3a83..b205fd6b 100755
--- a/externals/grill/xsample/xsample.cw
+++ b/externals/grill/xsample/xsample.cw
Binary files differ