diff options
Diffstat (limited to 'externals/grill/flext')
59 files changed, 502 insertions, 409 deletions
diff --git a/externals/grill/flext/flext.cw b/externals/grill/flext/flext.cw Binary files differindex 6e5f4625..e3b996b4 100644 --- a/externals/grill/flext/flext.cw +++ b/externals/grill/flext/flext.cw diff --git a/externals/grill/flext/flext.doxy b/externals/grill/flext/flext.doxy index a1aa48f9..7e9dbdb0 100644 --- a/externals/grill/flext/flext.doxy +++ b/externals/grill/flext/flext.doxy @@ -163,7 +163,8 @@ PREDEFINED = FLEXT_THREADS \ MAXMSP \ NT \ PD \ - unix + unix \ + FLEXT_ATTRIBUTES EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- diff --git a/externals/grill/flext/makefile.pd-cygwin b/externals/grill/flext/makefile.pd-cygwin index 31cce707..3cfb7129 100644 --- a/externals/grill/flext/makefile.pd-cygwin +++ b/externals/grill/flext/makefile.pd-cygwin @@ -17,10 +17,11 @@ include $(CONFIG) # compiler+linker stuff -INCLUDES=$(PDPATH)/src $(SNDOBJ) +INCLUDES=$(PDPATH)/src FLAGS=-DFLEXT_SYS=2 -CFLAGS=-O6 -mcpu=pentiumpro -CFLAGS_D=-mcpu=pentiumpro -g +CFLAGS=-O6 -fno-exceptions -fno-rtti +CFLAGS+=-mcpu=pentium3 -msse # cygwin gcc 3.2 +CFLAGS_D=-g CFLAGS_T=-DFLEXT_THREADS LIBS= @@ -36,11 +37,15 @@ NAME=flext include make-files.txt ifdef SNDOBJ -_SRCS=$(SRCS) $(SRCS_SNDOBJ) -_HDRS=$(HDRS) $(HDRS_SNDOBJ) -else -_SRCS=$(SRCS) -_HDRS=$(HDRS) +INCLUDES+=$(SNDOBJ) +SRCS+=$(SRCS_SNDOBJ) +HDRS+=$(HDRS_SNDOBJ) +endif + +ifdef STK +INCLUDES+=$(STK) +SRCS+=$(SRCS_STK) +HDRS+=$(HDRS_STK) endif MAKEFILE=makefile.pd-cygwin @@ -54,7 +59,7 @@ all: $(TARGDIR) $(TARGET) $(TARGET_D) # $(TARGET_T) $(TARGET_TD) $(TARGDIR): -mkdir $(TARGDIR) -$(SRCS): $(_HDRS) $(IHDRS) $(MAKEFILE) $(CONFIG) +$(SRCS): $(HDRS) $(IHDRS) $(MAKEFILE) $(CONFIG) touch $@ $(TARGDIR)/%.o : source/%.cpp @@ -69,19 +74,19 @@ $(TARGDIR)/%.to : source/%.cpp $(TARGDIR)/%.tdo : source/%.cpp $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) source) $< -o $@ -$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(_SRCS)) +$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) ar rc $@ $^ chmod 755 $@ -$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(_SRCS)) +$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(SRCS)) ar rc $@ $^ chmod 755 $@ -$(TARGET_T) : $(patsubst %.cpp,$(TARGDIR)/%.to,$(_SRCS)) +$(TARGET_T) : $(patsubst %.cpp,$(TARGDIR)/%.to,$(SRCS)) ar rc $@ $^ chmod 755 $@ -$(TARGET_TD) : $(patsubst %.cpp,$(TARGDIR)/%.tdo,$(_SRCS)) +$(TARGET_TD) : $(patsubst %.cpp,$(TARGDIR)/%.tdo,$(SRCS)) ar rc $@ $^ chmod 755 $@ @@ -96,7 +101,7 @@ $(INSTDIR): install:: $(INSTDIR) endif -install:: $(TARGET) $(TARGET_D) $(patsubst %,source/%,$(_HDRS)) # $(TARGET_T) $(TARGET_TD) +install:: $(TARGET) $(TARGET_D) $(patsubst %,source/%,$(HDRS)) # $(TARGET_T) $(TARGET_TD) cp $^ $(INSTDIR) diff --git a/externals/grill/flext/makefile.pd-darwin b/externals/grill/flext/makefile.pd-darwin index 89b77f00..d17e0774 100644 --- a/externals/grill/flext/makefile.pd-darwin +++ b/externals/grill/flext/makefile.pd-darwin @@ -15,7 +15,7 @@ include $(CONFIG) # compiler+linker stuff INCLUDES=$(PDPATH) $(SNDOBJ) FLAGS=-DFLEXT_SYS=2 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes # -maltivec -CFLAGS=-O6 +CFLAGS=-O6 -fno-exceptions -fno-rtti CFLAGS_D=-g -Wshadow CFLAGS_T=-DFLEXT_THREADS LIBS= diff --git a/externals/grill/flext/makefile.pd-linux b/externals/grill/flext/makefile.pd-linux index 1230c332..c003e9e1 100644 --- a/externals/grill/flext/makefile.pd-linux +++ b/externals/grill/flext/makefile.pd-linux @@ -15,7 +15,9 @@ include $(CONFIG) # compiler+linker stuff INCLUDES=$(PDPATH) $(SNDOBJ) $(STK) FLAGS=-DFLEXT_SYS=2 -CFLAGS=-O6 -mcpu=pentiumpro +CFLAGS=-O6 -fno-exceptions -fno-rtti +CFLAGS+=-mcpu=pentiumpro # gcc 2.95 +# CFLAGS+=-mcpu=pentium3 -msse # gcc 3.2 CFLAGS_D=-mcpu=pentiumpro -g CFLAGS_T=-DFLEXT_THREADS LIBS= diff --git a/externals/grill/flext/readme.txt b/externals/grill/flext/readme.txt index 64e3cc31..1e566d19 100644 --- a/externals/grill/flext/readme.txt +++ b/externals/grill/flext/readme.txt @@ -29,7 +29,7 @@ Package files: - flbuf.cpp: buffer object handling for base classes - fllib.cpp: code for handling external libraries in MaxMSP - fldefs.h: definitions for internal flext use -- flcwmax.h: trivial prefix header file for Max/MSP CodeWarrior projects +- flcwmax*.h: trivial prefix headers for Max/MSP CodeWarrior projects - flmspbuffer.h: MaxMSP's inofficial buffer.h included here for conveniance > for PD you need the pd source code (which is most likely part of the distribution) @@ -38,6 +38,9 @@ Package files: > if you choose to compile with SndObj support you will need the respective library > download from: http://www.may.ie/academic/music/musictec/SndObj/main.html +> if you choose to compile with STK support you will need the respective package and build a library +> download from: http://ccrma-www.stanford.edu/software/stk/ + ---------------------------------------------------------------------------- The package should at least compile (and is tested) with the following compilers: @@ -70,12 +73,22 @@ Be sure to define "FLEXT_SYS=1" - alternatively use the prefix file "flcwmax.h" o Metrowerks CodeWarrior V6: edit & use the "flext.cw" project file +You must have the following "Source Trees" defined: +"flext" - Pointing to the flext main directory +"Cycling74" - Pointing to the Cycling 74 SDK + Max/MSP - MacOSX: ------------------ Be sure to define "FLEXT_SYS=1" - alternatively use the prefix file "flcwmax-x.h" or "flcwmax-x-thr.h" for threading support. o Metrowerks CodeWarrior V6: edit & use the "flext.cw" project file +You must have the following "Source Trees" defined: +"OS X Volume" - Pointing to your OSX boot drive +"flext" - Pointing to the flext main directory +"Cycling74 OSX" - Pointing to the Cycling 74 SDK for xmax +"MP SDK" - Pointing to the Multiprocessing SDK (for threading support) + ---------------------------------------------------------------------------- Goals/features of the package: @@ -102,6 +115,8 @@ Version history: 0.4.1: - full port for Max@OSX - completely redesigned message and attribute handling: now hashed and much more efficient +- greatly enhanced object creation and destruction (esp. for library objects) +- class setup functions now take t_classid type arg... this is BACKWARDS-INCOMPATIBLE for Max/MSP - added some prerequisites for usage of flext as a shared library - completed Max/MSPs inlet/outlet assist description functionality - Max/MSP signal objects: fixed bug of reporting wrong number of inlets diff --git a/externals/grill/flext/source/flattr.cpp b/externals/grill/flext/source/flattr.cpp index 3a898498..014ffdcb 100644 --- a/externals/grill/flext/source/flattr.cpp +++ b/externals/grill/flext/source/flattr.cpp @@ -88,7 +88,7 @@ void flext_base::AddAttrib(const char *attr,metharg tp,methfun gfun,methfun sfun error("%s - attribute procession is not enabled!",thisName()); } -void flext_base::AddAttrib(t_class *c,const char *attr,metharg tp,methfun gfun,methfun sfun) +void flext_base::AddAttrib(t_classid c,const char *attr,metharg tp,methfun gfun,methfun sfun) { AddAttrib(ClAttrs(c),ClMeths(c),attr,tp,gfun,sfun); } @@ -106,9 +106,9 @@ int flext_base::ListAttr(AtomList &la) const for(int ai = 0; ai < a->Size(); ++ai) { for(item *l = a->Item(ai); l; l = l->nxt) { - attritem *a = (attritem *)l; - if(!a->BothExist() || a->IsGet()) - SetSymbol(la[ix++],a->tag); + attritem *aa = (attritem *)l; + if(!aa->BothExist() || aa->IsGet()) + SetSymbol(la[ix++],aa->tag); } } } diff --git a/externals/grill/flext/source/flbase.h b/externals/grill/flext/source/flbase.h index e89dd032..78e4818c 100644 --- a/externals/grill/flext/source/flbase.h +++ b/externals/grill/flext/source/flbase.h @@ -145,12 +145,27 @@ class FLEXT_SHARE flext_obj: //! Get the class name (as a symbol) const t_symbol *thisNameSym() const { return m_name; } + #if FLEXT_SYS == FLEXT_SYS_PD //! Get the class pointer - t_class *thisClass() { return (t_class *)((t_object *)(x_obj))->te_g.g_pd; } + t_class *thisClass() const { return (t_class *)((t_object *)(x_obj))->te_g.g_pd; } + + //! Typedef for unique class identifier + typedef t_class *t_classid; + //! Get unique id for object class + t_classid thisClassId() const { return thisClass(); } + //! Get class pointer from class id + static t_class *getClass(t_classid c) { return c; } #elif FLEXT_SYS == FLEXT_SYS_MAX //! Get the class pointer - t_class *thisClass() { return (t_class *)(((t_tinyobject *)x_obj)->t_messlist-1); } + t_class *thisClass() const { return (t_class *)(((t_tinyobject *)x_obj)->t_messlist-1); } + + //! Typedef for unique class identifier + typedef void *t_classid; + //! Get unique id for object class (for Max/MSP library object share the same (t_class *)!) + t_classid thisClassId() const; + //! Get class pointer from class id + static t_class *getClass(t_classid); #endif //! @} FLEXT_O_INFO @@ -201,7 +216,7 @@ class FLEXT_SHARE flext_obj: public: //! Creation callback - static void __setup__(t_class *) { flext::Setup(); } + static void __setup__(t_classid) { flext::Setup(); } /*! \brief This is a temporary holder \warning don't touch it! @@ -223,7 +238,7 @@ class FLEXT_SHARE flext_obj: // Definitions for library objects static void lib_init(const char *name,void setupfun(),bool attr); - static void obj_add(bool lib,bool dsp,bool attr,const char *idname,const char *names,void setupfun(t_class *),flext_obj *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...); + static void obj_add(bool lib,bool dsp,bool attr,const char *idname,const char *names,void setupfun(t_classid),flext_obj *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...); static flext_hdr *obj_new(const t_symbol *s,int argc,t_atom *argv); static void obj_free(flext_hdr *o); @@ -272,8 +287,8 @@ static flext_obj *__init__(int argc,t_atom *argv); \ static void __free__(flext_hdr *hdr) \ { flext_obj *mydata = hdr->data; delete mydata; \ hdr->flext_hdr::~flext_hdr(); } \ -static void __setup__(t_class *classPtr) { \ - PARENT_CLASS::__setup__(classPtr); } \ +static void __setup__(t_classid classid) { \ + PARENT_CLASS::__setup__(classid); } \ protected: \ static inline NEW_CLASS *thisObject(void *c) { return FLEXT_CAST<NEW_CLASS *>(((flext_hdr *)c)->data); } @@ -285,9 +300,9 @@ static flext_obj *__init__(int argc,t_atom *argv); \ static void __free__(flext_hdr *hdr) \ { flext_obj *mydata = hdr->data; delete mydata; \ hdr->flext_hdr::~flext_hdr(); } \ -static void __setup__(t_class *classPtr) \ -{ PARENT_CLASS::__setup__(classPtr); \ - NEW_CLASS::SETUPFUN(classPtr); } \ +static void __setup__(t_classid classid) \ +{ PARENT_CLASS::__setup__(classid); \ + NEW_CLASS::SETUPFUN(classid); } \ protected: \ static inline NEW_CLASS *thisObject(void *c) { return FLEXT_CAST<NEW_CLASS *>(((flext_hdr *)c)->data); } diff --git a/externals/grill/flext/source/flclass.h b/externals/grill/flext/source/flclass.h index 87e0a154..33c125f0 100644 --- a/externals/grill/flext/source/flclass.h +++ b/externals/grill/flext/source/flclass.h @@ -350,33 +350,33 @@ public: @{ */ - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_list,a_null); } - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_list,a_null); } - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_null); } // pure method - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,t_symbol *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,"anything",(methfun)m,a_any,a_null); } // anything - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,const t_symbol *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,"anything",(methfun)m,a_any,a_null); } // anything - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,t_symbol *&)) { AddMethod(ClMeths(c),inlet,"symbol",(methfun)m,a_symbol,a_null); } // single symbol - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,const t_symbol *&)) { AddMethod(ClMeths(c),inlet,"symbol",(methfun)m,a_symbol,a_null); } // single symbol - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,float &)) { AddMethod(ClMeths(c),inlet,"float",(methfun)m,a_float,a_null); } // single float - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,float &,float &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_float,a_float,a_null); } // list of 2 floats - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,float &,float &,float &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_float,a_float,a_float,a_null); } // list of 3 floats + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_list,a_null); } + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_list,a_null); } + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_null); } // pure method + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,t_symbol *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,"anything",(methfun)m,a_any,a_null); } // anything + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,const t_symbol *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,"anything",(methfun)m,a_any,a_null); } // anything + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,t_symbol *&)) { AddMethod(ClMeths(c),inlet,"symbol",(methfun)m,a_symbol,a_null); } // single symbol + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,const t_symbol *&)) { AddMethod(ClMeths(c),inlet,"symbol",(methfun)m,a_symbol,a_null); } // single symbol + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,float &)) { AddMethod(ClMeths(c),inlet,"float",(methfun)m,a_float,a_null); } // single float + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,float &,float &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_float,a_float,a_null); } // list of 2 floats + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,float &,float &,float &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_float,a_float,a_float,a_null); } // list of 3 floats #if FLEXT_SYS == FLEXT_SYS_PD - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,int &)) { AddMethod(ClMeths(c),inlet,"float",(methfun)m,a_int,a_null); } // single float + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,int &)) { AddMethod(ClMeths(c),inlet,"float",(methfun)m,a_int,a_null); } // single float #elif FLEXT_SYS == FLEXT_SYS_MAX - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,int &)) { AddMethod(ClMeths(c),inlet,"int",(methfun)m,a_int,a_null); } // single float + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,int &)) { AddMethod(ClMeths(c),inlet,"int",(methfun)m,a_int,a_null); } // single float #else #error #endif - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,int &,int &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_int,a_int,a_null); } // list of 2 floats - static void AddMethod(t_class *c,int inlet,bool (*m)(flext_base *,int &,int &,int &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_int,a_int,a_int,a_null); } // list of 3 floats - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_list,a_null); } // method+gimme - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_list,a_null); } // method+gimme - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,t_symbol *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_any,a_null); } // method+gimme - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,const t_symbol *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_any,a_null); } // method+gimme - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,t_symbol *&)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_symbol,a_null); } // method+symbol - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,const t_symbol *&)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_symbol,a_null); } // method+symbol - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,float &)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_float,a_null); } // method+float - static void AddMethod(t_class *c,int inlet,const char *tag,bool (*m)(flext_base *,int &)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_int,a_null); } // method+int + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,int &,int &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_int,a_int,a_null); } // list of 2 floats + static void AddMethod(t_classid c,int inlet,bool (*m)(flext_base *,int &,int &,int &)) { AddMethod(ClMeths(c),inlet,"list",(methfun)m,a_int,a_int,a_int,a_null); } // list of 3 floats + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_list,a_null); } // method+gimme + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_list,a_null); } // method+gimme + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,t_symbol *,int,t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_any,a_null); } // method+gimme + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,const t_symbol *,int,const t_atom *)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_any,a_null); } // method+gimme + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,t_symbol *&)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_symbol,a_null); } // method+symbol + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,const t_symbol *&)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_symbol,a_null); } // method+symbol + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,float &)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_float,a_null); } // method+float + static void AddMethod(t_classid c,int inlet,const char *tag,bool (*m)(flext_base *,int &)) { AddMethod(ClMeths(c),inlet,tag,(methfun)m,a_int,a_null); } // method+int //! @} FLEXT_C_CADDMETHOD @@ -482,12 +482,12 @@ protected: @{ */ - static void AddAttrib(t_class *c,const char *attr,bool (*get)(flext_base *,float &),bool (*set)(flext_base *,float &)) { AddAttrib(c,attr,a_float,(methfun)get,(methfun)set); } - static void AddAttrib(t_class *c,const char *attr,bool (*get)(flext_base *,int &),bool (*set)(flext_base *,int &)) { AddAttrib(c,attr,a_int,(methfun)get,(methfun)set); } - static void AddAttrib(t_class *c,const char *attr,bool (*get)(flext_base *,const t_symbol *&),bool (*set)(flext_base *,const t_symbol *&)) { AddAttrib(c,attr,a_symbol,(methfun)get,(methfun)set); } - static void AddAttrib(t_class *c,const char *attr,bool (*get)(flext_base *,t_symbol *&),bool (*set)(flext_base *,t_symbol *&)) { AddAttrib(c,attr,a_symbol,(methfun)get,(methfun)set); } - static void AddAttrib(t_class *c,const char *attr,bool (*get)(flext_base *,AtomList *&),bool (*set)(flext_base *,AtomList *&)) { AddAttrib(c,attr,a_LIST,(methfun)get,(methfun)set); } - static void AddAttrib(t_class *c,const char *attr,bool (*get)(flext_base *,AtomAnything *&),bool (*set)(flext_base *,AtomAnything *&)) { AddAttrib(c,attr,a_ANY,(methfun)get,(methfun)set); } + static void AddAttrib(t_classid c,const char *attr,bool (*get)(flext_base *,float &),bool (*set)(flext_base *,float &)) { AddAttrib(c,attr,a_float,(methfun)get,(methfun)set); } + static void AddAttrib(t_classid c,const char *attr,bool (*get)(flext_base *,int &),bool (*set)(flext_base *,int &)) { AddAttrib(c,attr,a_int,(methfun)get,(methfun)set); } + static void AddAttrib(t_classid c,const char *attr,bool (*get)(flext_base *,const t_symbol *&),bool (*set)(flext_base *,const t_symbol *&)) { AddAttrib(c,attr,a_symbol,(methfun)get,(methfun)set); } + static void AddAttrib(t_classid c,const char *attr,bool (*get)(flext_base *,t_symbol *&),bool (*set)(flext_base *,t_symbol *&)) { AddAttrib(c,attr,a_symbol,(methfun)get,(methfun)set); } + static void AddAttrib(t_classid c,const char *attr,bool (*get)(flext_base *,AtomList *&),bool (*set)(flext_base *,AtomList *&)) { AddAttrib(c,attr,a_LIST,(methfun)get,(methfun)set); } + static void AddAttrib(t_classid c,const char *attr,bool (*get)(flext_base *,AtomAnything *&),bool (*set)(flext_base *,AtomAnything *&)) { AddAttrib(c,attr,a_ANY,(methfun)get,(methfun)set); } //! @} FLEXT_C_CATTR @@ -601,20 +601,20 @@ protected: //! @} FLEXT_CLASS itemarr *ThMeths() { return methhead; } - static itemarr *ClMeths(t_class *c) { return GetClassArr(c,0); } + static itemarr *ClMeths(t_classid c) { return GetClassArr(c,0); } static void AddMethod(itemarr *ma,int inlet,const char *tag,methfun fun,metharg tp,...); itemarr *ThAttrs() { return attrhead; } - static itemarr *ClAttrs(t_class *c) { return GetClassArr(c,1); } + static itemarr *ClAttrs(t_classid c) { return GetClassArr(c,1); } static void AddAttrib(itemarr *aa,itemarr *ma,const char *attr,metharg tp,methfun gfun,methfun sfun); void AddAttrib(const char *attr,metharg tp,methfun gfun,methfun sfun); - static void AddAttrib(t_class *c,const char *attr,metharg tp,methfun gfun,methfun sfun); + static void AddAttrib(t_classid c,const char *attr,metharg tp,methfun gfun,methfun sfun); private: - static void Setup(t_class *c); + static void Setup(t_classid c); xlet *inlist,*outlist; const t_symbol *curtag; @@ -644,7 +644,7 @@ private: typedef bool (*methfun_4)(flext_base *c,t_any &,t_any &,t_any &,t_any &); typedef bool (*methfun_5)(flext_base *c,t_any &,t_any &,t_any &,t_any &,t_any &); - static itemarr *GetClassArr(t_class *c,int ix); + static itemarr *GetClassArr(t_classid,int ix); itemarr *methhead,*clmethhead; @@ -663,14 +663,11 @@ private: bool InitAttrib(int argc,const t_atom *argv); bool ListAttrib(); -// bool GetAttrib(const t_symbol *s); bool GetAttrib(attritem *a); bool SetAttrib(const t_symbol *s,int argc,const t_atom *argv); bool SetAttrib(attritem *a,int argc,const t_atom *argv); static bool cb_ListAttrib(flext_base *c) { return c->ListAttrib(); } -// static bool cb_GetAttrib(flext_base *c,const t_symbol *s,int argc,const t_atom *argv) { return c->GetAttrib(s,argc,argv); } -// static bool cb_SetAttrib(flext_base *c,const t_symbol *s,int argc,const t_atom *argv) { return c->SetAttrib(s,argc,argv); } // queue stuff diff --git a/externals/grill/flext/source/fldefs.h b/externals/grill/flext/source/fldefs.h index 55922a2b..dc99a2e7 100644 --- a/externals/grill/flext/source/fldefs.h +++ b/externals/grill/flext/source/fldefs.h @@ -252,7 +252,9 @@ REAL_NEW_3(NAME,NEW_CLASS, 1,1, TYPE1, TYPE2, TYPE3) // deprecated stuff /*! \defgroup FLEXT_D_DEPRECATED Deprecated definitions + \deprecated @{ +*/ #define FLEXT_NEW_G FLEXT_NEW_V @@ -270,7 +272,6 @@ REAL_NEW_3(NAME,NEW_CLASS, 1,1, TYPE1, TYPE2, TYPE3) #define FLEXT_LIB_TILDE_2 FLEXT_LIB_DSP_2 #define FLEXT_LIB_TILDE_3 FLEXT_LIB_DSP_3 - #define FLEXT_TILDE_SETUP FLEXT_DSP_SETUP //! @} FLEXT_D_DEPRECATED @@ -771,10 +772,8 @@ AddMethod(IX,"bang",FLEXT_CALL_PRE(M_FUN)) #define FLEXT_ADDMETHOD(IX,M_FUN) \ AddMethod(IX,FLEXT_CALL_PRE(M_FUN)) -#if 0 -// FLEXT_ADDMETHOD_V and FLEXT_ADDMETHOD_A definitions obscure that _ indicates the usage of a message tag - /*! \brief Add a handler for a method with a (variable argument) list + \deprecated This definition obscures that _ indicates the usage of a message tag - use FLEXT_ADDMETHOD instead \note This is already covered by FLEXT_ADDMETHOD, but here for the sake of clarity */ #define FLEXT_ADDMETHOD_V(IX,M_FUN) \ @@ -782,12 +781,12 @@ AddMethod(IX,FLEXT_CALL_PRE(M_FUN)) AddMethod(IX,FLEXT_CALL_PRE(M_FUN)) /*! \brief Add a handler for a method with an anything argument + \deprecated This definition obscures that _ indicates the usage of a message tag - use FLEXT_ADDMETHOD instead \note This is already covered by FLEXT_ADDMETHOD, but here for the sake of clarity */ #define FLEXT_ADDMETHOD_A(IX,M_FUN) \ \ AddMethod(IX,FLEXT_CALL_PRE(M_FUN)) -#endif //! Add a a handler for a tagged method with implicit arguments #define FLEXT_ADDMETHOD_(IX,M_TAG,M_FUN) \ diff --git a/externals/grill/flext/source/fldoxygen.h b/externals/grill/flext/source/fldoxygen.h index 03ac7e0b..0c515031 100644 --- a/externals/grill/flext/source/fldoxygen.h +++ b/externals/grill/flext/source/fldoxygen.h @@ -198,7 +198,7 @@ that functionality. Be sure to work through the examples provided with the flext tutorial. These should give you an overview about the possibilities of flext. -The "\ref modules" link at the top of the page leads to a complete reference +The "modules" link at the top of the page leads to a complete reference of flext functions and classes. */ diff --git a/externals/grill/flext/source/fldsp.cpp b/externals/grill/flext/source/fldsp.cpp index 3d7b723c..03492ce0 100644 --- a/externals/grill/flext/source/fldsp.cpp +++ b/externals/grill/flext/source/fldsp.cpp @@ -20,8 +20,10 @@ WARRANTIES, see the file, "license.txt," in this distribution. // === flext_dsp ============================================== -void flext_dsp::Setup(t_class *c) +void flext_dsp::Setup(t_classid id) { + t_class *c = getClass(id); + #if FLEXT_SYS == FLEXT_SYS_MAX // dsp_initclass(); dsp_initboxclass(); diff --git a/externals/grill/flext/source/fldsp.h b/externals/grill/flext/source/fldsp.h index da686ce7..b0cb7f01 100644 --- a/externals/grill/flext/source/fldsp.h +++ b/externals/grill/flext/source/fldsp.h @@ -137,7 +137,7 @@ private: int chnsin,chnsout; // setup function - static void Setup(t_class *c); + static void Setup(t_classid c); // callback functions diff --git a/externals/grill/flext/source/flext.cpp b/externals/grill/flext/source/flext.cpp index 13ed9c48..c13d8732 100644 --- a/externals/grill/flext/source/flext.cpp +++ b/externals/grill/flext/source/flext.cpp @@ -27,8 +27,8 @@ flext_base::flext_base(): insigs(0),outsigs(0), outlets(NULL),outattr(NULL), distmsgs(false), - methhead(new itemarr),attrhead(new itemarr), //attrcnt(0), - clmethhead(ClMeths(thisClass())),clattrhead(ClAttrs(thisClass())), + methhead(new itemarr),attrhead(new itemarr), + clmethhead(ClMeths(thisClassId())),clattrhead(ClAttrs(thisClassId())), inlets(NULL) #if FLEXT_SYS == FLEXT_SYS_MAX ,indesc(NULL),outdesc(NULL) @@ -125,8 +125,10 @@ bool flext_base::Init() /*! Set up proxy classes and basic methods at class creation time This ensures that they are processed before the registered flext messages */ -void flext_base::Setup(t_class *c) +void flext_base::Setup(t_classid id) { + t_class *c = getClass(id); + add_method(c,cb_help,"help"); add_loadbang(c,cb_loadbang); #if FLEXT_SYS == FLEXT_SYS_MAX @@ -134,7 +136,7 @@ void flext_base::Setup(t_class *c) #endif if(process_attributes) - AddMethod(c,0,"getattributes",(methfun)cb_ListAttrib); + AddMethod(id,0,"getattributes",(methfun)cb_ListAttrib); SetProxies(c); diff --git a/externals/grill/flext/source/flext.h b/externals/grill/flext/source/flext.h index aef173e7..8f1a71ce 100644 --- a/externals/grill/flext/source/flext.h +++ b/externals/grill/flext/source/flext.h @@ -26,7 +26,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #define FLEXT_VERSION 401 //! \brief flext version string -#define FLEXT_VERSTR "0.4.1pre" +#define FLEXT_VERSTR "0.4.1" //! @} diff --git a/externals/grill/flext/source/flitem.cpp b/externals/grill/flext/source/flitem.cpp index 70ea41f7..271745df 100755 --- a/externals/grill/flext/source/flitem.cpp +++ b/externals/grill/flext/source/flitem.cpp @@ -30,10 +30,12 @@ flext_base::itemarr::itemarr(): arr(new item *[2]),cnt(0),bits(-1) { arr[0] = arr[1] = NULL; +// post("NEWARR %p",this); } flext_base::itemarr::~itemarr() { +// post("DELARR %p",this); int c = Ready()?Size():2; for(int i = 0; i < c; ++i) @@ -54,9 +56,11 @@ void flext_base::itemarr::Add(item *it) a->nxt = it; } else arr[ix] = it; + +// post("RDY inlet=%i,tag=%s,hash=%i",it->inlet,GetString(it->tag),ix); } else { -// post("ADD %i,%s",it->inlet,GetString(it->tag)); +// post("ADD index=%i,inlet=%i,tag=%s",cnt,it->inlet,GetString(it->tag)); if(arr[0]) arr[1] = arr[1]->nxt = it; else arr[0] = arr[1] = it; @@ -70,6 +74,8 @@ void flext_base::itemarr::Finalize() { bits = Int2Bits(cnt); // at least enough bits to hold all items +// post("This=%p, Count %i, Bits %i",this,cnt,bits); + int sz = Size(); // save stored item list @@ -85,20 +91,6 @@ void flext_base::itemarr::Finalize() l->nxt = NULL; Add(l); -/* - // retrieve array index - int ix = Hash(l->tag,l->inlet,bits); - -// post("ADD %i,%s -> index %i",l->inlet,GetString(l->tag),ix); - - // add to array slot - if(arr[ix]) { - item *a = arr[ix]; - while(a->nxt) a = a->nxt; - a->nxt = l; - } - else arr[ix] = l; -*/ } #if 0 @@ -126,9 +118,11 @@ flext_base::item *flext_base::itemarr::Find(const t_symbol *tag,int inlet) const else if(Count()) { int ix = Hash(tag,inlet,bits); a = arr[ix]; +// post("FIND tag=%s inlet=%i hash=%i p=%p",GetString(tag),inlet,ix,a); } else a = NULL; + // Search first matching entry while(a && (a->tag != tag || a->inlet != inlet)) a = a->nxt; @@ -148,23 +142,23 @@ class _itemarr public: enum { HASHBITS=7, HASHSIZE=1<<HASHBITS }; - _itemarr(t_class *c,int i); + _itemarr(flext_obj::t_classid c,int i); ~_itemarr(); // will never be called - static int Hash(t_class *c,int ix); + static int Hash(flext_obj::t_classid c,int ix); - int Hash() const { return Hash(cl,ix); } + int Hash() const { return Hash(clid,ix); } void Add(_itemarr *a); - t_class *cl; + flext_obj::t_classid clid; int ix; flext_base::itemarr *arr; _itemarr *nxt; }; -_itemarr::_itemarr(t_class *c,int i): - cl(c),ix(i), +_itemarr::_itemarr(flext_obj::t_classid c,int i): + clid(c),ix(i), arr(new flext_base::itemarr), nxt(NULL) {} @@ -175,7 +169,7 @@ void _itemarr::Add(_itemarr *a) else nxt = a; } -int _itemarr::Hash(t_class *c,int ix) +int _itemarr::Hash(flext_obj::t_classid c,int ix) { unsigned long h = (reinterpret_cast<unsigned long>(c)&~3L)+ix; return flext::FoldBits(h,HASHBITS); @@ -183,7 +177,7 @@ int _itemarr::Hash(t_class *c,int ix) static _itemarr **_arrs = NULL; -flext_base::itemarr *flext_base::GetClassArr(t_class *c,int ix) +flext_base::itemarr *flext_base::GetClassArr(t_classid c,int ix) { if(!_arrs) { _arrs = new _itemarr *[_itemarr::HASHSIZE]; @@ -193,7 +187,9 @@ flext_base::itemarr *flext_base::GetClassArr(t_class *c,int ix) int hash = _itemarr::Hash(c,ix); _itemarr *a = _arrs[hash]; _itemarr *pa = NULL; - while(a && (a->cl != c || a->ix != ix)) pa = a,a = a->nxt; + while(a && (a->clid != c || a->ix != ix)) pa = a,a = a->nxt; + +// post("GETARR classid=%p ix=%i -> hash=%i,arr=%p",c,ix,hash,a?a->arr:NULL); if(!a) { a = new _itemarr(c,ix); diff --git a/externals/grill/flext/source/fllib.cpp b/externals/grill/flext/source/fllib.cpp index 315d4eda..cd0c65d9 100755 --- a/externals/grill/flext/source/fllib.cpp +++ b/externals/grill/flext/source/fllib.cpp @@ -123,41 +123,70 @@ libobject::libobject(t_class *&cl,flext_obj *(*newf)(int,t_atom *),void (*freef) // it will never be destroyed class libname { public: - libname(const t_symbol *n,libobject *o): name(n),obj(o),nxt(NULL) {} - const t_symbol *name; libobject *obj; static void add(libname *n); - static libname *find(const t_symbol *s); + static libname *Find(const t_symbol *s,libobject *o = NULL); protected: + libname(const t_symbol *n,libobject *o): name(n),obj(o),nxt(NULL) {} + + static int Hash(const t_symbol *s); + int Hash() const { return Hash(name); } + + enum { HASHBITS=7, HASHSIZE=1<<HASHBITS }; + libname *nxt; - void addrec(libname *n); - static libname *root; + void Add(libname *n); + + static libname **root; }; -void libname::addrec(libname *n) { if(nxt) nxt->addrec(n); else nxt = n; } +libname **libname::root = NULL; + -libname *libname::root = NULL; +void libname::Add(libname *n) { if(nxt) nxt->Add(n); else nxt = n; } -void libname::add(libname *l) { - if(root) root->addrec(l); - else root = l; +int libname::Hash(const t_symbol *s) +{ + return flext::FoldBits(reinterpret_cast<unsigned long>(s),HASHBITS); } -libname *libname::find(const t_symbol *s) { - libname *l; - for(l = root; l; l = l->nxt) - if(s == l->name) break; - return l; +libname *libname::Find(const t_symbol *s,libobject *o) +{ + if(!root) { + root = new libname *[HASHSIZE]; + memset(root,0,HASHSIZE*sizeof(*root)); + } + + int hash = Hash(s); + libname *a = root[hash]; + libname *pa = NULL; + while(a && a->name != s) pa = a,a = a->nxt; + + if(!a && o) { + a = new libname(s,o); + if(pa) + // previous entry... extend + a->nxt = pa->nxt,pa->nxt = a; + else + // new singular entry + root[hash] = a; + } + + return a; } + // for Max/MSP, the library is represented by a special object (class) registered at startup // all objects in the library are clones of that library object - they share the same class #if FLEXT_SYS == FLEXT_SYS_MAX static t_class *lib_class = NULL; static const t_symbol *lib_name = NULL; + +flext_obj::t_classid flext_obj::thisClassId() const { return libname::Find(thisNameSym())->obj; } +t_class *flext_obj::getClass(t_classid id) { return reinterpret_cast<libobject *>(id)->clss; } #endif void flext_obj::lib_init(const char *name,void setupfun(),bool attr) @@ -173,7 +202,7 @@ void flext_obj::lib_init(const char *name,void setupfun(),bool attr) setupfun(); } -void flext_obj::obj_add(bool lib,bool dsp,bool attr,const char *idname,const char *names,void setupfun(t_class *),flext_obj *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...) +void flext_obj::obj_add(bool lib,bool dsp,bool attr,const char *idname,const char *names,void setupfun(t_classid),flext_obj *(*newfun)(int,t_atom *),void (*freefun)(flext_hdr *),int argtp1,...) { // get first possible object name const t_symbol *nsym = MakeSymbol(extract(names)); @@ -203,6 +232,8 @@ void flext_obj::obj_add(bool lib,bool dsp,bool attr,const char *idname,const cha (t_messlist **)cl, (t_newmethod)obj_new,(t_method)obj_free, sizeof(flext_hdr),NULL,A_GIMME,A_NULL); + // attention: in Max/MSP the *cl variable is not initialized after that call. + // just the address is stored, the initialization then occurs with the first object instance! } #else #error @@ -214,6 +245,8 @@ void flext_obj::obj_add(bool lib,bool dsp,bool attr,const char *idname,const cha lo->dsp = dsp; lo->attr = process_attributes; +// post("ADDCLASS %p -> LIBOBJ %p -> %p",*cl,lo,lo->clss); + // parse the argument type list and store it with the object if(argtp1 == A_GIMME) lo->argc = -1; @@ -247,8 +280,7 @@ void flext_obj::obj_add(bool lib,bool dsp,bool attr,const char *idname,const cha if(!c || !*c) break; // add to name list - libname *l = new libname(MakeSymbol(c),lo); - libname::add(l); + libname *l = libname::Find(MakeSymbol(c),lo); #if FLEXT_SYS == FLEXT_SYS_PD if(ix > 0) @@ -264,8 +296,16 @@ void flext_obj::obj_add(bool lib,bool dsp,bool attr,const char *idname,const cha #endif } + // get unique class id +#if FLEXT_SYS == FLEXT_SYS_PD + t_classid clid = lo->clss; +#else + // in Max/MSP the t_class *value can't be used because it's possible that's it's not yet set!! + t_classid clid = lo; +#endif + // call class setup function - setupfun(lo->clss); + setupfun(clid); } @@ -274,7 +314,7 @@ typedef flext_obj *(*libfun)(int,t_atom *); flext_hdr *flext_obj::obj_new(const t_symbol *s,int _argc_,t_atom *argv) { flext_hdr *obj = NULL; - libname *l = libname::find(s); + libname *l = libname::Find(s); if(l) { bool ok = true; t_atom args[FLEXT_MAXNEWARGS]; @@ -322,13 +362,19 @@ flext_hdr *flext_obj::obj_new(const t_symbol *s,int _argc_,t_atom *argv) } if(ok) { + t_classid clid; + #if FLEXT_SYS == FLEXT_SYS_PD + clid = lo->clss; obj = (flext_hdr *)::pd_new(lo->clss); #elif FLEXT_SYS == FLEXT_SYS_MAX + clid = lo; obj = (flext_hdr *)::newobject(lo->clss); #else #error #endif +// post("NEWINST CLID %p",clid); + flext_obj::m_holder = obj; flext_obj::m_holdname = l->name; flext_obj::m_holdattr = lo->attr; @@ -386,7 +432,7 @@ flext_hdr *flext_obj::obj_new(const t_symbol *s,int _argc_,t_atom *argv) void flext_obj::obj_free(flext_hdr *hdr) { const t_symbol *name = hdr->data->thisNameSym(); - libname *l = libname::find(name); + libname *l = libname::Find(name); if(l) { // call virtual exit function diff --git a/externals/grill/flext/source/flmsg.cpp b/externals/grill/flext/source/flmsg.cpp index 99eabc10..4a6e0c20 100755 --- a/externals/grill/flext/source/flmsg.cpp +++ b/externals/grill/flext/source/flmsg.cpp @@ -159,7 +159,7 @@ bool flext_base::m_methodmain(int inlet,const t_symbol *s,int argc,const t_atom curtag = s; - LOG3("methodmain inlet:%i args:%i symbol:%s",inlet,argc,s?GetString(s):""); +// post("methodmain inlet:%i args:%i symbol:%s",inlet,argc,s?GetString(s):""); bool ret = FindMeth(inlet,s,argc,argv); if(ret) goto end; diff --git a/externals/grill/flext/source/flstk.h b/externals/grill/flext/source/flstk.h index 7311e032..11d8ec6b 100644 --- a/externals/grill/flext/source/flstk.h +++ b/externals/grill/flext/source/flstk.h @@ -11,7 +11,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #ifndef __FLSTK_H #define __FLSTK_H -#include <flext.h> +#include "flext.h" #include <Stk.h> class FLEXT_SHARE flext_stk: diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h index 329c147f..060da5d9 100644 --- a/externals/grill/flext/source/flsupport.h +++ b/externals/grill/flext/source/flsupport.h @@ -157,6 +157,15 @@ public: //! Sleep for an amount of time static void Sleep(double s); + + /*! \brief Fold value to a number of bits + \remark Good for hash generation + */ + static int FoldBits(unsigned long h,int bits); + + //! \brief How many bits are necessary to represent n + static int Int2Bits(unsigned long n); + //! @} FLEXT_S_UTIL // --- various symbols -------------------------------------------- @@ -407,23 +416,6 @@ public: //! @} FLEXT_S_ATOM -// --- utilities ------------------------------------------------ - - /*! \defgroup FLEXT_S_UTIL Flext utility functions - @{ - */ - - /*! \brief Fold value to a number of bits - \remark Good for hash generation - */ - static int FoldBits(unsigned long h,int bits); - - //! \brief How many bits are necessary to represent n - static int Int2Bits(unsigned long n); - -//! @} FLEXT_S_UTIL - - // --- clock stuff ------------------------------------------------ diff --git a/externals/grill/flext/tutorial/adv1/adv1.cw b/externals/grill/flext/tutorial/adv1/adv1.cw Binary files differindex 69e479a1..7c6c1e33 100755 --- a/externals/grill/flext/tutorial/adv1/adv1.cw +++ b/externals/grill/flext/tutorial/adv1/adv1.cw diff --git a/externals/grill/flext/tutorial/adv2/adv2.cw b/externals/grill/flext/tutorial/adv2/adv2.cw Binary files differindex a0a68e0f..0e555e20 100755 --- a/externals/grill/flext/tutorial/adv2/adv2.cw +++ b/externals/grill/flext/tutorial/adv2/adv2.cw diff --git a/externals/grill/flext/tutorial/adv2/main.cpp b/externals/grill/flext/tutorial/adv2/main.cpp index 10322010..9174d3b1 100644 --- a/externals/grill/flext/tutorial/adv2/main.cpp +++ b/externals/grill/flext/tutorial/adv2/main.cpp @@ -44,7 +44,7 @@ protected: private: // define the _static_ class setup function - static void setup(t_class *c); + static void setup(t_classid c); FLEXT_CALLBACK(m_tag) FLEXT_CALLBACK_I(m_tag_and_int) @@ -61,7 +61,7 @@ adv2::adv2() AddInAnything(); // add inlet of type anything (index 0) } -void adv2::setup(t_class *c) +void adv2::setup(t_classid c) { // register methods: // notice the naming FLEXT_CADD_METHOD* instead of FLEXT_ADD_METHOD* diff --git a/externals/grill/flext/tutorial/adv3/adv3.cw b/externals/grill/flext/tutorial/adv3/adv3.cw Binary files differindex dd30edd4..ed5e1110 100755 --- a/externals/grill/flext/tutorial/adv3/adv3.cw +++ b/externals/grill/flext/tutorial/adv3/adv3.cw diff --git a/externals/grill/flext/tutorial/adv3/main.cpp b/externals/grill/flext/tutorial/adv3/main.cpp index 78615172..608897e6 100644 --- a/externals/grill/flext/tutorial/adv3/main.cpp +++ b/externals/grill/flext/tutorial/adv3/main.cpp @@ -65,12 +65,12 @@ public: i_count = i_down; // --- define inlets and outlets --- - AddInAnything(); // default inlet - AddInList(); // inlet for bounds - AddInInt(); // inlet for step size + AddInAnything("bang, reset, etc."); // default inlet + AddInList("bounds (2 element list)"); // inlet for bounds + AddInInt("step size"); // inlet for step size - AddOutInt(); // outlet for integer count - AddOutBang(); // outlet for bang + AddOutInt("counter"); // outlet for integer count + AddOutBang("overflow bang"); // outlet for bang } protected: @@ -117,7 +117,7 @@ protected: private: - static void setup(t_class *c) + static void setup(t_classid c) { // --- set up methods (class scope) --- diff --git a/externals/grill/flext/tutorial/attr1/attr1.cw b/externals/grill/flext/tutorial/attr1/attr1.cw Binary files differindex 3b6f2334..cf880938 100755 --- a/externals/grill/flext/tutorial/attr1/attr1.cw +++ b/externals/grill/flext/tutorial/attr1/attr1.cw diff --git a/externals/grill/flext/tutorial/attr2/attr2.cw b/externals/grill/flext/tutorial/attr2/attr2.cw Binary files differindex 150ff981..05cd19b0 100755 --- a/externals/grill/flext/tutorial/attr2/attr2.cw +++ b/externals/grill/flext/tutorial/attr2/attr2.cw diff --git a/externals/grill/flext/tutorial/attr2/main.cpp b/externals/grill/flext/tutorial/attr2/main.cpp index f75ce412..fe61f6da 100644 --- a/externals/grill/flext/tutorial/attr2/main.cpp +++ b/externals/grill/flext/tutorial/attr2/main.cpp @@ -59,7 +59,7 @@ protected: private: - static void setup(t_class *); + static void setup(t_classid); // callback for method "m_trigger" (with one float argument) FLEXT_CALLBACK_F(m_trigger) @@ -90,7 +90,7 @@ const t_symbol *attr2::sym_div,*attr2::sym_mul, *attr2::sym_pow; -void attr2::setup(t_class *c) +void attr2::setup(t_classid c) { // Upon class creation setup some symbols // This is done only upon creation of of the first "attr2" object diff --git a/externals/grill/flext/tutorial/attr3/attr3.cw b/externals/grill/flext/tutorial/attr3/attr3.cw Binary files differindex fb08c819..5fe6b36a 100755 --- a/externals/grill/flext/tutorial/attr3/attr3.cw +++ b/externals/grill/flext/tutorial/attr3/attr3.cw diff --git a/externals/grill/flext/tutorial/attr3/main.cpp b/externals/grill/flext/tutorial/attr3/main.cpp index 4c2736c5..8d37f467 100644 --- a/externals/grill/flext/tutorial/attr3/main.cpp +++ b/externals/grill/flext/tutorial/attr3/main.cpp @@ -108,7 +108,7 @@ protected: private: - static void setup(t_class *c) + static void setup(t_classid c) { // --- set up methods (class scope) --- diff --git a/externals/grill/flext/tutorial/config-pd-cygwin.txt b/externals/grill/flext/tutorial/config-pd-cygwin.txt index 81d4136e..237cd519 100644 --- a/externals/grill/flext/tutorial/config-pd-cygwin.txt +++ b/externals/grill/flext/tutorial/config-pd-cygwin.txt @@ -12,12 +12,12 @@ FLEXTPATH=${PDPATH}/flext # where is the SndObj include directory? # (leave blank or comment out to disable SndObj support) # if defined, you must have a libsndobj.a library in the lib path -SNDOBJ=/usr/local/include/SndObj +#SNDOBJ=/usr/local/include/SndObj # where is the STK include directory? # (leave blank or comment out to disable STK support) # if defined, you must have a libstk.a library in the lib path -STK=/usr/src/stk-4.1.1/include +#STK=/usr/src/stk-4.1.1/include # where should the examples be built? OUTPATH=./pd-cygwin diff --git a/externals/grill/flext/tutorial/config-pd-darwin.txt b/externals/grill/flext/tutorial/config-pd-darwin.txt index 0c12880b..eb65fcdf 100644 --- a/externals/grill/flext/tutorial/config-pd-darwin.txt +++ b/externals/grill/flext/tutorial/config-pd-darwin.txt @@ -17,12 +17,12 @@ FLEXTPATH=/usr/local/pd/flext # where is the SndObj include directory? # (leave blank or comment out to disable SndObj support) # if defined, you must have a libsndobj.a library in the lib path -SNDOBJ=/usr/local/include/SndObj +#SNDOBJ=/usr/local/include/SndObj # where is the STK include directory? # (leave blank or comment out to disable STK support) # if defined, you must have a libstk.a library in the lib path -STK=/usr/src/stk-4.1.1/include +#STK=/usr/src/stk-4.1.1/include # where should the examples be built? (relative path) OUTPATH=./pd-darwin diff --git a/externals/grill/flext/tutorial/lib1/lib1.cw b/externals/grill/flext/tutorial/lib1/lib1.cw Binary files differindex 98828b81..3ed47c99 100755 --- a/externals/grill/flext/tutorial/lib1/lib1.cw +++ b/externals/grill/flext/tutorial/lib1/lib1.cw diff --git a/externals/grill/flext/tutorial/makefile.pd-cygwin b/externals/grill/flext/tutorial/makefile.pd-cygwin index 60f5b08e..31224ed3 100644 --- a/externals/grill/flext/tutorial/makefile.pd-cygwin +++ b/externals/grill/flext/tutorial/makefile.pd-cygwin @@ -18,7 +18,8 @@ FLEXTLIB=$(FLEXTPATH)/flext-pdwin.lib INCLUDES=$(PDPATH)/src LIBPATH=$(PDPATH)/bin FLAGS=-DFLEXT_SYS=2 -CFLAGS=-O6 -mcpu=pentiumpro +CFLAGS=-O6 -fno-rtti +CFLAGS+=-mcpu=pentium3 -msse # cygwin gcc 3.2 LIBS=m pd diff --git a/externals/grill/flext/tutorial/makefile.pd-darwin b/externals/grill/flext/tutorial/makefile.pd-darwin index ad8da699..b384d9cc 100644 --- a/externals/grill/flext/tutorial/makefile.pd-darwin +++ b/externals/grill/flext/tutorial/makefile.pd-darwin @@ -16,7 +16,7 @@ FLEXTLIB=$(FLEXTPATH)/flext_t.a # take threaded library for all INCLUDES=$(PDPATH) LIBPATH= FLAGS=-DFLEXT_SYS=2 -DFLEXT_THREADS -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes # -maltivec -CFLAGS=-O6 +CFLAGS=-O6 -fno-rtti LIBS=m LDFLAGS=-bundle -bundle_loader $(PD) diff --git a/externals/grill/flext/tutorial/makefile.pd-linux b/externals/grill/flext/tutorial/makefile.pd-linux index 0bad96fb..3b0bc3d3 100644 --- a/externals/grill/flext/tutorial/makefile.pd-linux +++ b/externals/grill/flext/tutorial/makefile.pd-linux @@ -16,7 +16,9 @@ FLEXTLIB=$(FLEXTPATH)/flext_t.a # take threaded library for all INCLUDES=$(PDPATH)/src LIBPATH= FLAGS=-DFLEXT_SYS=2 -DFLEXT_THREADS -CFLAGS=-O6 -mcpu=pentiumpro +CFLAGS=-O6 -fno-rtti +CFLAGS+=-mcpu=pentiumpro # gcc 2.95 +# CFLAGS+=-mcpu=pentium3 -msse # gcc 3.2 LIBS=m diff --git a/externals/grill/flext/tutorial/maxmsp/ex-adv1 b/externals/grill/flext/tutorial/maxmsp/ex-adv1 Binary files differindex dbdcf1fb..f086ab57 100755 --- a/externals/grill/flext/tutorial/maxmsp/ex-adv1 +++ b/externals/grill/flext/tutorial/maxmsp/ex-adv1 diff --git a/externals/grill/flext/tutorial/maxmsp/ex-adv2 b/externals/grill/flext/tutorial/maxmsp/ex-adv2 Binary files differnew file mode 100755 index 00000000..b6aa0065 --- /dev/null +++ b/externals/grill/flext/tutorial/maxmsp/ex-adv2 diff --git a/externals/grill/flext/tutorial/maxmsp/ex-adv3 b/externals/grill/flext/tutorial/maxmsp/ex-adv3 Binary files differnew file mode 100755 index 00000000..1f041257 --- /dev/null +++ b/externals/grill/flext/tutorial/maxmsp/ex-adv3 diff --git a/externals/grill/flext/tutorial/maxmsp/ex-attr2 b/externals/grill/flext/tutorial/maxmsp/ex-attr2 Binary files differindex 39256fcb..aab02c92 100755 --- a/externals/grill/flext/tutorial/maxmsp/ex-attr2 +++ b/externals/grill/flext/tutorial/maxmsp/ex-attr2 diff --git a/externals/grill/flext/tutorial/maxmsp/ex-attr3 b/externals/grill/flext/tutorial/maxmsp/ex-attr3 Binary files differnew file mode 100755 index 00000000..7ef7292f --- /dev/null +++ b/externals/grill/flext/tutorial/maxmsp/ex-attr3 diff --git a/externals/grill/flext/tutorial/maxmsp/ex-simple3 b/externals/grill/flext/tutorial/maxmsp/ex-simple3 Binary files differindex 7b5acee2..7dda678c 100755 --- a/externals/grill/flext/tutorial/maxmsp/ex-simple3 +++ b/externals/grill/flext/tutorial/maxmsp/ex-simple3 diff --git a/externals/grill/flext/tutorial/pd/ex-adv1.pd b/externals/grill/flext/tutorial/pd/ex-adv1.pd index 93695c7e..ea5337f7 100644 --- a/externals/grill/flext/tutorial/pd/ex-adv1.pd +++ b/externals/grill/flext/tutorial/pd/ex-adv1.pd @@ -1,22 +1,23 @@ -#N canvas 46 58 586 341 12; -#X msg 34 92 or two words; -#X msg 169 93 2 3; -#X msg 48 291 one or two words; -#X obj 72 213 print result; -#X obj 49 172 adv1 one; -#X obj 48 263 prepend set; -#X text 162 257 you can also use "prepend"; -#X obj 16 8 cnv 15 550 40 empty empty adv1 10 22 0 24 -260818 -1 0 -; -#X text 175 27 http://www.parasitaere-kapazitaeten.net; -#X text 199 214 watch the console!; -#X msg 69 121 6; -#X text 210 110 send the object various messages; -#X text 160 274 (if adv1 has already been loaded); -#X text 175 9 flext tutorial \, (C)2002 \, 2003 Thomas Grill; -#X connect 0 0 4 0; -#X connect 1 0 4 0; -#X connect 4 0 3 0; -#X connect 4 0 5 0; -#X connect 5 0 2 0; -#X connect 10 0 4 0; +#N canvas 46 58 588 343 12;
+#X msg 34 92 or two words;
+#X msg 169 93 2 3;
+#X msg 48 291 one 20;
+#X obj 72 213 print result;
+#X obj 49 172 adv1 one;
+#X obj 48 263 prepend set;
+#X text 162 257 you can also use "prepend";
+#X obj 16 8 cnv 15 550 40 empty empty adv1 10 22 0 24 -260818 -1 0
+;
+#X text 175 27 http://www.parasitaere-kapazitaeten.net;
+#X text 199 214 watch the console!;
+#X text 210 110 send the object various messages;
+#X text 160 274 (if adv1 has already been loaded);
+#X text 175 9 flext tutorial \, (C)2002 \, 2003 Thomas Grill;
+#X obj 66 127 nbx 3 18 0 100 0 0 empty empty empty 0 -6 0 14 -262144
+-1 -1 20 256;
+#X connect 0 0 4 0;
+#X connect 1 0 4 0;
+#X connect 4 0 3 0;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X connect 13 0 4 0;
diff --git a/externals/grill/flext/tutorial/pd/ex-adv3.pd b/externals/grill/flext/tutorial/pd/ex-adv3.pd index 09b0a0ff..2ffaf1b5 100644 --- a/externals/grill/flext/tutorial/pd/ex-adv3.pd +++ b/externals/grill/flext/tutorial/pd/ex-adv3.pd @@ -1,40 +1,40 @@ -#N canvas 175 139 597 355 12; -#X obj 16 7 cnv 15 550 40 empty empty adv3 10 22 0 24 -260818 -1 0 -; -#X text 174 28 http://www.parasitaere-kapazitaeten.net; -#X obj 229 266 adv3 2 5 1; -#X obj 305 303 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 223 300 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X msg 269 120 1 10; -#X msg 389 118 1; -#X msg 424 118 -1; -#X msg 460 118 2; -#X obj 88 119 bng 25 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 313 119 7 2; -#X text 325 300 end has been reached; -#X obj 157 117 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X msg 158 140 set \$1; -#X text 72 98 trigger; -#X text 147 98 set counter; -#X text 264 99 set bounds; -#X text 390 96 set step size; -#X msg 80 186 reset; -#X text 83 166 reset; -#X text 21 49 this is a port of IOhannes Zmoelnings "counter" example -; -#X text 174 8 flext tutorial \, (C)2002 \, 2003 Thomas Grill; -#X connect 2 0 4 0; -#X connect 2 1 3 0; -#X connect 5 0 2 1; -#X connect 6 0 2 2; -#X connect 7 0 2 2; -#X connect 8 0 2 2; -#X connect 9 0 2 0; -#X connect 10 0 2 1; -#X connect 12 0 13 0; -#X connect 13 0 2 0; -#X connect 18 0 2 0; +#N canvas 175 139 603 361 12;
+#X obj 16 7 cnv 15 550 40 empty empty adv3 10 22 0 24 -260818 -1 0
+;
+#X text 174 28 http://www.parasitaere-kapazitaeten.net;
+#X obj 229 266 adv3 2 5 1;
+#X obj 305 303 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 223 300 nbx 5 18 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 2 256;
+#X msg 269 130 1 10;
+#X msg 389 128 1;
+#X msg 429 128 -1;
+#X msg 469 128 2;
+#X obj 88 129 bng 25 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 317 130 7 2;
+#X text 325 300 end has been reached;
+#X obj 157 127 nbx 5 18 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 25 256;
+#X msg 158 150 set \$1;
+#X text 72 108 trigger;
+#X text 147 108 set counter;
+#X text 264 109 set bounds;
+#X text 390 106 set step size;
+#X msg 80 196 reset;
+#X text 83 176 reset;
+#X text 174 8 flext tutorial \, (C)2002 \, 2003 Thomas Grill;
+#X text 21 49 this is a port of IOhannes Zmoelnings "counter" example
+;
+#X connect 2 0 4 0;
+#X connect 2 1 3 0;
+#X connect 5 0 2 1;
+#X connect 6 0 2 2;
+#X connect 7 0 2 2;
+#X connect 8 0 2 2;
+#X connect 9 0 2 0;
+#X connect 10 0 2 1;
+#X connect 12 0 13 0;
+#X connect 13 0 2 0;
+#X connect 18 0 2 0;
diff --git a/externals/grill/flext/tutorial/pd/ex-attr2.pd b/externals/grill/flext/tutorial/pd/ex-attr2.pd index de1b0c63..d58959b9 100644 --- a/externals/grill/flext/tutorial/pd/ex-attr2.pd +++ b/externals/grill/flext/tutorial/pd/ex-attr2.pd @@ -1,4 +1,4 @@ -#N canvas 364 29 605 442 12; +#N canvas 364 29 609 446 12; #X msg 21 84 help; #X msg 23 119 getattributes; #X text 265 357 there is one additional outlet; @@ -11,7 +11,7 @@ #X text 160 118 query object attributes (watch console); #X msg 96 155 getop; #X obj 159 337 attr2 @op +; -#X text 238 154 query attributes; +#X text 252 155 query attributes; #X text 333 210 set attributes; #X msg 169 200 op +; #X msg 168 225 op -; @@ -20,16 +20,16 @@ #X msg 269 200 op =; #X msg 219 224 op /; #X msg 158 155 getresult; -#X obj 16 8 cnv 15 550 40 empty empty attr2 10 22 0 24 -260818 -1 0 -; +#X obj 16 8 cnv 15 550 40 empty empty attr2 10 22 32 24 -260818 -1 +0; #X text 173 28 http://www.parasitaere-kapazitaeten.net; #X text 91 398 result; -#X obj 23 271 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681 --1 -1 40 256; -#X obj 271 273 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681 --1 -1 10 256; -#X obj 151 398 nbx 7 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 400 256; +#X obj 23 271 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 32 12 -261681 +-1 -1 20 256; +#X obj 271 273 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 32 12 -261681 +-1 -1 4 256; +#X obj 151 398 nbx 7 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 32 +12 -228992 -1 -1 80 256; #X text 171 10 flext tutorial \, (C)2002 \, 2003 Thomas Grill; #X text 328 274 set argument; #X connect 0 0 11 0; diff --git a/externals/grill/flext/tutorial/pd/ex-attr3.pd b/externals/grill/flext/tutorial/pd/ex-attr3.pd index b55bf2fd..48a89137 100644 --- a/externals/grill/flext/tutorial/pd/ex-attr3.pd +++ b/externals/grill/flext/tutorial/pd/ex-attr3.pd @@ -1,38 +1,38 @@ -#N canvas 175 139 603 453 12; -#X obj 16 7 cnv 15 550 40 empty empty attr3 10 22 0 24 -260818 -1 0 -; +#N canvas 175 139 607 457 12; +#X obj 16 7 cnv 15 550 40 empty empty attr3 10 22 32 24 -260818 -1 +0; #X text 174 28 http://www.parasitaere-kapazitaeten.net; -#X obj 293 364 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 196 361 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X msg 264 129 1 10; -#X msg 384 127 1; -#X msg 419 127 -1; -#X msg 455 127 2; -#X obj 36 128 bng 25 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 +#X obj 293 364 bng 15 250 50 0 empty empty empty 0 -6 32 8 -262144 +-1 -1; +#X obj 196 361 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -6 32 +12 -228992 -1 -1 2 256; +#X msg 296 126 1 10; +#X msg 419 127 1; +#X msg 459 127 -1; +#X msg 498 127 2; +#X obj 36 128 bng 25 250 50 0 empty empty empty 0 -6 32 8 -258699 -1 -1; -#X msg 308 128 7 2; -#X obj 159 123 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X msg 160 146 set \$1; +#X msg 344 126 7 2; +#X obj 173 119 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -6 32 +12 -228992 -1 -1 17 256; +#X msg 174 142 set \$1; #X text 20 107 trigger; -#X text 149 104 set counter; -#X text 259 108 set bounds; -#X text 385 105 set step size; -#X msg 87 135 reset; -#X text 90 115 reset; -#X text 23 63 with attributes; +#X text 163 100 set counter; +#X text 291 105 set bounds; +#X text 420 105 set step size; +#X msg 97 135 reset; +#X text 100 115 reset; +#X text 21 64 with attributes; #X obj 197 327 attr3 @bounds 2 5 @step 1; #X msg 32 195 getattributes; #X obj 392 363 print; -#X text 440 362 attributes; +#X text 447 362 attributes; #X msg 32 237 getcount; #X msg 388 232 getstep; -#X text 149 193 list all attributes; +#X text 167 196 list all attributes; #X msg 32 266 count 3; -#X text 109 238 get count; -#X text 104 266 set count; +#X text 117 238 get count; +#X text 112 266 set count; #X msg 387 259 step 3; #X text 21 49 this is a port of IOhannes Zmoelnings "counter" example ; diff --git a/externals/grill/flext/tutorial/pd/ex-simple1.pd b/externals/grill/flext/tutorial/pd/ex-simple1.pd index eb32567d..9c090fac 100644 --- a/externals/grill/flext/tutorial/pd/ex-simple1.pd +++ b/externals/grill/flext/tutorial/pd/ex-simple1.pd @@ -1,16 +1,16 @@ -#N canvas 85 178 582 245 12; -#X msg 29 92 help; -#X text 203 187 inverse; -#X text 169 96 input; -#X obj 113 141 simple1; -#X obj 16 8 cnv 15 550 40 empty empty simple1 10 22 0 24 -260818 -1 -0; -#X text 175 28 http://www.parasitaere-kapazitaeten.net; -#X obj 114 96 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681 --1 -1 88 256; -#X obj 112 190 nbx 7 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0.0113636 256; -#X text 175 8 flext tutorial \, (C)2002 \, 2003 Thomas Grill; -#X connect 0 0 3 0; -#X connect 3 0 7 0; -#X connect 6 0 3 0; +#N canvas 85 178 588 251 12;
+#X msg 29 92 help;
+#X text 203 187 inverse;
+#X text 169 96 input;
+#X obj 113 141 simple1;
+#X obj 16 8 cnv 15 550 40 empty empty simple1 10 22 0 24 -260818 -1
+0;
+#X text 167 30 http://www.parasitaere-kapazitaeten.net;
+#X obj 114 96 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681
+-1 -1 0 256;
+#X obj 112 190 nbx 7 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X text 167 10 flext tutorial \, (C)2002 \, 2003 Thomas Grill;
+#X connect 0 0 3 0;
+#X connect 3 0 7 0;
+#X connect 6 0 3 0;
diff --git a/externals/grill/flext/tutorial/pd/ex-simple2.pd b/externals/grill/flext/tutorial/pd/ex-simple2.pd index dfc0cb8a..23c037d0 100644 --- a/externals/grill/flext/tutorial/pd/ex-simple2.pd +++ b/externals/grill/flext/tutorial/pd/ex-simple2.pd @@ -1,21 +1,21 @@ -#N canvas 72 265 589 307 12; -#X obj 111 196 simple2 3; -#X msg 21 83 help; -#X text 103 119 triggering; -#X text 215 120 non-triggering; -#X text 206 197 default argument; -#X obj 16 8 cnv 15 550 40 empty empty simple2 10 22 0 24 -260818 -1 -0; -#X text 174 28 http://www.parasitaere-kapazitaeten.net; -#X text 66 82 print a "help" message (to the console); -#X obj 110 144 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681 --1 -1 22 256; -#X obj 217 144 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681 --1 -1 0 256; -#X obj 111 239 nbx 7 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 25 256; -#X text 174 10 flext tutorial \, (C)2002 \, 2003 Thomas Grill; -#X connect 0 0 10 0; -#X connect 1 0 0 0; -#X connect 8 0 0 0; -#X connect 9 0 0 1; +#N canvas 72 265 595 313 12;
+#X obj 111 196 simple2 3;
+#X msg 21 83 help;
+#X text 103 119 triggering;
+#X text 215 120 non-triggering;
+#X text 206 197 default argument;
+#X obj 16 8 cnv 15 550 40 empty empty simple2 10 22 0 24 -260818 -1
+0;
+#X text 167 29 http://www.parasitaere-kapazitaeten.net;
+#X text 66 82 print a "help" message (to the console);
+#X obj 110 144 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681
+-1 -1 0 256;
+#X obj 217 144 nbx 4 16 -999 999 0 0 empty empty empty 0 -6 0 12 -261681
+-1 -1 0 256;
+#X obj 111 239 nbx 7 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X text 167 11 flext tutorial \, (C)2002 \, 2003 Thomas Grill;
+#X connect 0 0 10 0;
+#X connect 1 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 0 1;
diff --git a/externals/grill/flext/tutorial/pd/ex-simple3.pd b/externals/grill/flext/tutorial/pd/ex-simple3.pd index c9bbc211..72ca4e18 100644 --- a/externals/grill/flext/tutorial/pd/ex-simple3.pd +++ b/externals/grill/flext/tutorial/pd/ex-simple3.pd @@ -1,22 +1,22 @@ -#N canvas 329 97 583 344 12; -#X msg 22 87 help; -#X msg 119 136 born; -#X msg 168 137 to; -#X msg 210 139 hula; -#X msg 224 220 yeah; -#X msg 224 182 hula 1; -#X text 276 221 other symbol; -#X obj 144 283 simple3; -#X text 257 140 tag without argument; -#X text 293 180 tag and argument; -#X text 68 87 print a help message; -#X obj 16 8 cnv 15 550 40 empty empty simple3 10 22 0 24 -260818 -1 -0; -#X text 174 28 http://www.parasitaere-kapazitaeten.net; -#X text 174 10 flext tutorial \, (C)2002 \, 2003 Thomas Grill; -#X connect 0 0 7 0; -#X connect 1 0 7 0; -#X connect 2 0 7 0; -#X connect 3 0 7 0; -#X connect 4 0 7 0; -#X connect 5 0 7 0; +#N canvas 329 97 589 350 12;
+#X msg 22 87 help;
+#X msg 119 136 born;
+#X msg 168 137 to;
+#X msg 210 139 hula;
+#X msg 224 220 yeah;
+#X msg 224 182 hula 1;
+#X text 276 221 other symbol;
+#X obj 144 283 simple3;
+#X text 257 140 tag without argument;
+#X text 293 180 tag and argument;
+#X text 68 87 print a help message;
+#X obj 16 8 cnv 15 550 40 empty empty simple3 10 22 0 24 -260818 -1
+0;
+#X text 174 28 http://www.parasitaere-kapazitaeten.net;
+#X text 174 10 flext tutorial \, (C)2002 \, 2003 Thomas Grill;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 2 0 7 0;
+#X connect 3 0 7 0;
+#X connect 4 0 7 0;
+#X connect 5 0 7 0;
diff --git a/externals/grill/flext/tutorial/pd/ex-thread1.pd b/externals/grill/flext/tutorial/pd/ex-thread1.pd index a4b7ba79..ff2d9f38 100644 --- a/externals/grill/flext/tutorial/pd/ex-thread1.pd +++ b/externals/grill/flext/tutorial/pd/ex-thread1.pd @@ -1,43 +1,43 @@ -#N canvas 105 266 702 345 12; -#X obj 39 91 bng 25 250 50 0 empty empty start 0 -6 0 8 -261681 -1 --1; -#X obj 130 246 thread1; -#X obj 220 247 thread1; -#X obj 312 247 thread1; -#X obj 405 247 thread1; -#X obj 131 185 delay 200; -#X obj 220 184 delay 200; -#X obj 313 186 delay 200; -#X obj 404 185 delay 200; -#X text 78 85 click to start; -#X text 126 103 (if you click twice \, the same thread is started a -second time); -#X obj 16 8 cnv 15 550 40 empty empty thread1 10 22 0 24 -260818 -1 -0; -#X text 175 28 http://www.parasitaere-kapazitaeten.net; -#X obj 131 277 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X obj 221 277 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X obj 311 277 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X obj 406 276 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X obj 39 244 thread1; -#X obj 39 277 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X text 175 10 flext tutorial \, (C)2002 \, 2003 Thomas Grill; -#X connect 0 0 5 0; -#X connect 0 0 17 0; -#X connect 1 0 13 0; -#X connect 2 0 14 0; -#X connect 3 0 15 0; -#X connect 4 0 16 0; -#X connect 5 0 1 0; -#X connect 5 0 6 0; -#X connect 6 0 2 0; -#X connect 6 0 7 0; -#X connect 7 0 3 0; -#X connect 7 0 8 0; -#X connect 8 0 4 0; -#X connect 17 0 18 0; +#N canvas 105 266 708 351 12;
+#X obj 39 91 bng 25 250 50 0 empty empty start 0 -6 0 8 -261681 -1
+-1;
+#X obj 130 246 thread1;
+#X obj 228 248 thread1;
+#X obj 324 246 thread1;
+#X obj 422 247 thread1;
+#X obj 131 185 delay 200;
+#X obj 228 185 delay 200;
+#X obj 325 185 delay 200;
+#X obj 421 185 delay 200;
+#X text 78 85 click to start;
+#X text 126 103 (if you click twice \, the same thread is started a
+second time);
+#X obj 16 8 cnv 15 550 40 empty empty thread1 10 22 0 24 -260818 -1
+0;
+#X text 170 29 http://www.parasitaere-kapazitaeten.net;
+#X obj 131 277 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X obj 229 278 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X obj 323 276 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X obj 423 276 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X obj 39 244 thread1;
+#X obj 39 277 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X text 170 11 flext tutorial \, (C)2002 \, 2003 Thomas Grill;
+#X connect 0 0 5 0;
+#X connect 0 0 17 0;
+#X connect 1 0 13 0;
+#X connect 2 0 14 0;
+#X connect 3 0 15 0;
+#X connect 4 0 16 0;
+#X connect 5 0 1 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 3 0;
+#X connect 7 0 8 0;
+#X connect 8 0 4 0;
+#X connect 17 0 18 0;
diff --git a/externals/grill/flext/tutorial/pd/ex-thread2.pd b/externals/grill/flext/tutorial/pd/ex-thread2.pd index dc71ac48..9c601c85 100644 --- a/externals/grill/flext/tutorial/pd/ex-thread2.pd +++ b/externals/grill/flext/tutorial/pd/ex-thread2.pd @@ -1,47 +1,47 @@ -#N canvas 116 192 587 332 12; -#X msg 84 188 stop; -#X msg 255 192 stop; -#X obj 199 99 bng 25 250 50 0 empty empty empty 0 -6 0 8 -261681 -1 --1; -#X obj 291 99 bng 25 250 50 0 empty empty empty 0 -6 0 8 -261681 -1 --1; -#X text 191 78 start; -#X text 283 77 stop; -#X msg 39 188 0; -#X msg 210 192 0; -#X msg 423 190 stop; -#X msg 378 190 0; -#X obj 404 229 thread2 50; -#X obj 232 229 thread2 15; -#X obj 66 228 thread2 3; -#X msg 133 188 text; -#X msg 302 192 text; -#X msg 470 190 text; -#X obj 16 8 cnv 15 550 40 empty empty thread2 10 22 0 24 -260818 -1 -0; -#X text 174 28 http://www.parasitaere-kapazitaeten.net; -#X obj 65 264 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X obj 231 265 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X obj 403 267 nbx 5 16 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 12 --228992 -1 -1 0 256; -#X text 174 10 flext tutorial \, (C)2002 \, 2003 Thomas Grill; -#X connect 0 0 12 0; -#X connect 1 0 11 0; -#X connect 2 0 6 0; -#X connect 2 0 7 0; -#X connect 2 0 9 0; -#X connect 3 0 0 0; -#X connect 3 0 1 0; -#X connect 3 0 8 0; -#X connect 6 0 12 0; -#X connect 7 0 11 0; -#X connect 8 0 10 0; -#X connect 9 0 10 0; -#X connect 10 0 20 0; -#X connect 11 0 19 0; -#X connect 12 0 18 0; -#X connect 13 0 12 0; -#X connect 14 0 11 0; -#X connect 15 0 10 0; +#N canvas 116 192 593 338 12;
+#X msg 84 188 stop;
+#X msg 255 192 stop;
+#X obj 199 99 bng 25 250 50 0 empty empty empty 0 -6 0 8 -261681 -1
+-1;
+#X obj 291 99 bng 25 250 50 0 empty empty empty 0 -6 0 8 -261681 -1
+-1;
+#X text 191 78 start;
+#X text 283 77 stop;
+#X msg 39 188 0;
+#X msg 210 192 0;
+#X msg 423 190 stop;
+#X msg 378 190 0;
+#X obj 404 229 thread2 50;
+#X obj 232 229 thread2 15;
+#X obj 66 228 thread2 3;
+#X msg 133 188 text;
+#X msg 302 192 text;
+#X msg 470 190 text;
+#X obj 16 8 cnv 15 550 40 empty empty thread2 10 22 0 24 -260818 -1
+0;
+#X text 173 29 http://www.parasitaere-kapazitaeten.net;
+#X obj 65 264 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X obj 231 265 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X obj 403 267 nbx 5 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+12 -228992 -1 -1 0 256;
+#X text 173 11 flext tutorial \, (C)2002 \, 2003 Thomas Grill;
+#X connect 0 0 12 0;
+#X connect 1 0 11 0;
+#X connect 2 0 6 0;
+#X connect 2 0 7 0;
+#X connect 2 0 9 0;
+#X connect 3 0 0 0;
+#X connect 3 0 1 0;
+#X connect 3 0 8 0;
+#X connect 6 0 12 0;
+#X connect 7 0 11 0;
+#X connect 8 0 10 0;
+#X connect 9 0 10 0;
+#X connect 10 0 20 0;
+#X connect 11 0 19 0;
+#X connect 12 0 18 0;
+#X connect 13 0 12 0;
+#X connect 14 0 11 0;
+#X connect 15 0 10 0;
diff --git a/externals/grill/flext/tutorial/readme.txt b/externals/grill/flext/tutorial/readme.txt index 0e445a5a..98221ae7 100644 --- a/externals/grill/flext/tutorial/readme.txt +++ b/externals/grill/flext/tutorial/readme.txt @@ -24,6 +24,13 @@ The recommended order to go through the tutorial examples is the following: and, if needed 7) sndobj* and/or stk* +if you choose to compile with SndObj support you will need the respective library +download from: http://www.may.ie/academic/music/musictec/SndObj/main.html + +if you choose to compile with STK support you will need the respective package and build a library +download from: http://ccrma-www.stanford.edu/software/stk/ + + ---------------------------------------------------------------------------- The package should at least compile (and is tested) with the following compilers: @@ -51,7 +58,17 @@ Max/MSP - MacOS 9: ------------------ o Metrowerks CodeWarrior V6: edit & use the several ".cw" project files +You must have the following "Source Trees" defined: +"flext" - Pointing to the flext main directory +"Cycling74" - Pointing to the Cycling 74 SDK + Max/MSP - MacOSX: ------------------ o Metrowerks CodeWarrior V6: edit & use the several ".cw" project files +You must have the following "Source Trees" defined: +"OS X Volume" - Pointing to your OSX boot drive +"flext" - Pointing to the flext main directory +"Cycling74 OSX" - Pointing to the Cycling 74 SDK for xmax +"MP SDK" - Pointing to the Multiprocessing SDK (for threading support) + diff --git a/externals/grill/flext/tutorial/signal1/signal1.cw b/externals/grill/flext/tutorial/signal1/signal1.cw Binary files differindex 8385296a..9e0d4f91 100644 --- a/externals/grill/flext/tutorial/signal1/signal1.cw +++ b/externals/grill/flext/tutorial/signal1/signal1.cw diff --git a/externals/grill/flext/tutorial/signal2/signal2.cw b/externals/grill/flext/tutorial/signal2/signal2.cw Binary files differindex 5199aff1..848b3430 100644 --- a/externals/grill/flext/tutorial/signal2/signal2.cw +++ b/externals/grill/flext/tutorial/signal2/signal2.cw diff --git a/externals/grill/flext/tutorial/simple1/simple1.cw b/externals/grill/flext/tutorial/simple1/simple1.cw Binary files differindex 429c07f3..cd344206 100755 --- a/externals/grill/flext/tutorial/simple1/simple1.cw +++ b/externals/grill/flext/tutorial/simple1/simple1.cw diff --git a/externals/grill/flext/tutorial/simple2/simple2.cw b/externals/grill/flext/tutorial/simple2/simple2.cw Binary files differindex 02837e57..c622718f 100755 --- a/externals/grill/flext/tutorial/simple2/simple2.cw +++ b/externals/grill/flext/tutorial/simple2/simple2.cw diff --git a/externals/grill/flext/tutorial/simple3/simple3.cw b/externals/grill/flext/tutorial/simple3/simple3.cw Binary files differindex d0038bc9..b08661c7 100644 --- a/externals/grill/flext/tutorial/simple3/simple3.cw +++ b/externals/grill/flext/tutorial/simple3/simple3.cw diff --git a/externals/grill/flext/tutorial/thread1/thread1.cw b/externals/grill/flext/tutorial/thread1/thread1.cw Binary files differindex 680bdfba..a7fed74e 100644 --- a/externals/grill/flext/tutorial/thread1/thread1.cw +++ b/externals/grill/flext/tutorial/thread1/thread1.cw diff --git a/externals/grill/flext/tutorial/thread2/thread2.cw b/externals/grill/flext/tutorial/thread2/thread2.cw Binary files differindex 524ad776..12b28e1a 100755 --- a/externals/grill/flext/tutorial/thread2/thread2.cw +++ b/externals/grill/flext/tutorial/thread2/thread2.cw |