aboutsummaryrefslogtreecommitdiff
path: root/externals/grill
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill')
-rw-r--r--externals/grill/dyn/build-pd-darwin.sh11
-rw-r--r--externals/grill/dyn/build-pd-linux.sh11
-rw-r--r--externals/grill/dyn/config-pd-darwin.txt17
-rw-r--r--externals/grill/dyn/config-pd-linux.txt21
-rw-r--r--externals/grill/dyn/dyn.h404
-rw-r--r--externals/grill/dyn/dyn.vcproj217
-rw-r--r--externals/grill/dyn/dyn_api.cpp269
-rw-r--r--externals/grill/dyn/dyn_base.cpp23
-rw-r--r--externals/grill/dyn/dyn_conn.cpp41
-rw-r--r--externals/grill/dyn/dyn_create.cpp246
-rw-r--r--externals/grill/dyn/dyn_data.h192
-rw-r--r--externals/grill/dyn/dyn_listen.cpp68
-rw-r--r--externals/grill/dyn/dyn_main.cpp85
-rw-r--r--externals/grill/dyn/dyn_message.cpp10
-rw-r--r--externals/grill/dyn/dyn_object.cpp9
-rw-r--r--externals/grill/dyn/dyn_patchable.cpp101
-rw-r--r--externals/grill/dyn/dyn_patcher.cpp24
-rw-r--r--externals/grill/dyn/dyn_pd.h31
-rw-r--r--externals/grill/dyn/dyn_proto.h29
-rw-r--r--externals/grill/dyn/dyn_proxy.cpp96
-rw-r--r--externals/grill/dyn/dyn_proxy.h74
-rw-r--r--externals/grill/dyn/dyn_send.cpp80
-rw-r--r--externals/grill/dyn/dyn_text.cpp9
-rw-r--r--externals/grill/dyn/gpl.txt346
-rw-r--r--externals/grill/dyn/license.txt20
-rw-r--r--externals/grill/dyn/make-files.txt10
-rw-r--r--externals/grill/dyn/makefile.pd-darwin76
-rw-r--r--externals/grill/dyn/makefile.pd-linux72
-rw-r--r--externals/grill/dyn/package.txt14
-rw-r--r--externals/grill/dyn/todo.txt8
-rwxr-xr-xexternals/grill/dyn_py/build-pd-darwin.sh11
-rw-r--r--externals/grill/dyn_py/config-pd-darwin.txt32
-rw-r--r--externals/grill/dyn_py/dyn_py.cpp401
-rw-r--r--externals/grill/dyn_py/dyn_py.vcproj140
-rw-r--r--externals/grill/dyn_py/gpl.txt346
-rw-r--r--externals/grill/dyn_py/license.txt19
-rw-r--r--externals/grill/dyn_py/make-files.txt4
-rwxr-xr-xexternals/grill/dyn_py/makefile.pd-darwin75
-rw-r--r--externals/grill/idelay/delay.cpp75
-rw-r--r--externals/grill/idelay/delay.h91
-rw-r--r--externals/grill/idelay/gpl.txt346
-rw-r--r--externals/grill/idelay/idelay.cwbin137907 -> 0 bytes
-rw-r--r--externals/grill/idelay/idelay.dsp99
-rw-r--r--externals/grill/idelay/idelay.mpw81
-rw-r--r--externals/grill/idelay/idelay.vcproj184
-rw-r--r--externals/grill/idelay/license.txt49
-rw-r--r--externals/grill/idelay/makefile.bcc75
-rw-r--r--externals/grill/idelay/makefile.pd-cygwin1
-rwxr-xr-xexternals/grill/idelay/makefile.pd-darwin72
-rw-r--r--externals/grill/idelay/makefile.pd-linux1
-rw-r--r--externals/grill/idelay/pd/idelay~.help.pd16
51 files changed, 0 insertions, 4732 deletions
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 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="dyn"
- ProjectGUID="{0176D72E-797E-4221-BB4A-0A37BB0860AC}">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="PD Debug|Win32"
- OutputDirectory="./pd-msvc/sd"
- IntermediateDirectory="./pd-msvc/sd"
- ConfigurationType="2"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="c:\data\prog\pd\pd-cvs\src"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;DYN_EXPORTS;NT;PD"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\Debug/dyn.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="pd.lib"
- OutputFile="c:\data\prog\pymodules/dyn_d.dll"
- LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="c:\data\prog\pd\pd-cvs\bin"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\Debug/dyn.pdb"
- ImportLibrary=".\Debug/dyn.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/dyn.tlb"
- HeaderFileName=""/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="3079"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="PD Release|Win32"
- OutputDirectory="./pd-msvc/sr"
- IntermediateDirectory="./pd-msvc/sr"
- ConfigurationType="2"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="c:\programme\audio\pd\src"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;DYN_EXPORTS,PD,NT"
- StringPooling="TRUE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="TRUE"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\Release/dyn.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="pd.lib"
- OutputFile="c:\data\prog\pymodules/dyn.dll"
- LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="c:\programme\audio\pd\bin"
- ProgramDatabaseFile="$(outdir)/dyn.pdb"
- ImportLibrary="..\..\api\lib\dyn.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/dyn.tlb"
- HeaderFileName=""/>
- <Tool
- Name="VCPostBuildEventTool"
- Description="copy API"
- CommandLine="
-copy dyn.h ..\..\api\include
-"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="3079"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="objects"
- Filter="">
- <File
- RelativePath=".\dyn_base.cpp">
- </File>
- <File
- RelativePath=".\dyn_conn.cpp">
- </File>
- <File
- RelativePath=".\dyn_message.cpp">
- </File>
- <File
- RelativePath=".\dyn_object.cpp">
- </File>
- <File
- RelativePath=".\dyn_patchable.cpp">
- </File>
- <File
- RelativePath=".\dyn_patcher.cpp">
- </File>
- <File
- RelativePath=".\dyn_text.cpp">
- </File>
- </Filter>
- <Filter
- Name="io"
- Filter="">
- <File
- RelativePath=".\dyn_create.cpp">
- </File>
- <File
- RelativePath=".\dyn_listen.cpp">
- </File>
- <File
- RelativePath=".\dyn_proxy.cpp">
- </File>
- <File
- RelativePath=".\dyn_proxy.h">
- </File>
- <File
- RelativePath=".\dyn_send.cpp">
- </File>
- </Filter>
- <File
- RelativePath="dyn.h">
- </File>
- <File
- RelativePath=".\dyn_api.cpp">
- </File>
- <File
- RelativePath=".\dyn_data.h">
- </File>
- <File
- RelativePath=".\dyn_main.cpp">
- </File>
- <File
- RelativePath=".\dyn_pd.h">
- </File>
- <File
- RelativePath=".\dyn_proto.h">
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
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 <list>
-
-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<t_symbol *>(sym_dot);
-
- // pop current canvases
- std::list<t_glist *> 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<t_symbol *>(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<t_symbol *>(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<t_glist *>::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<t_symbol *>(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<t_symbol *>(sym_vis),"i",0);
-
- // loadbang the abstraction
- pd_vmess((t_pd *)newest,const_cast<t_symbol *>(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 <map>
-#include <set>
-
-
-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<dyn_base *> Objects;
-typedef std::set<dyn_conn *> Connections;
-typedef std::map<int,proxy *> 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<dyn_patcher *>(data); }
- dyn_object *Object() { return dynamic_cast<dyn_object *>(data); }
- dyn_message *Message() { return dynamic_cast<dyn_message *>(data); }
- dyn_text *Text() { return dynamic_cast<dyn_text *>(data); }
- dyn_conn *Conn() { return dynamic_cast<dyn_conn *>(data); }
- dyn_patchable *Patchable() { return dynamic_cast<dyn_patchable *>(data); }
- dyn_listen *Listen() { return dynamic_cast<dyn_listen *>(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<t_symbol *>(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<t_symbol *>(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<t_symbol *>(sym_dsp),A_NULL);
- CLASS_MAINSIGNALIN(pxins_class,proxyin,defsig);
-
- // set up proxy class for outbound messages
- pxout_class = class_new(const_cast<t_symbol *>(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<t_symbol *>(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<t_symbol *>(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<dyn_patcher *>(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 <assert.h>
-#ifdef _MSC_VER
-#include <crtdbg.h>
-#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 <set>
-
-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<dyn_listen *> 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.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- 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.
-
- <signature of Ty Coon>, 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 <CXX/Objects.hxx>
-#include <CXX/Extensions.hxx>
-
-#include <dyn.h>
-#include <pysymbol.h>
-
-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<dyn_id,Callable *> 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<dynIdent>
-{
-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<dynIdent> 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<dynModule>
-{
-public:
- dynModule()
- : ExtensionModule<dynModule>("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 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="dyn_py"
- ProjectGUID="{28762FF9-6B82-456F-8C1C-DEAB3661E1C7}"
- Keyword="ExtStoredProcProj">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="2"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="C:\Programme\prog\Python24\include;../dyn;&quot;c:\data\prog\pd\pd-cvs\src&quot;;\data\prog\packs\pthreads;..\flext\source;..\py\source"
- PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;FLEXT_SYS=2;FLEXT_THREADS"
- MinimalRebuild="TRUE"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="3"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="pycxx.lib pd.lib pthreadVC.lib"
- OutputFile="c:\data\prog\pymodules/dyn_d.pyd"
- LinkIncremental="2"
- AdditionalLibraryDirectories="&quot;c:\data\prog\packs\Python-2.4\PCbuild&quot;;c:\data\prog\packs\pycxx\DLL\Debug;&quot;c:\data\prog\pd\pd-cvs\bin&quot;"
- GenerateDebugInformation="TRUE"
- SubSystem="2"
- ImportLibrary="$(OutDir)/dyn_py.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="FALSE"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1031"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="2"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="3"
- GlobalOptimizations="TRUE"
- OmitFramePointers="TRUE"
- OptimizeForProcessor="3"
- AdditionalIncludeDirectories="C:\Programme\prog\Python23\include;../../api/include"
- PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
- RuntimeLibrary="2"
- EnableEnhancedInstructionSet="1"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="TRUE"
- DebugInformationFormat="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="python23.lib pycxx.lib pd.lib"
- OutputFile="c:\data\prog\pymodules/dyn.pyd"
- LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="C:\Programme\prog\Python23\libs;F:\prog\packs\pycxx_5_2_2\DLL\Release;..\..\api\lib"
- GenerateDebugInformation="FALSE"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- ImportLibrary="$(OutDir)/dyn_py.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="FALSE"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1031"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <File
- RelativePath=".\dyn_py.cpp">
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
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.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- 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.
-
- <signature of Ty Coon>, 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 <flext.h>
-
-#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<S> *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<F>(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 <math.h>
-#include <string.h>
-
-#define F float
-#define S t_sample
-#define I int
-#define V void
-
-template <class T>
-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 <class T>
-V DelayLine<T>::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 <class T>
-V DelayLine<T>::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 <class T>
-T DelayLine<T>::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.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- 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.
-
- <signature of Ty Coon>, 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
--- a/externals/grill/idelay/idelay.cw
+++ /dev/null
Binary files 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 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="delay"
- SccProjectName="&quot;$/pd/delay&quot;, VIDAAAAA"
- SccAuxPath=""
- SccLocalPath="."
- SccProvider="MSSCCI:Jalindi Igloo">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\pd-msvc\d"
- IntermediateDirectory=".\pd-msvc\d"
- ConfigurationType="2"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="c:\programme\audio\pd\src,f:\prog\max\flext\source"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FLEXT_SYS=2"
- BasicRuntimeChecks="3"
- RuntimeLibrary="5"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\pd-msvc\d/idelay.pch"
- AssemblerListingLocation=".\pd-msvc\d/"
- ObjectFile=".\pd-msvc\d/"
- ProgramDataBaseFileName=".\pd-msvc\d/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="pd.lib"
- OutputFile="$(outdir)/idelay~.dll"
- LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="c:/programme/audio/pd/bin,..\flext\pd-msvc"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\pd-msvc\d/idelay~.pdb"
- ImportLibrary=".\pd-msvc\d/idelay~.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\pd-msvc\d/idelay.tlb"
- HeaderFileName=""/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="3079"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\pd-msvc\r"
- IntermediateDirectory=".\pd-msvc\r"
- ConfigurationType="2"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="c:\programme\audio\pd\src,f:\prog\max\flext\source"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FLEXT_SYS=2"
- StringPooling="TRUE"
- RuntimeLibrary="4"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\pd-msvc\r/idelay.pch"
- AssemblerListingLocation=".\pd-msvc\r/"
- ObjectFile=".\pd-msvc\r/"
- ProgramDataBaseFileName=".\pd-msvc\r/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="3"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- IgnoreImportLibrary="TRUE"
- AdditionalDependencies="pd.lib"
- OutputFile="pd-msvc/r/idelay~.dll"
- LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="c:/programme/audio/pd/bin,..\flext\pd-msvc"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\pd-msvc\r/idelay~.pdb"
- ImportLibrary=".\pd-msvc\r/idelay~.lib"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\pd-msvc\r/idelay.tlb"
- HeaderFileName=""/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="3079"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <File
- RelativePath="delay.cpp">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;FLEXT_SYS=2;$(NoInherit)"
- BasicRuntimeChecks="3"
- BrowseInformation="1"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;FLEXT_SYS=2;$(NoInherit)"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath="delay.h">
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
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;