From 36b48fabcf54a65541b08c0835b53daebd9357f6 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Wed, 1 Apr 2009 23:28:24 +0000 Subject: replaced remaining dyn, dyn_py, idelay svn path=/trunk/; revision=10953 --- externals/grill/dyn/build-pd-darwin.sh | 11 - externals/grill/dyn/build-pd-linux.sh | 11 - externals/grill/dyn/config-pd-darwin.txt | 17 -- externals/grill/dyn/config-pd-linux.txt | 21 -- externals/grill/dyn/dyn.h | 404 ---------------------------- externals/grill/dyn/dyn.vcproj | 217 --------------- externals/grill/dyn/dyn_api.cpp | 269 ------------------ externals/grill/dyn/dyn_base.cpp | 23 -- externals/grill/dyn/dyn_conn.cpp | 41 --- externals/grill/dyn/dyn_create.cpp | 246 ----------------- externals/grill/dyn/dyn_data.h | 192 ------------- externals/grill/dyn/dyn_listen.cpp | 68 ----- externals/grill/dyn/dyn_main.cpp | 85 ------ externals/grill/dyn/dyn_message.cpp | 10 - externals/grill/dyn/dyn_object.cpp | 9 - externals/grill/dyn/dyn_patchable.cpp | 101 ------- externals/grill/dyn/dyn_patcher.cpp | 24 -- externals/grill/dyn/dyn_pd.h | 31 --- externals/grill/dyn/dyn_proto.h | 29 -- externals/grill/dyn/dyn_proxy.cpp | 96 ------- externals/grill/dyn/dyn_proxy.h | 74 ----- externals/grill/dyn/dyn_send.cpp | 80 ------ externals/grill/dyn/dyn_text.cpp | 9 - externals/grill/dyn/gpl.txt | 346 ------------------------ externals/grill/dyn/license.txt | 20 -- externals/grill/dyn/make-files.txt | 10 - externals/grill/dyn/makefile.pd-darwin | 76 ------ externals/grill/dyn/makefile.pd-linux | 72 ----- externals/grill/dyn/package.txt | 14 - externals/grill/dyn/todo.txt | 8 - externals/grill/dyn_py/build-pd-darwin.sh | 11 - externals/grill/dyn_py/config-pd-darwin.txt | 32 --- externals/grill/dyn_py/dyn_py.cpp | 401 --------------------------- externals/grill/dyn_py/dyn_py.vcproj | 140 ---------- externals/grill/dyn_py/gpl.txt | 346 ------------------------ externals/grill/dyn_py/license.txt | 19 -- externals/grill/dyn_py/make-files.txt | 4 - externals/grill/dyn_py/makefile.pd-darwin | 75 ------ externals/grill/idelay/delay.cpp | 75 ------ externals/grill/idelay/delay.h | 91 ------- externals/grill/idelay/gpl.txt | 346 ------------------------ externals/grill/idelay/idelay.cw | Bin 137907 -> 0 bytes externals/grill/idelay/idelay.dsp | 99 ------- externals/grill/idelay/idelay.mpw | 81 ------ externals/grill/idelay/idelay.vcproj | 184 ------------- externals/grill/idelay/license.txt | 49 ---- externals/grill/idelay/makefile.bcc | 75 ------ externals/grill/idelay/makefile.pd-cygwin | 1 - externals/grill/idelay/makefile.pd-darwin | 72 ----- externals/grill/idelay/makefile.pd-linux | 1 - externals/grill/idelay/pd/idelay~.help.pd | 16 -- 51 files changed, 4732 deletions(-) delete mode 100644 externals/grill/dyn/build-pd-darwin.sh delete mode 100644 externals/grill/dyn/build-pd-linux.sh delete mode 100644 externals/grill/dyn/config-pd-darwin.txt delete mode 100644 externals/grill/dyn/config-pd-linux.txt delete mode 100644 externals/grill/dyn/dyn.h delete mode 100644 externals/grill/dyn/dyn.vcproj delete mode 100644 externals/grill/dyn/dyn_api.cpp delete mode 100644 externals/grill/dyn/dyn_base.cpp delete mode 100644 externals/grill/dyn/dyn_conn.cpp delete mode 100644 externals/grill/dyn/dyn_create.cpp delete mode 100644 externals/grill/dyn/dyn_data.h delete mode 100644 externals/grill/dyn/dyn_listen.cpp delete mode 100644 externals/grill/dyn/dyn_main.cpp delete mode 100644 externals/grill/dyn/dyn_message.cpp delete mode 100644 externals/grill/dyn/dyn_object.cpp delete mode 100644 externals/grill/dyn/dyn_patchable.cpp delete mode 100644 externals/grill/dyn/dyn_patcher.cpp delete mode 100644 externals/grill/dyn/dyn_pd.h delete mode 100644 externals/grill/dyn/dyn_proto.h delete mode 100644 externals/grill/dyn/dyn_proxy.cpp delete mode 100644 externals/grill/dyn/dyn_proxy.h delete mode 100644 externals/grill/dyn/dyn_send.cpp delete mode 100644 externals/grill/dyn/dyn_text.cpp delete mode 100644 externals/grill/dyn/gpl.txt delete mode 100644 externals/grill/dyn/license.txt delete mode 100644 externals/grill/dyn/make-files.txt delete mode 100644 externals/grill/dyn/makefile.pd-darwin delete mode 100644 externals/grill/dyn/makefile.pd-linux delete mode 100644 externals/grill/dyn/package.txt delete mode 100644 externals/grill/dyn/todo.txt delete mode 100755 externals/grill/dyn_py/build-pd-darwin.sh delete mode 100644 externals/grill/dyn_py/config-pd-darwin.txt delete mode 100644 externals/grill/dyn_py/dyn_py.cpp delete mode 100644 externals/grill/dyn_py/dyn_py.vcproj delete mode 100644 externals/grill/dyn_py/gpl.txt delete mode 100644 externals/grill/dyn_py/license.txt delete mode 100644 externals/grill/dyn_py/make-files.txt delete mode 100755 externals/grill/dyn_py/makefile.pd-darwin delete mode 100644 externals/grill/idelay/delay.cpp delete mode 100644 externals/grill/idelay/delay.h delete mode 100644 externals/grill/idelay/gpl.txt delete mode 100644 externals/grill/idelay/idelay.cw delete mode 100644 externals/grill/idelay/idelay.dsp delete mode 100644 externals/grill/idelay/idelay.mpw delete mode 100644 externals/grill/idelay/idelay.vcproj delete mode 100644 externals/grill/idelay/license.txt delete mode 100644 externals/grill/idelay/makefile.bcc delete mode 100644 externals/grill/idelay/makefile.pd-cygwin delete mode 100755 externals/grill/idelay/makefile.pd-darwin delete mode 100644 externals/grill/idelay/makefile.pd-linux delete mode 100644 externals/grill/idelay/pd/idelay~.help.pd (limited to 'externals') diff --git a/externals/grill/dyn/build-pd-darwin.sh b/externals/grill/dyn/build-pd-darwin.sh deleted file mode 100644 index 1755372b..00000000 --- a/externals/grill/dyn/build-pd-darwin.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -. config-pd-darwin.txt - -make -f makefile.pd-darwin && -{ - if [ $INSTDIR != "" ]; then - echo Now install as root - sudo make -f makefile.pd-darwin install - fi -} diff --git a/externals/grill/dyn/build-pd-linux.sh b/externals/grill/dyn/build-pd-linux.sh deleted file mode 100644 index 9694fe16..00000000 --- a/externals/grill/dyn/build-pd-linux.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -. config-pd-linux.txt - -make -f makefile.pd-linux && -{ - if [ $INSTDIR != "" ]; then - echo Now install as root - su -c "make -f makefile.pd-linux install" - fi -} diff --git a/externals/grill/dyn/config-pd-darwin.txt b/externals/grill/dyn/config-pd-darwin.txt deleted file mode 100644 index 4c3c54c0..00000000 --- a/externals/grill/dyn/config-pd-darwin.txt +++ /dev/null @@ -1,17 +0,0 @@ - -# your c++ compiler (define only if it's different than g++) -# CXX=g++-3.3 - -# where are the PD header files? (m_pd.h, m_imp.h, g_canvas.h) -PDPATH=/Volumes/Daten/Prog/pd-0.37-4/src - -# where should flext libraries be built? -TARGDIR=./pd-darwin - -# where should the dyn library and header be installed? -# (leave blank to omit installation) -PREFIX=/usr/local - -# additional compiler flags -# (check if they fit for your system!) -UFLAGS=-malign-power -maltivec -faltivec diff --git a/externals/grill/dyn/config-pd-linux.txt b/externals/grill/dyn/config-pd-linux.txt deleted file mode 100644 index 36b17774..00000000 --- a/externals/grill/dyn/config-pd-linux.txt +++ /dev/null @@ -1,21 +0,0 @@ - -# your c++ compiler (define only if it's different than g++) -# CXX=g++-3.3 - -# prefix to install the dyn library and header files -# (leave blank to omit installation) -INSTDIR=/usr/local - -# where are the PD header files? (m_pd.h, m_imp.h, g_canvas.h) -PDPATH=/usr/src/pd/src - -# where should flext libraries be built? -TARGDIR=./pd-linux - -# where should the dyn library and header be installed? -# (leave blank to omit installation) -PREFIX=/usr/local - -# additional compiler flags -# (check if they fit for your system!) -# UFLAGS=-march=pentium4 diff --git a/externals/grill/dyn/dyn.h b/externals/grill/dyn/dyn.h deleted file mode 100644 index 507dd08a..00000000 --- a/externals/grill/dyn/dyn.h +++ /dev/null @@ -1,404 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2005 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#ifndef __DYN_H -#define __DYN_H - - -#define DYN_VERSION_MAJOR 0 -#define DYN_VERSION_MINOR 2 - -#define DYN_VERSION (DYN_VERSION_MAJOR*100+DYN_VERSION_MINOR) - - -#ifdef _MSC_VER - #ifdef DYN_EXPORTS - #define DYN_EXPORT __declspec(dllexport) - #else - #define DYN_EXPORT __declspec(dllimport) - #endif -#else - #define DYN_EXPORT -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/* This is needed to correctly import external data */ -#if defined(_WIN32) && !defined(NT) -#define NT -#endif - -/* include PD public header for some type definitions */ -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable: 4091 4244) -#endif -#include "m_pd.h" -#ifdef _MSC_VER -#pragma warning(pop) -#endif - - -#define DYN_ID_NONE 0 - - -/* error codes */ -#define DYN_ERROR_NONE 0 /* no error -> OK! */ - -#define DYN_ERROR_GENERAL -1 -#define DYN_ERROR_TYPEMISMATCH -2 -#define DYN_ERROR_NOTFOUND -3 -#define DYN_ERROR_NOTCREATED -4 /* error creating object */ - -#define DYN_ERROR_PARAMS -101 /* wrong parameters */ -#define DYN_ERROR_NOOBJ -102 /* object not found */ -#define DYN_ERROR_NOSUB -103 /* sub-patcher not found */ -#define DYN_ERROR_NOIN -104 /* inlet out of range */ -#define DYN_ERROR_NOOUT -105 /* outlet out of range */ - -#define DYN_ERROR_CONN_GENERAL -200 /* could not connect/disconnect */ -#define DYN_ERROR_CONN_PATCHER -201 /* objects to connect have different owners */ - - -/*! Constants for message scheduling */ -#define DYN_SCHED_AUTO -1 -#define DYN_SCHED_NOW 1 -#define DYN_SCHED_QUEUE 0 - - -/* object types */ -#define DYN_TYPE_PATCHER 1 /* object is a (sub-)patcher */ -#define DYN_TYPE_OBJECT 2 /* object is a real object */ -#define DYN_TYPE_MESSAGE 3 /* object is a message object */ -#define DYN_TYPE_TEXT 4 /* object is text comment */ -#define DYN_TYPE_CONN 5 /* object is a connection */ -#define DYN_TYPE_LISTENER 6 /* object is a listener to an outlet */ - - -/* inlet/outlet types */ -#define DYN_INOUT_MESSAGE 0 /* message inlet/outlet */ -#define DYN_INOUT_SIGNAL 1 /* signal inlet/outlet */ - -/* callback signals */ -#define DYN_SIGNAL_NEW 0 /* object has been created */ -#define DYN_SIGNAL_FREE 1 /* object has been destroyed */ -#define DYN_SIGNAL_DISCONN 2 /* object has been disconnected */ - - -/*! Type definition for any dyn object identifier */ -struct dyn_ident; -typedef dyn_ident *dyn_id; - - -/*! Type of an object enumeration function - \param id Object ID - \return 0 -> stop enumeration, != 0 -> go on -*/ -typedef int dyn_enumfun(dyn_id id,void *data); - -/* Type of an object callback function - \param id Object id - \param signal Type of signal (DYN_SIGNAL_* constant) - \param data User defined data, passed at object creation -*/ -typedef void dyn_callback(dyn_id id,int signal,void *data); - -/* Type of a listener function - \param lid Listener object ID - \param id Object ID - \param outlet Outlet index - \param sym Message tag - \param argc Message atom count - \param argv Message atom list -*/ -typedef void dyn_listener(dyn_id lid,dyn_id id,int outlet,const t_symbol *sym,int argc,const t_atom *argv,void *data); - - - -/*! Get dyn version number - \return version number major*100+minor -*/ -DYN_EXPORT int dyn_Version(); - -/*! Restrict dyn operation to the calling thread - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_Lock(); - -/*! Unrestrict dyn operation - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_Unlock(); - - -/*! Get number of pending scheduled operations - \return number of commands, error code < 0 -*/ -DYN_EXPORT int dyn_Pending(); - - -/*! Wait for all pending operations to finish - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_Finish(); - - -/*! Clear all objects - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_Reset(); - - -/*! Enumerate all objects in a patcher - \param pid Patcher object ID - \param fun Enumeration function - \param data User defined data - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_EnumObjects(dyn_id pid,dyn_enumfun fun,void *data); - - -/*! Create a new sub-patcher - \param sched Scheduling constant (DYN_SCHED_*) - \param id Pointer to new object id (returned on success) - \param cb Callback function - \param pid Pointer to parent patcher where the new object shall be created - \return ok = 0, error code < 0 - - \note If this command is queued, the object may not have been created on function return -*/ -DYN_EXPORT int dyn_NewPatcher(int sched,dyn_id *id,dyn_callback cb,dyn_id pid); - - -/*! Create a new object - \param sched Scheduling constant (DYN_SCHED_*) - \param id Pointer to new object id (returned on success) - \param cb Callback function - \param pid Pointer to parent patcher where the new object shall be created - \param obj Object name (symbol tag) - \param argc Number of argument atoms - \param argv Array of atoms - \return ok = 0, error code < 0 - - \note If this command is queued, the object may not have been created on function return -*/ -DYN_EXPORT int dyn_NewObject(int sched,dyn_id *id,dyn_callback cb,dyn_id pid,const t_symbol *obj,int argc,const t_atom *argv); - -/*! Create a new object (with string command line) - \param sched Scheduling constant (DYN_SCHED_*) - \param id Pointer to new object id (returned on success) - \param cb Callback function - \param pid Pointer to parent patcher where the new object shall be created - \param args String of object name and arguments - \return ok = 0, error code < 0 - - \note If this command is queued, the object may not have been created on function return -*/ -DYN_EXPORT int dyn_NewObjectStr(int sched,dyn_id *id,dyn_callback cb,dyn_id pid,const char *args); - - -/*! Create a new message object - \param sched Scheduling constant (DYN_SCHED_*) - \param id Pointer to new object id (returned on success) - \param cb Callback function - \param pid Pointer to parent patcher where the new object shall be created - \param argc Number of argument atoms - \param argv Array of atoms - \return ok = 0, error code < 0 - - \note If this command is queued, the object may not have been created on function return -*/ -DYN_EXPORT int dyn_NewMessage(int sched,dyn_id *id,dyn_callback cb,dyn_id pid,int argc,t_atom *argv); - -/*! Create a new message object (with string message) - \param sched Scheduling constant (DYN_SCHED_*) - \param id Pointer to new object id (returned on success) - \param cb Callback function - \param pid Pointer to parent patcher where the new object shall be created - \param msg String of message text - \return ok = 0, error code < 0 - - \note If this command is queued, the object may not have been created on function return -*/ -DYN_EXPORT int dyn_NewMessageStr(int sched,dyn_id *id,dyn_callback cb,dyn_id pid,const char *msg); - - -/*! Connect two dyn objects - \param sched Scheduling constant (DYN_SCHED_*) - \param id return pointer to newly created connection object - \param cb Callback function - \param sid Source Object id (already present in dyn) - \param outlet Source outlet index - \param did Drain Object id (already present in dyn) - \param outlet Drain inlet index - \return ok = 0, error code < 0 - - \note If this command is queued, the object may not have been created on function return -*/ -DYN_EXPORT int dyn_NewConnection(int sched,dyn_id *id,dyn_callback cb,dyn_id sid,int outlet,dyn_id did,int inlet); - - -/*! Delete a formerly created dyn object - \note This can be any dyn object of type DYN_TYPE_* - \note The ID will become invalid at function call - - \param sched Scheduling constant (DYN_SCHED_*) - \param id Object id (already present in dyn) - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_Free(int sched,dyn_id id); - - -/*! Attach a data packet to a dyn object - \param id Object ID (already present and valid) - \param data Pointer to data packet - \return ok = 0, error code < 0 - - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_SetData(dyn_id id,void *data); - - -/*! Retrieve a data packet from a dyn object - \param id Object ID (already present and valid) - \param data Pointer to data packet - \return ok = 0, error code < 0 - - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetData(dyn_id id,void **data); - - -/*! Retrieve the object type - \param id Object ID (already present and valid) - \return object type (DYN_TYPE_*) >= 0, error code < 0 - - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetType(dyn_id id); - - -/*! Get number of inlets - \param id Object ID (already present and valid) - \return Number of inlets >= 0, error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetInletCount(dyn_id id); - -/*! Get number of outlets - \param id Object ID (already present and valid) - \return Number of outlets >= 0, error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetOutletCount(dyn_id id); - - -/*! Get inlet type - \param id Object ID (already present and valid) - \param inlet Inlet index - \return Inlet type >= 0 (DYN_INOUT_MESSAGE or DYN_INOUT_SIGNAL), error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetInletType(dyn_id id,int inlet); - -/*! Get outlet type - \param id Object ID (already present and valid) - \param outlet Outlet index - \return Outlet type >= 0 (DYN_INOUT_MESSAGE or DYN_INOUT_SIGNAL), error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetOutletType(dyn_id id,int outlet); - - -/*! Enumerate connections to inlet - \param id Object ID (already present and valid) - \param inlet Inlet index - \param fun Enumeration function - \param data User data - \return ok = 0, error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_EnumInletConnections(dyn_id id,int inlet,dyn_enumfun fun,void *data); - -/*! Enumerate connections from outlet - \param id Object ID (already present and valid) - \param outlet Outlet index - \param fun Enumeration function - \param data User data - \return ok = 0, error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_EnumOutletConnections(dyn_id id,int outlet,dyn_enumfun fun,void *data); - - -/*! Get source object of a connection - \param cid Connection object ID - \param oid Return pointer for connected object ID (may be NULL if not needed) - \param outlet Return int for outlet index (may be NULL if not needed) - \return ok = 0, error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetConnectionSource(dyn_id cid,dyn_id *oid,int *outlet); - -/*! Get drain object of a connection - \param cid Connection object ID - \param oid Return pointer for connected object ID (may be NULL if not needed) - \param inlet Return int for inlet index (may be NULL if not needed) - \return ok = 0, error code < 0 - \note This is executed immediately without scheduling -*/ -DYN_EXPORT int dyn_GetConnectionDrain(dyn_id cid,dyn_id *oid,int *inlet); - - -/*! Send a message to a dyn object - \remark This often avoids the need for a connection to the respective object - - \param sched Scheduling constant (DYN_SCHED_*) - \param id Object ID - \param inlet Inlet index to send message to - \param sym Message tag - \param argc Message atom count - \param argv Message atom list - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_Send(int sched,dyn_id id,int inlet,const t_symbol *sym,int argc,const t_atom *argv); - -/*! Send a message (as a string) to a dyn object - \remark This often avoids the need for a connection to the respective object - - \param sched Scheduling constant (DYN_SCHED_*) - \param id Object ID - \param inlet Inlet index to send message to - \param msg Message string - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_SendStr(int sched,dyn_id id,int inlet,const char *msg); - -/*! Listen to the outlet of a dyn object - \remark This often avoids the need for a connection to the respective object - - \param sched Scheduling constant (DYN_SCHED_*) - \param id Backpointer to created listener object ID - \param oid Object ID to listen to - \param outlet Outlet index to listen to - \param cb Listener callback function - \param data User data - \return ok = 0, error code < 0 -*/ -DYN_EXPORT int dyn_Listen(int sched,dyn_id *id,dyn_id oid,int outlet,dyn_listener cb,void *data); - - -#ifdef __cplusplus -} -#endif - - -#endif /* __DYN_H */ diff --git a/externals/grill/dyn/dyn.vcproj b/externals/grill/dyn/dyn.vcproj deleted file mode 100644 index a96562aa..00000000 --- a/externals/grill/dyn/dyn.vcproj +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/grill/dyn/dyn_api.cpp b/externals/grill/dyn/dyn_api.cpp deleted file mode 100644 index c1ecbf72..00000000 --- a/externals/grill/dyn/dyn_api.cpp +++ /dev/null @@ -1,269 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -DYN_EXPORT int dyn_EnumObjects(dyn_id id,dyn_enumfun fun,void *data) -{ - dyn_patcher *p; - if(id && (p = id->Patcher())) { - p->Enumerate(fun,data); - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_NOTFOUND; -} - -DYN_EXPORT int dyn_NewPatcher(int sched,dyn_id *sid,dyn_callback cb,dyn_id psid /*,const char *name*/) -{ - try { - ASSERT(sid); - *sid = NewObject(DYN_TYPE_PATCHER,cb,psid,NULL); - return *sid?DYN_ERROR_NONE:DYN_ERROR_GENERAL; - } - catch(int err) { return err; } -} - -DYN_EXPORT int dyn_NewObject(int sched,dyn_id *oid,dyn_callback cb,dyn_id sid,const t_symbol *obj,int argc,const t_atom *argv) -{ - try { - ASSERT(oid); - *oid = NewObject(DYN_TYPE_OBJECT,cb,sid,obj,argc,argv); - return *oid?DYN_ERROR_NONE:DYN_ERROR_GENERAL; - } - catch(int err) { return err; } -} - -DYN_EXPORT int dyn_NewObjectStr(int sched,dyn_id *oid,dyn_callback cb,dyn_id sid,const char *args) -{ - t_binbuf *b = binbuf_new(); - binbuf_text(b,(char *)args,strlen(args)); - int argc = binbuf_getnatom(b); - t_atom *argv = binbuf_getvec(b); - int ret; - if(argc) { - t_symbol *sym; - if(argv->a_type == A_SYMBOL) { sym = atom_getsymbol(argv); argc--,argv++; } - else sym = &s_list; - ret = dyn_NewObject(sched,oid,cb,sid,sym,argc,argv); - } - else - ret = DYN_ERROR_PARAMS; - binbuf_free(b); - return ret; -} - -DYN_EXPORT int dyn_NewMessage(int sched,dyn_id *oid,dyn_callback cb,dyn_id sid,int argc,t_atom *argv) -{ - try { - ASSERT(oid); - *oid = NewObject(DYN_TYPE_MESSAGE,cb,sid,NULL,argc,argv); - return *oid?DYN_ERROR_NONE:DYN_ERROR_GENERAL; - } - catch(int err) { return err; } -} - -DYN_EXPORT int dyn_NewMessageStr(int sched,dyn_id *oid,dyn_callback cb,dyn_id sid,const char *msg) -{ - t_binbuf *b = binbuf_new(); - binbuf_text(b,(char *)msg,strlen(msg)); - int argc = binbuf_getnatom(b); - t_atom *argv = binbuf_getvec(b); - int ret = dyn_NewMessage(sched,oid,cb,sid,argc,argv); - binbuf_free(b); - return ret; -} - -DYN_EXPORT int dyn_NewConnection(int sched,dyn_id *cid,dyn_callback cb,dyn_id soid,int outlet,dyn_id doid,int inlet) -{ - ASSERT(cid); - ASSERT(soid && inlet >= 0); - ASSERT(doid && outlet >= 0); - - dyn_patchable *sobj = soid->Patchable(); - dyn_patchable *dobj = doid->Patchable(); - - int ret = DYN_ERROR_NONE; - dyn_id conn = DYN_ID_NONE; - - if(!sobj || !dobj) { - ret = DYN_ERROR_TYPEMISMATCH; - goto error; - } - - if(sobj->owner != dobj->owner) { - ret = DYN_ERROR_CONN_PATCHER; - goto error; - } - - { - dyn_patcher *patcher = sobj->owner; - ASSERT(patcher); - - // sys_lock(); - - canvas_setcurrent(patcher->glist()); - bool ok = - !canvas_isconnected(patcher->glist(),(t_text *)sobj->pdobj,outlet,(t_text *)dobj->pdobj,inlet) && - obj_connect((t_object *)sobj->pdobj, outlet,(t_object *)dobj->pdobj,inlet); - canvas_unsetcurrent(patcher->glist()); - // sys_unlock(); - - if(!ok) { - ret = DYN_ERROR_CONN_GENERAL; - goto error; - } - } - - conn = new dyn_ident(DYN_TYPE_CONN,cb); - conn->Set(new dyn_conn(conn,soid,outlet,doid,inlet)); - - // add connection to object lists - sobj->AddOutlet(conn->Conn()); - dobj->AddInlet(conn->Conn()); - - *cid = conn; - return ret; - -error: - if(conn != DYN_ID_NONE) delete conn; - return ret; -} - -DYN_EXPORT int dyn_Free(int sched,dyn_id oid) -{ - try { - DelObject(oid); - return DYN_ERROR_NONE; - } - catch(int err) { return err; } -} - -// NOT IMPLEMENTED -DYN_EXPORT int dyn_Reset() -{ - return DYN_ERROR_GENERAL; -} - - -DYN_EXPORT int dyn_SetData(dyn_id oid,void *data) -{ - if(oid) { - oid->userdata = data; - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_NOTFOUND; -} - -DYN_EXPORT int dyn_GetData(dyn_id oid,void **data) -{ - ASSERT(data); - if(oid) { - *data = oid->userdata; - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_NOTFOUND; -} - - -DYN_EXPORT int dyn_GetType(dyn_id oid) -{ - if(oid) - return oid->type; - else - return DYN_ERROR_NOTFOUND; -} - - -DYN_EXPORT int dyn_GetInletCount(dyn_id id) -{ - dyn_patchable *p; - if(id && (p = id->Patchable())) - return p->GetInletCount(); - else - return DYN_ERROR_NOTFOUND; -} - -DYN_EXPORT int dyn_GetOutletCount(dyn_id id) -{ - dyn_patchable *p; - if(id && (p = id->Patchable())) - return p->GetOutletCount(); - else - return DYN_ERROR_NOTFOUND; -} - -DYN_EXPORT int dyn_GetInletType(dyn_id id,int inlet) -{ - dyn_patchable *p; - if(id && (p = id->Patchable())) - return p->GetInletType(inlet); - else - return DYN_ERROR_NOTFOUND; -} - -DYN_EXPORT int dyn_GetOutletType(dyn_id id,int outlet) -{ - dyn_patchable *p; - if(id && (p = id->Patchable())) - return p->GetOutletType(outlet); - else - return DYN_ERROR_NOTFOUND; -} - - -DYN_EXPORT int dyn_GetConnectionSource(dyn_id cid,dyn_id *soid,int *outlet) -{ - ASSERT(soid && outlet); - dyn_conn *c; - if(cid && (c = cid->Conn())) { - *soid = c->src; - *outlet = c->slet; - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_NOTFOUND; -} - -DYN_EXPORT int dyn_GetConnectionDrain(dyn_id cid,dyn_id *doid,int *inlet) -{ - ASSERT(doid && inlet); - dyn_conn *c; - if(cid && (c = cid->Conn())) { - *doid = c->dst; - *inlet = c->dlet; - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_NOTFOUND; -} - - -DYN_EXPORT int dyn_EnumInletConnections(dyn_id id,int inlet,dyn_enumfun fun,void *data) -{ - dyn_patchable *p; - if(id && (p = id->Patchable())) { - p->EnumInlet(inlet,fun,data); - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_NOTFOUND; -} - -DYN_EXPORT int dyn_EnumOutletConnections(dyn_id id,int outlet,dyn_enumfun fun,void *data) -{ - dyn_patchable *p; - if(id && (p = id->Patchable())) { - p->EnumOutlet(outlet,fun,data); - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_NOTFOUND; -} diff --git a/externals/grill/dyn/dyn_base.cpp b/externals/grill/dyn/dyn_base.cpp deleted file mode 100644 index 72ee90f0..00000000 --- a/externals/grill/dyn/dyn_base.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -dyn_base::dyn_base(dyn_id id) - : ident(id) -{ - ident->Callback(DYN_SIGNAL_NEW); -} - -dyn_base::~dyn_base() -{ - // ident should already have been anonymized... - ASSERT(!ident->data); - - ident->Callback(DYN_SIGNAL_FREE); -} diff --git a/externals/grill/dyn/dyn_conn.cpp b/externals/grill/dyn/dyn_conn.cpp deleted file mode 100644 index b55d10cb..00000000 --- a/externals/grill/dyn/dyn_conn.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -dyn_conn::~dyn_conn() -{ - dyn_patchable *sobj = NULL,*dobj = NULL; - if(src != DYN_ID_NONE && (sobj = src->Patchable())) - sobj->RmvOutlet(this); - - if(dst != DYN_ID_NONE && (dobj = dst->Patchable())) - dobj->RmvInlet(this); - - if(sobj || dobj) { - src = dst = DYN_ID_NONE; - ident->Callback(DYN_SIGNAL_DISCONN); - } - - if(sobj && dobj) { -// sys_lock(); - obj_disconnect((t_object *)sobj->pdobj,slet,(t_object *)dobj->pdobj,dlet); -// sys_unlock(); - } -} - -/* -void dyn_conn::Invalidate() -{ - if(src != DYN_ID_NONE || dst != DYN_ID_NONE) { - src = dst = DYN_ID_NONE; - ident->Callback(DYN_SIGNAL_DISCONN); - } -} -*/ - diff --git a/externals/grill/dyn/dyn_create.cpp b/externals/grill/dyn/dyn_create.cpp deleted file mode 100644 index b53ed89a..00000000 --- a/externals/grill/dyn/dyn_create.cpp +++ /dev/null @@ -1,246 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" -#include - -static const t_symbol *k_obj = gensym("obj"); -static const t_symbol *k_msg = gensym("msg"); -static const t_symbol *k_text = gensym("text"); - -static const t_symbol *sym_vis = gensym("vis"); -static const t_symbol *sym_loadbang = gensym("loadbang"); -static const t_symbol *sym_pd = gensym("pd"); -static const t_symbol *sym_dsp = gensym("dsp"); - -static const t_symbol *sym_dyn = gensym("dyn"); -static const t_symbol *sym_dot = gensym("."); - - -static t_gobj *getlast(t_glist *gl) -{ - t_gobj *go = gl->gl_list; - if(go) - while(go->g_next) go = go->g_next; - return go; -} - - -void *NewPDObject(int type,t_glist *glist,const t_symbol *hdr,int _argc_,const t_atom *_argv_) -{ -// sys_lock(); - - const t_symbol *kind; - switch(type) { - case DYN_TYPE_PATCHER: - hdr = sym_pd; - // fall through - case DYN_TYPE_OBJECT: - kind = k_obj; - break; - case DYN_TYPE_MESSAGE: - kind = k_msg; - ASSERT(hdr == NULL); - break; - case DYN_TYPE_TEXT: - kind = k_text; - ASSERT(hdr == NULL); - break; - } - - void *newest = NULL; - t_gobj *last = NULL; - - if(type == DYN_TYPE_PATCHER && !glist) { - /* - For a dyn root canvas we can not simply put a [pd] into canvas_getcurrent - because the [pd] would be visible in this canvas then. - - On the other hand, we can also not simply create a new canvas with - canvas_getcurrent active because it would not be on the list of root dsp canvases - then. - - Hence, we have to pop all current canvases to be at the root, create our canvas - to be a real root canvas and then push back all the canvases. - */ - - /* - remember current directory - - abstractions residing in the directory of the current canvas - (which normally is the one hosting dyn) will be found - */ - t_symbol *dir; - if(canvas_getcurrent()) dir = canvas_getcurrentdir(); - else dir = const_cast(sym_dot); - - // pop current canvases - std::list glstack; - for(;;) { - t_glist *gl = canvas_getcurrent(); - if(!gl) break; - glstack.push_front(gl); - canvas_unsetcurrent(gl); - } - - // set canvas environment - // this must be done manually if there is no owner - glob_setfilename(NULL,const_cast(sym_dyn),dir); - - t_atom arg[6]; - SETFLOAT(arg+0,0); // xpos - SETFLOAT(arg+1,0); // ypos - SETFLOAT(arg+2,1000); // xwidth - SETFLOAT(arg+3,1000); // xwidth - SETSYMBOL(arg+4,const_cast(sym_dyncanvas)); // canvas name - SETFLOAT(arg+5,0); // invisible - - t_glist *canvas = canvas_new(NULL,NULL,6,arg); - /* or, alternatively - but this needs some message processing - pd_typedmess(&pd_canvasmaker,gensym("canvas"),6,arg); - t_glist *canvas = canvas_getcurrent(); - */ - - // must do that.... - canvas_unsetcurrent(canvas); - - // push back all the canvases - for(std::list::iterator it = glstack.begin(); it != glstack.end(); ++it) - canvas_setcurrent(*it); - - // clear environment - glob_setfilename(NULL,&s_,&s_); - - newest = canvas; - } - else { - ASSERT(glist); - - int argc = _argc_+(hdr?3:2); - t_atom *argv = new t_atom[argc]; - - // position x/y = 0/0 - t_atom *a = argv; - SETFLOAT(a,0); a++; - SETFLOAT(a,0); a++; - if(hdr) { SETSYMBOL(a,const_cast(hdr)); a++; } - memcpy(a,_argv_,_argc_*sizeof(t_atom)); - - last = getlast(glist); - - // set selected canvas as current - pd_typedmess((t_pd *)glist,(t_symbol *)kind,argc,argv); -// canvas_obj(glist,(t_symbol *)kind,argc,argv); - newest = getlast(glist); - - delete[] argv; - } - - if(kind == k_obj && glist) { - // check for created objects and abstractions - - t_object *o = (t_object *)pd_newest(); - - if(!o) { - // PD creates a text object when the intended object could not be created - t_gobj *trash = getlast(glist); - - // Test for newly created object.... - if(trash && last != trash) { - // Delete it! - glist_delete(glist,trash); - } - newest = NULL; - } - else - newest = &o->te_g; - } - - // look for latest created object - if(newest) { -// if(glist) canvas_setcurrent(glist); - - // send loadbang (if it is an abstraction) - if(pd_class(&((t_gobj *)newest)->g_pd) == canvas_class) { - // hide the sub-canvas - pd_vmess((t_pd *)newest,const_cast(sym_vis),"i",0); - - // loadbang the abstraction - pd_vmess((t_pd *)newest,const_cast(sym_loadbang),""); - } - - // restart dsp - that's necessary because ToCanvas is called manually - canvas_update_dsp(); - - // pop the current canvas -// if(glist) canvas_unsetcurrent(glist); - } - -// sys_unlock(); - - return newest; -} - -dyn_patcher *root = NULL; - -dyn_ident *NewObject(int type,dyn_callback cb,dyn_ident *owner,const t_symbol *hdr,int argc,const t_atom *argv) -{ - int err = DYN_ERROR_NONE; - dyn_ident *ret = NULL; - - dyn_patcher *p; - if(owner == DYN_ID_NONE) { - if(!root) { - void *newobj = NewPDObject(DYN_TYPE_PATCHER,NULL,NULL); - dyn_ident *id = new dyn_ident(DYN_TYPE_PATCHER,NULL); - root = new dyn_patcher(id,NULL,(t_glist *)newobj); - } - p = root; - } - else - p = owner->Patcher(); - - if(p) { - void *newobj = NewPDObject(type,p->glist(),hdr,argc,argv); - if(newobj) { - ret = new dyn_ident(type,cb); - - switch(type) { - case DYN_TYPE_PATCHER: - ret->Set(new dyn_patcher(ret,p,(t_glist *)newobj)); - break; - case DYN_TYPE_OBJECT: - ret->Set(new dyn_object(ret,p,(t_gobj *)newobj)); - break; - case DYN_TYPE_MESSAGE: - ret->Set(new dyn_message(ret,p,(t_gobj *)newobj)); - break; - case DYN_TYPE_TEXT: - ret->Set(new dyn_text(ret,p,(t_gobj *)newobj)); - break; - } - } - else - err = DYN_ERROR_NOTCREATED; - } - else - err = DYN_ERROR_NOSUB; - - if(err != DYN_ERROR_NONE) { - if(ret) delete ret; - throw err; - } - else - return ret; -} - -void DelObject(dyn_ident *obj) -{ - ASSERT(obj); - if(obj->data) Destroy(obj->data); // delete database object - delete obj; // delete ID -} diff --git a/externals/grill/dyn/dyn_data.h b/externals/grill/dyn/dyn_data.h deleted file mode 100644 index e3cc7486..00000000 --- a/externals/grill/dyn/dyn_data.h +++ /dev/null @@ -1,192 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#ifndef __DYN_DATA_H -#define __DYN_DATA_H - -#include "dyn_proxy.h" - -#include -#include - - -class dyn_patcher; -class dyn_conn; - - -class dyn_base -{ -public: - dyn_base(dyn_id id); - - dyn_id ident; - - friend void Destroy(dyn_base *b); -protected: - virtual ~dyn_base(); -}; - - -typedef std::set Objects; -typedef std::set Connections; -typedef std::map Proxies; - - -class dyn_patchable: - public dyn_base -{ -public: - dyn_patchable(dyn_id id,dyn_patcher *o,t_gobj *obj); - - void AddProxyIn(int inlet,proxyin *o) { pxin[inlet] = o; } - void RmvProxyIn(int inlet) { pxin.erase(inlet); } - proxyin *GetProxyIn(int inlet) { Proxies::iterator it = pxin.find(inlet); return it != pxin.end()?(proxyin *)it->second:NULL; } - void AddProxyOut(int outlet,proxyout *o) { pxout[outlet] = o; } - void RmvProxyOut(int outlet) { pxout.erase(outlet); } - proxyout *GetProxyOut(int outlet) { Proxies::iterator it = pxout.find(outlet); return it != pxout.end()?(proxyout *)it->second:NULL; } - - int GetInletCount() const { return obj_ninlets((t_object *)pdobj); } - int GetOutletCount() const { return obj_noutlets((t_object *)pdobj); } - int GetInletType(int ix) const { return obj_issignalinlet((t_object *)pdobj,ix)?DYN_INOUT_SIGNAL:DYN_INOUT_MESSAGE; } - int GetOutletType(int ix) const { return obj_issignaloutlet((t_object *)pdobj,ix)?DYN_INOUT_SIGNAL:DYN_INOUT_MESSAGE; } - - void AddInlet(dyn_conn *o); - void RmvInlet(dyn_conn *o); - void AddOutlet(dyn_conn *o); - void RmvOutlet(dyn_conn *o); - - void EnumInlet(int ix,dyn_enumfun fun,void *data); - void EnumOutlet(int ix,dyn_enumfun fun,void *data); - - t_gobj *pdobj; // PD object - dyn_patcher *owner; // patcher - -protected: - virtual ~dyn_patchable(); - - Proxies pxin,pxout; - Connections inconns,outconns; -}; - -class dyn_patcher: - public dyn_patchable -{ -public: - dyn_patcher(dyn_id id,dyn_patcher *o,t_glist *obj): dyn_patchable(id,o,(t_gobj *)obj) {} - virtual ~dyn_patcher(); - - t_glist *glist() { return (t_glist *)pdobj; } - - void Add(dyn_base *o) { objs.insert(o); } - void Remove(dyn_base *o) { objs.erase(o); } - - void Enumerate(dyn_enumfun fun,void *data); - -protected: - Objects objs; -}; - -class dyn_object: - public dyn_patchable -{ -public: - dyn_object(dyn_id id,dyn_patcher *o,t_gobj *obj): dyn_patchable(id,o,obj) {} -}; - -class dyn_message: - public dyn_patchable -{ -public: - dyn_message(dyn_id id,dyn_patcher *o,t_gobj *obj): dyn_patchable(id,o,obj) {} -}; - -class dyn_text: - public dyn_patchable -{ -public: - dyn_text(dyn_id id,dyn_patcher *o,t_gobj *obj): dyn_patchable(id,o,obj) {} -}; - - -class dyn_conn: - public dyn_base -{ -public: - dyn_conn(dyn_id id,dyn_id s,int six,dyn_id d,int dix) - : dyn_base(id) - , src(s),slet(six),dst(d),dlet(dix) - {} - - dyn_id src,dst; // connected objects - int slet,dlet; - -protected: - virtual ~dyn_conn(); -}; - -class dyn_listen: - public dyn_base -{ -public: - dyn_listen(dyn_id id,proxyout *p,dyn_listener cb,void *dt) - : dyn_base(id),px(p) - , callback(cb),userdata(dt) - {} - - void Callback(int outlet,const t_symbol *sym,int argc,const t_atom *argv) - { - if(callback) callback(ident,px->object->ident,outlet,sym,argc,argv,userdata); - } - - proxyout *px; - dyn_listener *callback; - void *userdata; -protected: - virtual ~dyn_listen(); -}; - - -struct dyn_ident -{ - dyn_ident(int tp,dyn_callback cb,void *dt = NULL): - type(tp),data(NULL), - callback(cb),userdata(dt) - {} - - ~dyn_ident() - { - // data should already have been cleared by the objects - ASSERT(!data); - } - - void Set(dyn_base *obj) { data = obj; } - - void Callback(int signal) { if(callback) callback(this,signal,userdata); } - - dyn_patcher *Patcher() { return dynamic_cast(data); } - dyn_object *Object() { return dynamic_cast(data); } - dyn_message *Message() { return dynamic_cast(data); } - dyn_text *Text() { return dynamic_cast(data); } - dyn_conn *Conn() { return dynamic_cast(data); } - dyn_patchable *Patchable() { return dynamic_cast(data); } - dyn_listen *Listen() { return dynamic_cast(data); } - - int type; - dyn_base *data; - - dyn_callback *callback; - void *userdata; -}; - -inline void Destroy(dyn_base *b) -{ - b->ident->data = NULL; - delete b; -} - -#endif diff --git a/externals/grill/dyn/dyn_listen.cpp b/externals/grill/dyn/dyn_listen.cpp deleted file mode 100644 index beb5d7fc..00000000 --- a/externals/grill/dyn/dyn_listen.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -DYN_EXPORT int dyn_Listen(int sched,dyn_id *id,dyn_id oid,int outlet,dyn_listener cb,void *data) -{ - ASSERT(id); - - if(oid == DYN_ID_NONE) return DYN_ERROR_NOTFOUND; - - dyn_patchable *obj = oid->Patchable(); - if(obj) { - proxyout *px = obj->GetProxyOut(outlet); - if(!px) { - dyn_patcher *patcher = obj->owner; - ASSERT(patcher); - - // put proxy on the same canvas as this object for it can be connected to it! - px = (proxyout *)NewPDObject(DYN_TYPE_OBJECT,patcher->glist(),sym_dynpxout); - if(px) { - px->init(obj,outlet); - -// sys_lock(); - -// canvas_setcurrent(patcher->glist()); - // connect to associated object - if(obj_connect((t_object *)obj->pdobj,outlet,&px->pdobj,0)) { - obj->AddProxyOut(outlet,px); - } - else { - // delete object; - glist_delete(patcher->glist(),(t_gobj *)px); - px = NULL; - - // could not connect - post("Couldn't connect proxy object"); - } -// canvas_unsetcurrent(patcher->glist()); - -// sys_unlock(); - } - } - - if(px) { - dyn_ident *nid = new dyn_ident(DYN_TYPE_LISTENER,oid->callback,data); - dyn_listen *l = new dyn_listen(nid,px,cb,data); - proxyout::Add(px,l); - nid->Set(l); - *id = nid; - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_GENERAL; - } - else - return DYN_ERROR_TYPEMISMATCH; -} - -dyn_listen::~dyn_listen() -{ - proxyout::Rmv(px,this); -} diff --git a/externals/grill/dyn/dyn_main.cpp b/externals/grill/dyn/dyn_main.cpp deleted file mode 100644 index 232a1420..00000000 --- a/externals/grill/dyn/dyn_main.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -t_class *pxin_class,*pxout_class; -t_class *pxins_class,*pxouts_class; - -static t_object *pxin_new() { return (t_object *)pd_new(pxin_class); } -static t_object *pxins_new() { return (t_object *)pd_new(pxins_class); } -static t_object *pxout_new() { return (t_object *)pd_new(pxout_class); } -static t_object *pxouts_new() { return (t_object *)pd_new(pxouts_class); } - - -const t_symbol *sym_dyncanvas = gensym(" dyn canvas "); -const t_symbol *sym_dynsxin = gensym(" dyn in~ "); -const t_symbol *sym_dynsxout = gensym(" dyn out~ "); -const t_symbol *sym_dynpxin = gensym(" dyn in "); -const t_symbol *sym_dynpxout = gensym(" dyn out "); - -static const t_symbol *sym_dsp = gensym("dsp"); - - -static bool dyn_init() -{ - // set up proxy class for inbound messages - pxin_class = class_new(const_cast(sym_dynpxin),(t_newmethod)pxin_new,(t_method)proxy::px_exit,sizeof(proxyin),0, A_NULL); - class_addanything(pxin_class,proxyin::px_method); - - // set up proxy class for inbound signals - pxins_class = class_new(const_cast(sym_dynsxin),(t_newmethod)pxins_new,(t_method)proxy::px_exit,sizeof(proxyin),0, A_NULL); - class_addmethod(pxins_class,(t_method)proxyin::dsp,const_cast(sym_dsp),A_NULL); - CLASS_MAINSIGNALIN(pxins_class,proxyin,defsig); - - // set up proxy class for outbound messages - pxout_class = class_new(const_cast(sym_dynpxout),(t_newmethod)pxout_new,(t_method)proxy::px_exit,sizeof(proxyout),0, A_NULL); - class_addanything(pxout_class,proxyout::px_method); - - // set up proxy class for outbound signals - pxouts_class = class_new(const_cast(sym_dynsxout),(t_newmethod)pxouts_new,(t_method)proxy::px_exit,sizeof(proxyout),0, A_NULL); - class_addmethod(pxouts_class,(t_method)proxyout::dsp,const_cast(sym_dsp),A_NULL); - CLASS_MAINSIGNALIN(pxouts_class,proxyout,defsig); - - return true; -} - -// static variables are hopefully initialized in order of appearance -// dyn_init depends on the symbols above -static bool init = dyn_init(); - - -DYN_EXPORT int dyn_Version() -{ - return DYN_VERSION; -} - -// \todo Implement -DYN_EXPORT int dyn_Lock() -{ - return DYN_ERROR_GENERAL; -} - -// \todo Implement -DYN_EXPORT int dyn_Unlock() -{ - return DYN_ERROR_GENERAL; -} - -// \todo Implement -DYN_EXPORT int dyn_Pending() -{ - return 0; -} - -// \todo Implement -DYN_EXPORT int dyn_Finish() -{ - return DYN_ERROR_GENERAL; -} - diff --git a/externals/grill/dyn/dyn_message.cpp b/externals/grill/dyn/dyn_message.cpp deleted file mode 100644 index 1a5120b6..00000000 --- a/externals/grill/dyn/dyn_message.cpp +++ /dev/null @@ -1,10 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - diff --git a/externals/grill/dyn/dyn_object.cpp b/externals/grill/dyn/dyn_object.cpp deleted file mode 100644 index 8bcf8c4c..00000000 --- a/externals/grill/dyn/dyn_object.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" diff --git a/externals/grill/dyn/dyn_patchable.cpp b/externals/grill/dyn/dyn_patchable.cpp deleted file mode 100644 index a61930e7..00000000 --- a/externals/grill/dyn/dyn_patchable.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -dyn_patchable::dyn_patchable(dyn_id id,dyn_patcher *o,t_gobj *obj) - : dyn_base(id) - , pdobj(obj),owner(o) -{ - if(owner) owner->Add(this); -} - -dyn_patchable::~dyn_patchable() -{ - if(owner) { - // if no owner, it must be a "root" patcher, which is not connectable - - owner->Remove(this); - - t_glist *glist = owner->glist(); - - // canvas_setcurrent(glist); - - // delete object itself - glist_delete(glist,pdobj); - - // delete proxies - for(Proxies::iterator iit = pxin.begin(); iit != pxin.end(); ++iit) { - proxyin *px = (proxyin *)iit->second; - glist_delete(glist,(t_gobj *)px); - } - - for(Proxies::iterator oit = pxout.begin(); oit != pxout.end(); ++oit) { - proxyout *px = (proxyout *)oit->second; - glist_delete(glist,(t_gobj *)px); - } - - // canvas_unsetcurrent(glist); - - // invalidate all associated connection objects - // the connection objects will not be deleted here! - Connections::iterator cit; - for(cit = inconns.begin(); cit != inconns.end(); ++cit) - Destroy(*cit); - - for(cit = outconns.begin(); cit != outconns.end(); ++cit) - Destroy(*cit); - } - else { - dyn_patcher *p = dynamic_cast(this); - ASSERT(p); - - // delete "root"-patcher - canvas_free(p->glist()); - } -} - -void dyn_patchable::AddInlet(dyn_conn *o) -{ - ASSERT(inconns.find(o) == inconns.end()); - inconns.insert(o); -} - -void dyn_patchable::RmvInlet(dyn_conn *o) -{ - ASSERT(inconns.find(o) != inconns.end()); - inconns.erase(o); -} - -void dyn_patchable::AddOutlet(dyn_conn *o) -{ - ASSERT(outconns.find(o) == outconns.end()); - outconns.insert(o); -} - -void dyn_patchable::RmvOutlet(dyn_conn *o) -{ - ASSERT(outconns.find(o) != outconns.end()); - outconns.erase(o); -} - -void dyn_patchable::EnumInlet(int ix,dyn_enumfun fun,void *data) -{ - for(Connections::const_iterator it = inconns.begin(); it != inconns.end(); ++it) { - const dyn_conn *c = *it; - if(c->dlet == ix && !fun(c->ident,data)) break; - } -} - -void dyn_patchable::EnumOutlet(int ix,dyn_enumfun fun,void *data) -{ - for(Connections::const_iterator it = outconns.begin(); it != outconns.end(); ++it) { - const dyn_conn *c = *it; - if(c->slet == ix && !fun(c->ident,data)) break; - } -} diff --git a/externals/grill/dyn/dyn_patcher.cpp b/externals/grill/dyn/dyn_patcher.cpp deleted file mode 100644 index 820a3c14..00000000 --- a/externals/grill/dyn/dyn_patcher.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -dyn_patcher::~dyn_patcher() -{ - // delete sub-objects - while(!objs.empty()) { - // objects delete themselves from the container! - Destroy(*objs.begin()); - } -} - -void dyn_patcher::Enumerate(dyn_enumfun fun,void *data) -{ - for(Objects::const_iterator it = objs.begin(); it != objs.end(); ++it) - if(fun((*it)->ident,data)) break; -} diff --git a/externals/grill/dyn/dyn_pd.h b/externals/grill/dyn/dyn_pd.h deleted file mode 100644 index 3832fe04..00000000 --- a/externals/grill/dyn/dyn_pd.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#ifndef __DYN_PD_H -#define __DYN_PD_H - -#include "dyn.h" - -#ifdef _MSC_VER -#pragma warning(disable: 4091 4244) -#endif -extern "C" { -#include "m_imp.h" -#include "g_canvas.h" -} - -#include -#ifdef _MSC_VER -#include -#define ASSERT _ASSERTE -#else -#define ASSERT assert -#endif - -#endif - diff --git a/externals/grill/dyn/dyn_proto.h b/externals/grill/dyn/dyn_proto.h deleted file mode 100644 index b2b82710..00000000 --- a/externals/grill/dyn/dyn_proto.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#ifndef __DYN_PROTO_H -#define __DYN_PROTO_H - -#include "dyn_data.h" - -// \todo really align.. -inline void *NewAligned(int n) { return new char[n]; } -inline void FreeAligned(void *b) { delete[] (char *)b; } - -extern t_class *pxin_class,*pxout_class; -extern t_class *pxins_class,*pxouts_class; - -extern const t_symbol *sym_dyncanvas; -extern const t_symbol *sym_dynsxin,*sym_dynsxout,*sym_dynpxin,*sym_dynpxout; - - -void *NewPDObject(int type,t_glist *glist,const t_symbol *hdr,int argc = 0,const t_atom *argv = NULL); -dyn_ident *NewObject(int type,dyn_callback cb,dyn_ident *owner,const t_symbol *hdr,int argc = 0,const t_atom *argv = NULL); -void DelObject(dyn_ident *obj); - -#endif diff --git a/externals/grill/dyn/dyn_proxy.cpp b/externals/grill/dyn/dyn_proxy.cpp deleted file mode 100644 index f2b85a91..00000000 --- a/externals/grill/dyn/dyn_proxy.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -// proxy - -void proxy::px_exit(proxy *px) -{ - if(px->buf) FreeAligned(px->buf); -} - - -// proxyin - -void proxyin::init(dyn_patchable *obj,bool s) -{ - proxy::init(obj); - outlet = outlet_new(&pdobj,s?&s_signal:&s_anything); -} - -void proxyin::px_method(proxyin *th,const t_symbol *s,int argc,const t_atom *argv) -{ - // send to connected object - outlet_anything(th->outlet,(t_symbol *)s,argc,(t_atom *)argv); -} - -void proxyin::dsp(proxyin *x, t_signal **sp) -{ - int n = sp[0]->s_n; - if(n != x->n) { - // if vector size has changed make new buffer - if(x->buf) FreeAligned(x->buf); - x->buf = (t_sample *)NewAligned(sizeof(t_sample)*(x->n = n)); - } - dsp_add_copy(x->buf,sp[0]->s_vec,n); -} - - -// proxyout - -void proxyout::init(dyn_patchable *obj,int o,bool s) -{ - proxy::init(obj); - listeners = new Listeners; - outlet = o; - if(s) outlet_new(&pdobj,&s_signal); -} - -void proxyout::exit() -{ - // invalidate all listeners - for(Listeners::const_iterator it = listeners->begin(); it != listeners->end(); ++it) - Destroy(*it); - // delete container - delete listeners; -} - -void proxyout::Rmv(proxyout *px,dyn_listen *l) -{ - px->listeners->erase(l); - - // if there are no more listeners we can delete the object! - if(px->listeners->empty()) { - dyn_patcher *p = px->object->owner; - - // remove reference - px->object->RmvProxyOut(px->outlet); - - // delete PD object - glist_delete(p->glist(),(t_gobj *)px); - } -} - -void proxyout::px_method(proxyout *th,const t_symbol *s,int argc,const t_atom *argv) -{ - // call attached responders - for(Listeners::const_iterator it = th->listeners->begin(); it != th->listeners->end(); ++it) - (*it)->Callback(th->outlet,s,argc,argv); -} - -void proxyout::dsp(proxyout *x, t_signal **sp) -{ - int n = sp[0]->s_n; - if(n != x->n) { - // if vector size has changed make new buffer - if(x->buf) FreeAligned(x->buf); - x->buf = (t_sample *)NewAligned(sizeof(t_sample)*(x->n = n)); - } - dsp_add_copy(sp[0]->s_vec,x->buf,n); -} diff --git a/externals/grill/dyn/dyn_proxy.h b/externals/grill/dyn/dyn_proxy.h deleted file mode 100644 index 9430d390..00000000 --- a/externals/grill/dyn/dyn_proxy.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#ifndef __DYN_PROXY_H -#define __DYN_PROXY_H - -#include "dyn.h" -#include "dyn_pd.h" - -#include - -class dyn_patchable; -class dyn_listen; - -// attention... no virtual table allowed! -class proxy -{ -public: - t_object pdobj; // must be first - dyn_patchable *object; - int n; - t_sample *buf; - t_sample defsig; - - void init(dyn_patchable *o) { object = o,n = 0,buf = NULL,defsig = 0; } - - static void px_exit(proxy *px); -}; - -// proxy for inbound messages -class proxyin: - public proxy -{ -public: - t_outlet *outlet; - - void Message(const t_symbol *s,int argc,const t_atom *argv) - { - typedmess((t_pd *)&pdobj,(t_symbol *)s,argc,(t_atom *)argv); - } - - void init(dyn_patchable *obj,bool s = false); - void exit() { outlet = NULL; } - - static void px_method(proxyin *obj,const t_symbol *s,int argc,const t_atom *argv); - static void dsp(proxyin *x, t_signal **sp); -}; - -typedef std::set Listeners; - -// proxy for outbound messages -class proxyout: - public proxy -{ -public: - int outlet; - Listeners *listeners; // this is initialized in init - - static void Add(proxyout *px,dyn_listen *l) { px->listeners->insert(l); } - static void Rmv(proxyout *px,dyn_listen *l); - - void init(dyn_patchable *obj,int o,bool s = false); - void exit(); - - static void px_method(proxyout *obj,const t_symbol *s,int argc,const t_atom *argv); - static void dsp(proxyout *x, t_signal **sp); -}; - -#endif diff --git a/externals/grill/dyn/dyn_send.cpp b/externals/grill/dyn/dyn_send.cpp deleted file mode 100644 index efd36849..00000000 --- a/externals/grill/dyn/dyn_send.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" - -DYN_EXPORT int dyn_Send(int sched,dyn_id oid,int inlet,const t_symbol *sym,int argc,const t_atom *argv) -{ - ASSERT(oid); - dyn_patchable *obj = oid->Patchable(); - - if(obj) { - /* - It seems that we need connections (and proxy objects) for all inlets. - Sending typed messages to the 0-inlet doesn't work for abstractions. - */ - - proxyin *px = obj->GetProxyIn(inlet); - if(!px) { - dyn_patcher *patcher = obj->owner; - ASSERT(patcher); - - px = (proxyin *)NewPDObject(DYN_TYPE_OBJECT,patcher->glist(),sym_dynpxin); - if(px) { - px->init(obj); - -// sys_lock(); - -// canvas_setcurrent(patcher->glist()); - // connect to associated object - if(obj_connect(&px->pdobj,0,(t_object *)obj->pdobj,inlet)) { - obj->AddProxyIn(inlet,px); - } - else { - glist_delete(patcher->glist(),(t_gobj *)px); - px = NULL; - - // could not connect - post("Couldn't connect proxy object"); - } -// canvas_unsetcurrent(patcher->glist()); -// sys_unlock(); - } - } - - if(px) { -// sys_lock(); - px->Message(sym,argc,argv); -// sys_unlock(); - return DYN_ERROR_NONE; - } - else - return DYN_ERROR_GENERAL; - } - else - return DYN_ERROR_TYPEMISMATCH; -} - -DYN_EXPORT int dyn_SendStr(int sched,dyn_id id,int inlet,const char *msg) -{ - t_binbuf *b = binbuf_new(); - binbuf_text(b,(char *)msg,strlen(msg)); - int argc = binbuf_getnatom(b); - t_atom *argv = binbuf_getvec(b); - int ret; - if(argc) { - t_symbol *sym; - if(argv->a_type == A_SYMBOL) { sym = atom_getsymbol(argv); argc--,argv++; } - else sym = &s_list; - ret = dyn_Send(sched,id,inlet,sym,argc,argv); - } - else - ret = DYN_ERROR_PARAMS; - binbuf_free(b); - return ret; -} diff --git a/externals/grill/dyn/dyn_text.cpp b/externals/grill/dyn/dyn_text.cpp deleted file mode 100644 index 8bcf8c4c..00000000 --- a/externals/grill/dyn/dyn_text.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* -dyn - dynamical object management - -Copyright (c)2003-2004 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#include "dyn_proto.h" diff --git a/externals/grill/dyn/gpl.txt b/externals/grill/dyn/gpl.txt deleted file mode 100644 index 5ea29a7d..00000000 --- a/externals/grill/dyn/gpl.txt +++ /dev/null @@ -1,346 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - diff --git a/externals/grill/dyn/license.txt b/externals/grill/dyn/license.txt deleted file mode 100644 index 291442a0..00000000 --- a/externals/grill/dyn/license.txt +++ /dev/null @@ -1,20 +0,0 @@ -dyn - dynamic object management for PD -Copyright (c) Thomas Grill (gr@grrrr.org) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -In the official dyn distribution, the GNU General Public License is -in the file gpl.txt - diff --git a/externals/grill/dyn/make-files.txt b/externals/grill/dyn/make-files.txt deleted file mode 100644 index 69dac97f..00000000 --- a/externals/grill/dyn/make-files.txt +++ /dev/null @@ -1,10 +0,0 @@ -NAME=dyn -SRCDIR=. - -SRCS= \ - dyn_api.cpp dyn_base.cpp dyn_conn.cpp dyn_create.cpp \ - dyn_listen.cpp dyn_main.cpp dyn_message.cpp dyn_object.cpp \ - dyn_patchable.cpp dyn_patcher.cpp dyn_proxy.cpp dyn_send.cpp \ - dyn_text.cpp -PHDRS= dyn.h -IHDRS= dyn_data.h dyn_pd.h dyn_proto.h dyn_proxy.h diff --git a/externals/grill/dyn/makefile.pd-darwin b/externals/grill/dyn/makefile.pd-darwin deleted file mode 100644 index dec7743b..00000000 --- a/externals/grill/dyn/makefile.pd-darwin +++ /dev/null @@ -1,76 +0,0 @@ -# Makefile for gcc @ darwin -# -# usage: -# to build run "make -f makefile.pd-darwin" -# to install (as root), do "make -f makefile.pd-darwin install" -# - -CONFIG=config-pd-darwin.txt - -include ${CONFIG} - -# compiler+linker stuff -INCLUDES=${PDPATH} -FLAGS=${UFLAGS} - -# compiler flags for optimized build -CFLAGS=-O2 - -# compiler flags for debug build -CFLAGS_D=-g - -# flags for shared linking -LSHFLAGS= -dylib -dynamic -flat_namespace -undefined suppress - -# frameworks -#FRAMEWORKS=Carbon veclib - - -# ---------------------------------------------- -# the rest can stay untouched -# ---------------------------------------------- - -# all the source files from the package -include make-files.txt - -MAKEFILE=makefile.pd-darwin - -TARGET=$(TARGDIR)/lib$(NAME).dylib -TARGET_D=$(TARGDIR)/lib$(NAME)_d.dylib -HDRS=$(PHDRS) $(IHDRS) - - -all: $(TARGDIR) $(TARGET) $(TARGET_D) - -$(TARGDIR): - mkdir $(TARGDIR) - -$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(patsubst %,$(SRCDIR)/%,$(IHDRS)) $(MAKEFILE) $(CONFIG) - touch $@ - -$(TARGDIR)/%.o : $(SRCDIR)/%.cpp - $(CXX) -c -dynamic $(CFLAGS) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@ - -$(TARGDIR)/%.do : $(SRCDIR)/%.cpp - $(CXX) -c -dynamic $(CFLAGS_D) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $(patsubst %,-F%,$(FRAMEWORKS)) $< -o $@ - -$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) - ld $(LSHFLAGS) -o $@ $^ -ldylib1.o -lgcc -lstdc++ $(patsubst %,-framework %,$(FRAMEWORKS)) - -$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(SRCS)) - ld $(LSHFLAGS) -o $@ $^ -ldylib1.o -lgcc -lstdc++ $(patsubst %,-framework %,$(FRAMEWORKS)) - -.PHONY: clean install - -clean: - rm -f $(TARGDIR)/*.{o,do} $(TARGET) $(TARGET_D) - -ifdef PREFIX - -install:: $(PREFIX) -endif - -install:: $(TARGET) $(TARGET_D) -# cp $(patsubst %,$(SRCDIR)/%,$(PHDRS)) $(PREFIX)/include - cp $(TARGDIR)/lib*.dylib $(PREFIX)/lib - diff --git a/externals/grill/dyn/makefile.pd-linux b/externals/grill/dyn/makefile.pd-linux deleted file mode 100644 index 1a8e582d..00000000 --- a/externals/grill/dyn/makefile.pd-linux +++ /dev/null @@ -1,72 +0,0 @@ -# Makefile for gcc @ linux -# -# usage: -# to build run "make -f makefile.pd-linux" -# to install (as root), do "make -f makefile.pd-linux install" -# - -CONFIG=config-pd-linux.txt - -include ${CONFIG} - -# compiler+linker stuff -INCLUDES=${PDPATH} -FLAGS=${UFLAGS} - -# compiler flags for optimized build -CFLAGS=-O2 - -# compiler flags for debug build -CFLAGS_D=-g - -# flags for shared linking -LSHFLAGS= -shared - -# ---------------------------------------------- -# the rest can stay untouched -# ---------------------------------------------- - -# all the source files from the package -include make-files.txt - -MAKEFILE=makefile.pd-linux - -TARGET=$(TARGDIR)/lib$(NAME).so -TARGET_D=$(TARGDIR)/lib$(NAME)_d.so -HDRS=$(PHDRS) $(IHDRS) - - -all: $(TARGDIR) $(TARGET) $(TARGET_D) - -$(TARGDIR): - mkdir $(TARGDIR) - -$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(patsubst %,$(SRCDIR)/%,$(IHDRS)) $(MAKEFILE) $(CONFIG) - touch $@ - -$(TARGDIR)/%.o : $(SRCDIR)/%.cpp - $(CXX) -c -shared $(CFLAGS) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ - -$(TARGDIR)/%.do : $(SRCDIR)/%.cpp - $(CXX) -c -shared $(CFLAGS_D) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ - -$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) - $(CXX) $(LSHFLAGS) -o $@ $^ - -$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(SRCS)) - $(CXX) $(LSHFLAGS) -o $@ $^ - -.PHONY: clean install - -clean: - rm -f $(TARGDIR)/*.{o,do} $(TARGET) $(TARGET_D) - -ifdef PREFIX - -install:: $(PREFIX) -endif - -install:: $(TARGET) $(TARGET_D) -# cp $(patsubst %,$(SRCDIR)/%,$(PHDRS)) $(PREFIX)/include - cp $(TARGDIR)/lib*.dylib $(PREFIX)/lib - diff --git a/externals/grill/dyn/package.txt b/externals/grill/dyn/package.txt deleted file mode 100644 index 1ac671de..00000000 --- a/externals/grill/dyn/package.txt +++ /dev/null @@ -1,14 +0,0 @@ -NAME=dyn - -BUILDDIR=build -BUILDCLASS=shlib - -SRCDIR=. - -HDRS= dyn.h dyn_data.h dyn_pd.h dyn_proto.h dyn_proxy.h - -SRCS= \ - dyn_api.cpp dyn_base.cpp dyn_main.cpp dyn_create.cpp \ - dyn_patchable.cpp dyn_proxy.cpp \ - dyn_object.cpp dyn_message.cpp dyn_patcher.cpp dyn_text.cpp \ - dyn_conn.cpp dyn_listen.cpp dyn_send.cpp diff --git a/externals/grill/dyn/todo.txt b/externals/grill/dyn/todo.txt deleted file mode 100644 index 21fd62b4..00000000 --- a/externals/grill/dyn/todo.txt +++ /dev/null @@ -1,8 +0,0 @@ -TODO: -- PD could destroy present connections of objects connected to a sub-patcher when deleting inlet objects therein. - -> how to deal with that? - -- what happens if an error occurs during object creation (as it is only scheduled, not immediately executed).... callback with error message? - -- define search path for objects/abstractions - diff --git a/externals/grill/dyn_py/build-pd-darwin.sh b/externals/grill/dyn_py/build-pd-darwin.sh deleted file mode 100755 index 1755372b..00000000 --- a/externals/grill/dyn_py/build-pd-darwin.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -. config-pd-darwin.txt - -make -f makefile.pd-darwin && -{ - if [ $INSTDIR != "" ]; then - echo Now install as root - sudo make -f makefile.pd-darwin install - fi -} diff --git a/externals/grill/dyn_py/config-pd-darwin.txt b/externals/grill/dyn_py/config-pd-darwin.txt deleted file mode 100644 index 34ca640b..00000000 --- a/externals/grill/dyn_py/config-pd-darwin.txt +++ /dev/null @@ -1,32 +0,0 @@ - -# your c++ compiler (define only if it's different than g++) -# CXX=g++-3.3 - -# where are the PD header files? (m_pd.h, m_imp.h, g_canvas.h) -PDPATH=/Volumes/Daten/Prog/pd-0.37-4/src - -# where is the PD executable -PD=/usr/local/bin - -# where should flext libraries be built? -TARGDIR=./pd-darwin - -# where should the dyn library and header be installed? -# (leave blank to omit installation) -PREFIX=/usr/local - -# path to Python header -PYTHON=/System/Library/Frameworks/Python.framework/Headers - -# path to dyn -DYN=../dyn - -# path to pycxx -PYCXX=/Volumes/Daten/Prog/packs/pycxx_5_2_2 - -# folder to install modules to -INSTDIR=/Users/thomas/Library/Python/2.3/site-packages - -# additional compiler flags -# (check if they fit for your system!) -UFLAGS=-malign-power -maltivec -faltivec diff --git a/externals/grill/dyn_py/dyn_py.cpp b/externals/grill/dyn_py/dyn_py.cpp deleted file mode 100644 index 33d9f358..00000000 --- a/externals/grill/dyn_py/dyn_py.cpp +++ /dev/null @@ -1,401 +0,0 @@ -/* -dyn_py - Python interface to the dyn library - -Copyright (c)2004-2005 Thomas Grill (gr@grrrr.org) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. -*/ - -#define DYNPY_VERSION_MAJOR 0 -#define DYNPY_VERSION_MINOR 2 - -#define DYNPY_VERSION (DYNPY_VERSION_MAJOR*100+DYNPY_VERSION_MINOR) - - -#ifdef _MSC_VER -#pragma warning(disable:4267) -#endif - -#include -#include - -#include -#include - -using namespace Py; - - -static Object dynpatcher(const Tuple &a,dyn_id ident = DYN_ID_NONE); -static Object dynobject(const Tuple &a,dyn_id ident = DYN_ID_NONE); -static Object dynmessage(const Tuple &a,dyn_id ident = DYN_ID_NONE); - - -/*! Convert a Python tuple to PD atoms - \note we don't need to check for $-arguments here... symbols will do -*/ -static int tuple2atoms(const Tuple &s,int offs,const t_symbol *&hdr,t_atom *lst,int sz,bool listonly = false) -{ - hdr = listonly?flext::sym_list:NULL; - int i = 0,len = s.length(); - for(int it = offs; it < len && i < sz; ++it) { - const Object &o = s[it]; - if(o.isNumeric()) { - if(!hdr) hdr = flext::sym_list; - float f = (float)Float(o); - int fi = (int)f; - if(fi == f) - flext::SetInt(lst[i++],fi); - else - flext::SetFloat(lst[i++],f); - } - else if(pySymbol_Check(o.ptr())) { - const t_symbol *s = pySymbol_AS_SYMBOL(o.ptr()); - if(!hdr) hdr = s; - else flext::SetSymbol(lst[i++],s); - } - else if(o.isString()) { - const t_symbol *s = flext::MakeSymbol(o.as_string().c_str()); - if(!hdr) hdr = s; - else flext::SetSymbol(lst[i++],s); - } - else { - hdr = NULL; - return 0; - } - } - - if(hdr == flext::sym_list && i == 1) { - if(flext::IsFloat(*lst)) hdr = flext::sym_float; - else if(flext::IsInt(*lst)) hdr = flext::sym_int; - else if(flext::IsSymbol(*lst)) hdr = flext::sym_symbol; - } - - return i; -} - -static Tuple atoms2tuple(const t_symbol *sym,int argc,const t_atom *argv) -{ - bool hd = sym != flext::sym_list && sym != flext::sym_float; - Tuple args(argc+hd?1:0); - int o = 0; - if(hd) args[o++] = String(flext::GetString(sym)); - for(int i = 0; i < argc; ++i,++o) { - if(flext::IsFloat(argv[i])) - args[o] = Float(flext::GetFloat(argv[i])); - else if(flext::IsInt(argv[i])) - args[o] = Int(flext::GetInt(argv[i])); - else if(flext::IsSymbol(argv[i])) - args[o] = asObject(pySymbol_FromSymbol(flext::GetSymbol(argv[i]))); - else - args[o] = Nothing(); - } - return args; -} - -typedef std::map ListenMap; -// all listeners -static ListenMap listen; - - -static void callback(dyn_id ident,int signal,void *data) -{ - if(dyn_GetType(ident) == DYN_TYPE_LISTENER && signal == DYN_SIGNAL_FREE) { - // clear listener data - ListenMap::iterator it = listen.find(ident); - if(it != listen.end()) { - delete it->second; - listen.erase(it); - } - } - -#ifdef FLEXT_DEBUG -// flext::post("dyn callback - signal %i, object %x",signal,ident); -#endif -} - - -class dynIdent - : public PythonExtension -{ -public: - dyn_id ident; - - dynIdent(dyn_id id = DYN_ID_NONE): ident(id) {} - - static void init_type() - { - behaviors().name("ID"); - behaviors().doc("documentation for dyn::Ident" ); - - add_varargs_method("Patcher", &dynIdent::f_patcher, "Create a new sub patcher"); - add_varargs_method("Object", &dynIdent::f_object, "Create a new dyn object"); - add_varargs_method("Message", &dynIdent::f_message, "Create a new dyn message object"); - - add_varargs_method("Free", &dynIdent::f_free, "Free the dyn object"); - - add_varargs_method("Inlets", &dynIdent::f_inlets, "Get inlet count of a dyn object"); - add_varargs_method("Outlets", &dynIdent::f_outlets, "Get outlet count of a dyn object"); - - add_varargs_method("InletType", &dynIdent::f_inlettype, "Get type of an inlet"); - add_varargs_method("OutletType", &dynIdent::f_outlettype, "Get type of an outlet"); - - add_varargs_method("Connect", &dynIdent::f_connect, "Create a connection between two dyn objects"); - - add_varargs_method("Send", &dynIdent::f_send, "Send a message to a dyn object"); - add_varargs_method("Listen", &dynIdent::f_listen, "Create a listener to messages of a dyn object"); - } - -private: - - void Check() const - { - if(ident == DYN_ID_NONE) throw RuntimeError("Dyn object not initialized"); - } - - Object f_patcher(const Tuple &a) { Check(); return dynpatcher(a,ident); } - Object f_object(const Tuple &a) { Check(); return dynobject(a,ident); } - Object f_message(const Tuple &a) { Check(); return dynmessage(a,ident); } - - Object f_free(const Tuple &a) - { - // don't Check() object to free... - if(ident != DYN_ID_NONE) { - if(dyn_Free(DYN_SCHED_AUTO,ident) != DYN_ID_NONE) - throw RuntimeError("Could not free dyn object"); - - ident = DYN_ID_NONE; - } - return Nothing(); - } - - Object f_inlets(const Tuple &a) - { - Check(); - if(a.length()) throw RuntimeError("No arguments allowed"); - int ret = dyn_GetInletCount(ident); - return ret >= 0?Int(ret):Nothing(); - } - - Object f_outlets(const Tuple &a) - { - Check(); - if(a.length()) throw RuntimeError("No arguments allowed"); - int ret = dyn_GetOutletCount(ident); - return ret >= 0?Int(ret):Nothing(); - } - - Object f_inlettype(const Tuple &a) - { - Check(); - int ret = dyn_GetInletType(ident,Int(a[0])); - if(ret >= 0) - return Int(ret == DYN_INOUT_SIGNAL); - else - throw RuntimeError("Error querying inlet type"); - } - - Object f_outlettype(const Tuple &a) - { - Check(); - int ret = dyn_GetOutletType(ident,Int(a[0])); - if(ret >= 0) - return Int(ret == DYN_INOUT_SIGNAL); - else - throw RuntimeError("Error querying outlet type"); - } - - Object f_connect(const Tuple &a) - { - if(a.length() == 3) { - dyn_id obj; - ExtensionObject dst(a[1]); - if(dyn_NewConnection(DYN_SCHED_AUTO,&obj,callback,ident,Int(a[0]),dst.extensionObject()->ident,Int(a[2])) == DYN_ID_NONE) - return asObject(new dynIdent(obj)); - else - throw RuntimeError("Error connecting dyn objects"); - } - else - throw RuntimeError("Syntax: Connect(src-outlet,dst-ID,dst-inlet)"); - } - - Object f_send(const Tuple &a) - { - Check(); - - int err = DYN_ERROR_GENERAL; - if(a.length() == 2 && a[1].isString()) { - std::string msg(a[1].as_string()); - err = dyn_SendStr(DYN_SCHED_AUTO,ident,Int(a[0]),msg.c_str()); - } - else if(a.length() >= 1) { - t_atom lst[256],*argv = lst; - t_symbol *sym; - int argc = tuple2atoms(a,1,sym,lst,256); - if(argc || sym) - err = dyn_Send(DYN_SCHED_AUTO,ident,Int(a[0]),sym,argc,argv); - } - - if(err == DYN_ERROR_NONE) - return Nothing(); - else - throw RuntimeError("Could not send to dyn object"); - } - - Object f_listen(const Tuple &a) - { - Check(); - if(a.length() == 2) { - dyn_id obj; - Callable *func = new Callable(a[1]); - if(dyn_Listen(DYN_SCHED_AUTO,&obj,ident,Int(a[0]),listener,func) == DYN_ID_NONE) { - listen[obj] = func; - return asObject(new dynIdent(obj)); - } - else { - delete func; - throw RuntimeError("Error creating dyn listener"); - } - } - else - throw RuntimeError("Syntax: Listen(inlet,function)"); - } - - static void listener(dyn_id id,dyn_id oid,int outlet,const t_symbol *sym,int argc,const t_atom *argv,void *data) - { - #ifdef FLEXT_DEBUG -// flext::post("dyn listener - object %x, outlet %i, sym %s",oid,outlet,sym->s_name); - #endif - - Callable *func = (Callable *)data; - - // convert PD atoms to Python tuple - Tuple args(atoms2tuple(sym,argc,argv)); - - Tuple tpl(3); - tpl[0] = asObject(new dynIdent(oid)); - tpl[1] = Int(outlet); - tpl[2] = args.length() == 1?args[0]:args; - - try { - func->apply(tpl); // call method - } - catch(Exception e) { - PyErr_Print(); - e.clear(); - } - catch(...) { - PyErr_Clear(); - } - } -}; - - -class dynModule - : public flext - , public ExtensionModule -{ -public: - dynModule() - : ExtensionModule("dyn") - { - flext::Setup(); - - dynIdent::init_type(); - - add_varargs_method("Patcher", &dynModule::f_patcher, "Create a new dyn patcher"); - add_varargs_method("Object", &dynModule::f_object, "Create a new dyn object"); - add_varargs_method("Message", &dynModule::f_message, "Create a new dyn message object"); - add_varargs_method("Version", &dynModule::f_version, "Return version number"); - add_varargs_method("DynVersion", &dynModule::f_dynversion, "Return dyn version number"); - - // must be last - initialize( "documentation for the dyn module" ); - } - -protected: - - Object f_dynversion(const Tuple &a) - { - return Int(DYN_VERSION); - } - - Object f_version(const Tuple &a) - { - return Int(DYNPY_VERSION); - } - - Object f_patcher(const Tuple &a) { return dynpatcher(a); } - Object f_object(const Tuple &a) { return dynobject(a); } - Object f_message(const Tuple &a) { return dynmessage(a); } -}; - -extern "C" -#ifdef _MSC_VER -_declspec(dllexport) -#endif -void initdyn() -{ -#if defined(PY_WIN32_DELAYLOAD_PYTHON_DLL) - Py::InitialisePythonIndirectInterface(); -#endif - static dynModule* module = new dynModule; -} - -static Object dynpatcher(const Tuple &a,dyn_id ident) -{ - if(!a.length()) { - dyn_id obj; - if(dyn_NewPatcher(DYN_SCHED_AUTO,&obj,callback,ident) == DYN_ERROR_NONE) - return asObject(new dynIdent(obj)); - else - throw RuntimeError("Error creating dyn patcher"); - } - else - throw RuntimeError("Syntax: Patcher()"); -} - -static Object dynobject(const Tuple &a,dyn_id ident) -{ - dyn_id obj; - - int err = DYN_ERROR_GENERAL; - if(a.length() == 1 && a[0].isString()) - err = dyn_NewObjectStr(DYN_SCHED_AUTO,&obj,callback,ident,a[0].as_string().c_str()); - else { - t_atom lst[256],*argv = lst; - t_symbol *sym; - int argc = tuple2atoms(a,0,sym,lst,256); - if(argc || sym) - err = dyn_NewObject(DYN_SCHED_AUTO,&obj,callback,ident,sym,argc,argv); - else - throw RuntimeError("Invalid arguments for dyn object"); - } - - if(err == DYN_ERROR_NONE) - return asObject(new dynIdent(obj)); - else - throw RuntimeError("Error creating dyn object"); -} - -static Object dynmessage(const Tuple &a,dyn_id ident) -{ - dyn_id obj; - - int err = DYN_ERROR_GENERAL; - if(a.length() == 1 && a[0].isString()) - err = dyn_NewMessageStr(DYN_SCHED_AUTO,&obj,callback,ident,a[0].as_string().c_str()); - else { - t_atom argv[256]; - t_symbol *hdr; - int argc = tuple2atoms(a,0,hdr,argv,256,true); - if(argc) - err = dyn_NewMessage(DYN_SCHED_AUTO,&obj,callback,ident,argc,argv); - else - throw RuntimeError("Invalid arguments for dyn message"); - } - - if(err == DYN_ERROR_NONE) - return asObject(new dynIdent(obj)); - else - throw RuntimeError("Error creating dyn message"); -} diff --git a/externals/grill/dyn_py/dyn_py.vcproj b/externals/grill/dyn_py/dyn_py.vcproj deleted file mode 100644 index affe08e4..00000000 --- a/externals/grill/dyn_py/dyn_py.vcproj +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/grill/dyn_py/gpl.txt b/externals/grill/dyn_py/gpl.txt deleted file mode 100644 index 5ea29a7d..00000000 --- a/externals/grill/dyn_py/gpl.txt +++ /dev/null @@ -1,346 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - diff --git a/externals/grill/dyn_py/license.txt b/externals/grill/dyn_py/license.txt deleted file mode 100644 index 9e31a145..00000000 --- a/externals/grill/dyn_py/license.txt +++ /dev/null @@ -1,19 +0,0 @@ -dyn_py - pyext module for dyn -Copyright (c) Thomas Grill (gr@grrrr.org) - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -In the official dyn_py distribution, the GNU General Public License is -in the file gpl.txt diff --git a/externals/grill/dyn_py/make-files.txt b/externals/grill/dyn_py/make-files.txt deleted file mode 100644 index cb77fff9..00000000 --- a/externals/grill/dyn_py/make-files.txt +++ /dev/null @@ -1,4 +0,0 @@ -NAME=dyn -SRCDIR=. - -SRCS= dyn_py.cpp diff --git a/externals/grill/dyn_py/makefile.pd-darwin b/externals/grill/dyn_py/makefile.pd-darwin deleted file mode 100755 index 0f56346e..00000000 --- a/externals/grill/dyn_py/makefile.pd-darwin +++ /dev/null @@ -1,75 +0,0 @@ -# Makefile for gcc @ darwin -# -# usage: -# to build run "make -f makefile.pd-darwin" -# to install (as root), do "make -f makefile.pd-darwin install" -# - -CONFIG=config-pd-darwin.txt - -include ${CONFIG} - -# compiler+linker stuff -INCLUDES=${PDPATH} $(DYN) $(PYTHON) $(PYCXX) -FLAGS=${UFLAGS} -fexceptions -frtti - -# compiler flags for optimized build -CFLAGS=-O2 - -# compiler flags for debug build -CFLAGS_D=-g - -# flags for shared linking -LSHFLAGS= -bundle -bundle_loader $(PD)/pd - -# frameworks -FRAMEWORKS=Python System -LIBS=pycxx dyn - - -# ---------------------------------------------- -# the rest can stay untouched -# ---------------------------------------------- - -# all the source files from the package -include make-files.txt - -MAKEFILE=makefile.pd-darwin - -TARGET=$(TARGDIR)/$(NAME).so -TARGET_D=$(TARGDIR)/$(NAME)_d.so - -HDRS=$(PHDRS) $(IHDRS) - - -all: $(TARGDIR) $(TARGET) $(TARGET_D) - -$(TARGDIR): - mkdir $(TARGDIR) - -$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(patsubst %,$(SRCDIR)/%,$(IHDRS)) $(MAKEFILE) $(CONFIG) - touch $@ - -$(TARGDIR)/%.o : $(SRCDIR)/%.cpp - $(CXX) -c $(CFLAGS) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ - -$(TARGDIR)/%.do : $(SRCDIR)/%.cpp - $(CXX) -c $(CFLAGS_D) $(CFLAGS_T) $(CFLAGS_S) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(SRCDIR)) $< -o $@ - -$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) - g++ $(LSHFLAGS) -o $@ $^ $(patsubst %,-l%,$(LIBS)) $(patsubst %,-framework %,$(FRAMEWORKS)) - -$(TARGET_D) : $(patsubst %.cpp,$(TARGDIR)/%.do,$(SRCS)) - g++ $(LSHFLAGS) -o $@ $^ $(patsubst %,-l%,$(LIBS)) $(patsubst %,-framework %,$(FRAMEWORKS)) - -.PHONY: clean install - -clean: - rm -f $(TARGDIR)/*.{o,do} $(TARGET) $(TARGET_D) - -ifdef INSTDIR -install:: $(INSTDIR) - -install:: $(TARGET) $(TARGET_D) - install $< $(INSTDIR) -endif diff --git a/externals/grill/idelay/delay.cpp b/externals/grill/idelay/delay.cpp deleted file mode 100644 index 0c3d97cf..00000000 --- a/externals/grill/idelay/delay.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - -idelay~ - interpolating delay using flext layer - -Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. - -------------------------------------------------------------------------- - -This is an example for usage of flext -It's a simple interpolating delay with signal input with allows for glitchless change of delay times -Watch out for Doppler effects! - -*/ - -#include - -#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 401) -#error You need at least flext version 0.4.1 -#endif - -// template class for delay line -#include "delay.h" - - -class idelay: - public flext_dsp -{ - FLEXT_HEADER(idelay,flext_dsp) - -public: - idelay(F msec); - ~idelay(); - - DelayLine *dline; - -protected: - virtual V m_signal(I n,S *const *in,S *const *out); -}; - -// make implementation of a tilde object with one float arg -FLEXT_NEW_DSP_1("idelay~",idelay,F) - - -idelay::idelay(F maxmsec) -{ - I nsamps = (I)ceil(maxmsec*Samplerate()*0.001f); - if (nsamps < 1) nsamps = 1; - dline = new DelayLine(nsamps); - - AddInSignal("Audio In"); // audio in - AddInSignal("Delay time (ms)"); // delay time - AddOutSignal("Audio Out"); // audio out -} - -idelay::~idelay() -{ - if(dline) delete dline; -} - - -V idelay::m_signal(I n,S *const *in,S *const *out) -{ - const S *ins = in[0],*del = in[1]; - S *outs = out[0]; - F msr = Samplerate()*0.001f; - - while (n--) - { - dline->Put(*ins++); - *outs++ = dline->Get((*del++)*msr); - } -} - diff --git a/externals/grill/idelay/delay.h b/externals/grill/idelay/delay.h deleted file mode 100644 index eaf1117a..00000000 --- a/externals/grill/idelay/delay.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - -idelay~ - interpolating delay using flext layer - -Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -For information on usage and redistribution, and for a DISCLAIMER OF ALL -WARRANTIES, see the file, "license.txt," in this distribution. - -*/ - -#ifndef _IDELAY_DELAY_H -#define _IDELAY_DELAY_H - -#include -#include - -#define F float -#define S t_sample -#define I int -#define V void - -template -class DelayLine -{ -public: - DelayLine(): buf(NULL),len(0),wpos(0) {} - DelayLine(I smps): buf(NULL),len(0),wpos(0) { SetLen(smps); } - ~DelayLine() { if(buf) delete[] buf; } - - V SetLen(I smps); - - V Put(T s); - T Get(F delsmps); - - T *buf; I dim; - I wpos,len; -}; - -template -V DelayLine::SetLen(I smps) -{ - if(len != smps) { - if(buf) delete[] buf; - len = smps; - buf = new T[dim = (len+4)]; // some more samples for interpolation - memset(buf,0,dim*sizeof(T)); - wpos = 4; - } -} - -template -V DelayLine::Put(T s) -{ - if(!len) return; - buf[wpos] = s; - if(wpos >= len) buf[wpos-len] = s; // initialize interpolation security zone - if(++wpos == dim) wpos -= len; -} - -template -T DelayLine::Get(F delsmps) -{ - if(!len) return 0; - if(delsmps < 0) - return buf[wpos-1]; - else { - if(delsmps > len-1) delsmps = (F)len-1; - I idelsmps = (I)delsmps; - - if(idelsmps == 0) { - const T *bp = buf+wpos; - const F r = 1.f-delsmps; - return (F)(r*(r-1)*bp[-3]/2.+(1-r*r)*bp[-2]+r*(r+1)*bp[-1]/2.); - } - else { - const T *bp = buf+wpos-idelsmps; - if(bp < (const T *)buf+4) bp += len; - const F r = 1.f-(delsmps - (F)idelsmps); - return (F)( - ((2-r)*(r-1)*r*bp[-3])/6. + - ((r-2)*(r*r-1)*bp[-2])/2. + - ((2-r)*r*(r+1)*bp[-1])/2. + - ((r*r-1)*r*bp[0])/6. - ); - } - } -} - - -#endif - diff --git a/externals/grill/idelay/gpl.txt b/externals/grill/idelay/gpl.txt deleted file mode 100644 index 5ea29a7d..00000000 --- a/externals/grill/idelay/gpl.txt +++ /dev/null @@ -1,346 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - diff --git a/externals/grill/idelay/idelay.cw b/externals/grill/idelay/idelay.cw deleted file mode 100644 index 26f33902..00000000 Binary files a/externals/grill/idelay/idelay.cw and /dev/null differ diff --git a/externals/grill/idelay/idelay.dsp b/externals/grill/idelay/idelay.dsp deleted file mode 100644 index abc428ab..00000000 --- a/externals/grill/idelay/idelay.dsp +++ /dev/null @@ -1,99 +0,0 @@ -# Microsoft Developer Studio Project File - Name="delay" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** NICHT BEARBEITEN ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=delay - Win32 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 "idelay.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 "idelay.mak" CFG="delay - Win32 Debug" -!MESSAGE -!MESSAGE Für die Konfiguration stehen zur Auswahl: -!MESSAGE -!MESSAGE "delay - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") -!MESSAGE "delay - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName ""$/pd/delay", VIDAAAAA" -# PROP Scc_LocalPath "." -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "delay - 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 1 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DELAY_EXPORTS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /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 /nologo /dll /machine:I386 /out:"pd-msvc/r/idelay~.dll" /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\pd-msvc" - -!ELSEIF "$(CFG)" == "delay - 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 1 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DELAY_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GR /GX /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /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 /out:"pd-msvc\d/idelay~.dll" /pdbtype:sept /libpath:"c:/programme/audio/pd/bin" /libpath:"..\flext\pd-msvc" - -!ENDIF - -# Begin Target - -# Name "delay - Win32 Release" -# Name "delay - Win32 Debug" -# Begin Source File - -SOURCE=.\delay.cpp -# End Source File -# Begin Source File - -SOURCE=.\delay.h -# End Source File -# End Target -# End Project diff --git a/externals/grill/idelay/idelay.mpw b/externals/grill/idelay/idelay.mpw deleted file mode 100644 index d7d3870a..00000000 --- a/externals/grill/idelay/idelay.mpw +++ /dev/null @@ -1,81 +0,0 @@ -# idelay~ - interpolating delay using flext layer -# Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -# -# Makefile for Apple MPW-PR -# -# usage: make -f idelay.mpw -# -# --------------------------------------------- - -MAKEFILE = idelay.mpw -¥MondoBuild¥ = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified - -Name = idelay~ - -ObjDir = :MPW: -MaxSDK = HD Daten:Prog Stuff:Max/MSP SDK:SDK Examples -flext = ::flext: -Includes = -i :,"{flext}","{MaxSDK}:Max Includes","{MaxSDK}:MSP Includes" -Defines = -d MAXMSP - -Sym-PPC = -sym off -Flags = -bool on -enum int -includes unix -opt speed,unroll,unswitch - - -PPCCPlusOptions = {Includes} {Sym-PPC} {Defines} {Flags} - - -### Source Files ### - -SrcFiles = delay.cpp -Headers = delay.h - - -### Object Files ### - -Obj-PPC = ¶ - "{ObjDir}delay.cpp.x" - -LibFiles-Ext = ¶ - "{flext}MPW:flext.o" ¶ - "{MaxSDK}:Max Includes:MaxLib" ¶ - "{MaxSDK}:MSP Includes:MaxAudioLib" - -### Libraries ### - -LibFiles-PPC = ¶ - "{SharedLibraries}StdCLib" ¶ - "{SharedLibraries}MathLib" ¶ - "{PPCLibraries}StdCRuntime.o" ¶ - "{PPCLibraries}PPCCRuntime.o" ¶ - "{PPCLibraries}MrCPlusLib.o" ¶ - - -### Default Rules ### - -{ObjDir} Ä : - -.cpp.x Ä .cpp {¥MondoBuild¥} {Headers} - {PPCCPlus} {depDir}{default}.cpp -o {targDir}{default}.cpp.x {PPCCPlusOptions} - - -### Build Rules ### - -all Ä Folder {¥MondoBuild¥} {ObjDir}{Name} - -Folder ÄÄ - if !`Exists {ObjDir}` ; NewFolder {ObjDir} ; end - -{ObjDir}{Name} Ä {Obj-PPC} - PPCLink ¶ - -o {Targ} ¶ - {deps} ¶ - {LibFiles-Ext} ¶ - {LibFiles-PPC} ¶ - {Sym-PPC} ¶ - -mf -d ¶ - -t 'iLaF' ¶ - -c 'max2' ¶ - -xm s ¶ - -export main ¶ - -main main diff --git a/externals/grill/idelay/idelay.vcproj b/externals/grill/idelay/idelay.vcproj deleted file mode 100644 index b818aecd..00000000 --- a/externals/grill/idelay/idelay.vcproj +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/externals/grill/idelay/license.txt b/externals/grill/idelay/license.txt deleted file mode 100644 index 9d8c9c54..00000000 --- a/externals/grill/idelay/license.txt +++ /dev/null @@ -1,49 +0,0 @@ -idelay~ - interpolating delay external for Max/MSP and pd (pure data) -Copyright (C) 2002 Thomas Grill - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -In the official idelay~ distribution, the GNU General Public License is -in the file gpl.txt - ---------------------------------------------------------- - - OTHER COPYRIGHT NOTICES - ---------------------------------------------------------- -This package uses the flext C++ layer. -See its license text below: - - ---- flext ---------------------------------------------- -flext - C++ layer for Max/MSP and pd (pure data) externals -Copyright (C) 2001,2002 Thomas Grill - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -In the official flext distribution, the GNU General Public License is -in the file gpl.txt diff --git a/externals/grill/idelay/makefile.bcc b/externals/grill/idelay/makefile.bcc deleted file mode 100644 index a68e0c93..00000000 --- a/externals/grill/idelay/makefile.bcc +++ /dev/null @@ -1,75 +0,0 @@ -# idelay~ - interpolating delay using flext layer -# Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -# -# Makefile for BorlandC++ -# -# usage: make -f makefile.bcc -# -# --------------------------------------------- - -NAME=idelay~ -SETUPFUNCTION=idelay_tilde_setup - -# where to put the build -OUTPATH=.\bcc - -# flext stuff -FLEXTPATH=..\flext ### EDIT! ### -TARGET=pdwin - -# paths -BCCPATH=c:\programme\prog\bcc55 ### EDIT! ### -PDPATH=c:\programme\audio\pd ### EDIT! ### - -# includes, libs -INCPATH=-I$(BCCPATH)\include -I$(PDPATH)\src -I$(FLEXTPATH) -LIBPATH=-L$(BCCPATH)\lib -L$(PDPATH)\lib -L$(FLEXTPATH) -LIBS=cw32.lib import32.lib C0D32.OBJ - -# compiler definitions and flags -DEFS=-DPD -DNT -CFLAGS=-6 -O2 -OS -ff -tWD - - -# the rest can stay untouched -# ---------------------------------------------- - -# all the source files from the package -SRCS= delay.cpp -HDRS= delay.h - -#default target -all: $(OUTPATH)\$(NAME).dll - -# remove build -clean: - -del /s /q $(OUTPATH) > nul - rmdir $(OUTPATH) - -# ----------------------------------------------- - -OBJS= $(SRCS:.cpp=.obj) - -$(SRCS): $(HDRS) - -touch $< - -.PATH.OBJ=$(OUTPATH) - -.cpp.obj: - bcc32 -c $(CFLAGS) $(DEFS) $(INCPATH) -n$(OUTPATH) $< - -$(OUTPATH): - -@if not exist $< mkdir $< - -$(OUTPATH)\pd.lib: $(PDPATH)\bin\pd.dll - implib -a $@ $** - -$(OUTPATH)\$(NAME).def: - @echo EXPORTS $(SETUPFUNCTION) = _$(SETUPFUNCTION) > $< - -$(OUTPATH)\$(NAME).dll :: $(OUTPATH) $(OUTPATH)\$(NAME).def $(OUTPATH)\pd.lib - -$(OUTPATH)\$(NAME).dll :: $(OBJS) - ilink32 -C -Tpd $(LIBPATH) $** ,$<,,$(LIBS) $(OUTPATH)\pd.lib $(FLEXTPATH)\bcc\flext-$(TARGET).lib ,$(OUTPATH)\$(NAME).def - - diff --git a/externals/grill/idelay/makefile.pd-cygwin b/externals/grill/idelay/makefile.pd-cygwin deleted file mode 100644 index 9c4f16c7..00000000 --- a/externals/grill/idelay/makefile.pd-cygwin +++ /dev/null @@ -1 +0,0 @@ -# idelay~ - interpolating delay using flext layer # Copyright (c) 2002 Thomas Grill (xovo@gmx.net) # # Makefile for gcc # # usage: make -f makefile.pd-cygwin # # --------------------------------------------- NAME=idelay~ # where to build TARGDIR=./pd-cygwin # where to install ### EDIT! ### INSTDIR=c:/programme/audio/pd/extra # flext stuff ### EDIT! ### FLEXTPATH=../flext FLEXTLIB=$(FLEXTPATH)/pd-cygwin/flext.lib # compiler+linker stuff ### EDIT! ### INCLUDES=c:/programme/audio/pd/src LIBPATH=c:/programme/audio/pd/bin FLAGS=-DPD CFLAGS=-O6 -mpentium LIBS=m pd # the rest can stay untouched # ---------------------------------------------- # all the source files from the package SRCS=delay.cpp HDRS=delay.h TARGET=$(TARGDIR)/$(NAME).dll # default target all: $(TARGDIR) $(TARGET) $(SRCS): $(HDRS) touch $@ $(TARGDIR): mkdir $(TARGDIR) $(TARGDIR)/%.o : %.cpp $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@ $(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) $(FLEXTLIB) $(CXX) $(LDFLAGS) -shared $(patsubst %,-L%,$(LIBPATH)) $^ $(patsubst %,-l%,$(LIBS)) -o $@ chmod 755 $@ $(INSTDIR): mkdir $(INSTDIR) install:: $(INSTDIR) install:: $(TARGET) cp $^ $(INSTDIR) chown root.root $(patsubst %,$(INSTDIR)/%,$(notdir $^)) .PHONY: clean clean: rm -f $(TARGDIR)/*.o $(TARGET) \ No newline at end of file diff --git a/externals/grill/idelay/makefile.pd-darwin b/externals/grill/idelay/makefile.pd-darwin deleted file mode 100755 index 56970582..00000000 --- a/externals/grill/idelay/makefile.pd-darwin +++ /dev/null @@ -1,72 +0,0 @@ -# idelay~ - interpolating delay using flext layer -# Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -# -# Makefile for gcc @ darwin -# -# usage: make -f makefile.pd-darwin -# -# --------------------------------------------- - -NAME=idelay~ - -# where to build -TARGDIR=./pd-darwin - -# where to install ### EDIT! ### -INSTDIR=/usr/local/pd/extra - -# -PD=/usr/local/pd/bin/pd - -# flext stuff ### EDIT! ### -FLEXTPATH=/usr/local/pd/flext -FLEXTLIB=$(FLEXTPATH)/flext.a - -# compiler+linker stuff ### EDIT! ### -INCLUDES=/usr/local/pd/src -FLAGS=-DPD -Dunix -CFLAGS=-O6 -maltivec -W -Wshadow -Wno-unused -Wno-parentheses -Wno-switch -LDFLAGS=-bundle # -undefined suppress -flat_namespace -LIBS=m - - -# the rest can stay untouched -# ---------------------------------------------- - -# all the source files from the package -SRCS=delay.cpp -HDRS=delay.h - -TARGET=$(TARGDIR)/$(NAME).pd_darwin - -# default target -all: $(TARGDIR) $(TARGET) - -$(SRCS): $(HDRS) - touch $@ - -$(TARGDIR): - mkdir $(TARGDIR) - -$(TARGDIR)/%.o : %.cpp - $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@ - -$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) $(FLEXTLIB) - $(CXX) $(LDFLAGS) $^ $(patsubst %,-l%,$(LIBS)) -bundle_loader $(PD) -o $@ - chmod 755 $@ - -$(INSTDIR): - mkdir $(INSTDIR) - -install:: $(INSTDIR) - -install:: $(TARGET) - cp $^ $(INSTDIR) - chown root.root $(patsubst %,$(INSTDIR)/%,$(notdir $^)) - -.PHONY: clean -clean: - rm -f $(TARGDIR)/*.o $(TARGET) - - - diff --git a/externals/grill/idelay/makefile.pd-linux b/externals/grill/idelay/makefile.pd-linux deleted file mode 100644 index 8d04e83c..00000000 --- a/externals/grill/idelay/makefile.pd-linux +++ /dev/null @@ -1 +0,0 @@ -# idelay~ - interpolating delay using flext layer # Copyright (c) 2002 Thomas Grill (xovo@gmx.net) # # Makefile for gcc # # usage: make -f makefile.pd-linux # # --------------------------------------------- NAME=idelay~ # where to build TARGDIR=./pd-linux # where to install ### EDIT! ### INSTDIR=/usr/local/lib/pd/extra # flext stuff ### EDIT! ### FLEXTPATH=/usr/local/lib/pd/flext FLEXTLIB=$(FLEXTPATH)/flext.a # compiler+linker stuff ### EDIT! ### INCLUDES=/usr/local/lib/pd/include FLAGS=-DPD CFLAGS=-O6 -mpentium LIBS=m # the rest can stay untouched # ---------------------------------------------- # all the source files from the package SRCS=delay.cpp HDRS=delay.h TARGET=$(TARGDIR)/$(NAME).pd_linux # default target all: $(TARGDIR) $(TARGET) $(SRCS): $(HDRS) touch $@ $(TARGDIR): mkdir $(TARGDIR) $(TARGDIR)/%.o : %.cpp $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@ $(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) $(FLEXTLIB) $(CXX) $(LDFLAGS) -shared $^ $(patsubst %,-l%,$(LIBS)) -o $@ chmod 755 $@ $(INSTDIR): mkdir $(INSTDIR) install:: $(INSTDIR) install:: $(TARGET) cp $^ $(INSTDIR) chown root.root $(patsubst %,$(INSTDIR)/%,$(notdir $^)) .PHONY: clean clean: rm -f $(TARGDIR)/*.o $(TARGET) \ No newline at end of file diff --git a/externals/grill/idelay/pd/idelay~.help.pd b/externals/grill/idelay/pd/idelay~.help.pd deleted file mode 100644 index 76f11382..00000000 --- a/externals/grill/idelay/pd/idelay~.help.pd +++ /dev/null @@ -1,16 +0,0 @@ -#N canvas 65 58 587 299 12; -#X obj 69 175 idelay~ 10000; -#X obj 70 7 osc~ 200; -#X obj 61 227 dac~; -#X obj 168 118 lop~ 1; -#X obj 171 97 hsl 128 15 0 127 0 0 empty empty empty 20 8 0 8 -225271 --1 -1 4300 1; -#X text 98 77 move slider and experience the doppler effect; -#X text 196 175 max delay 10000 ms; -#X floatatom 233 118 5 0 0; -#X connect 0 0 2 0; -#X connect 0 0 2 1; -#X connect 1 0 0 0; -#X connect 3 0 0 1; -#X connect 4 0 3 0; -#X connect 4 0 7 0; -- cgit v1.2.1