From d62e56f4df9594f72ce501f5e19c974fd18e7295 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 22 Oct 2002 23:07:10 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r186, which included commits to RCS files with non-trunk default branches. svn path=/trunk/; revision=187 --- externals/grill/flext/tutorial/adv1/adv1.cw | Bin 0 -> 98601 bytes externals/grill/flext/tutorial/adv1/adv1.dsp | 96 ++++++ externals/grill/flext/tutorial/adv1/main.cpp | 104 +++++++ externals/grill/flext/tutorial/build-pd-bcc.bat | 27 ++ externals/grill/flext/tutorial/build-pd-cygwin.sh | 3 + externals/grill/flext/tutorial/build-pd-linux.sh | 4 + externals/grill/flext/tutorial/build-pd-msvc.bat | 11 + externals/grill/flext/tutorial/config-pd-bcc.txt | 21 ++ .../grill/flext/tutorial/config-pd-cygwin.txt | 13 + externals/grill/flext/tutorial/config-pd-linux.txt | 19 ++ externals/grill/flext/tutorial/config-pd-msvc.txt | 16 + externals/grill/flext/tutorial/gpl.txt | 346 +++++++++++++++++++++ externals/grill/flext/tutorial/license.txt | 50 +++ externals/grill/flext/tutorial/makefile.pd-bcc | 75 +++++ externals/grill/flext/tutorial/makefile.pd-cygwin | 58 ++++ externals/grill/flext/tutorial/makefile.pd-linux | 57 ++++ externals/grill/flext/tutorial/makefile.pd-msvc | 48 +++ externals/grill/flext/tutorial/maxmsp/ex-adv1 | Bin 0 -> 265 bytes externals/grill/flext/tutorial/maxmsp/ex-signal1 | Bin 0 -> 331 bytes externals/grill/flext/tutorial/maxmsp/ex-signal2 | Bin 0 -> 410 bytes externals/grill/flext/tutorial/maxmsp/ex-simple1 | Bin 0 -> 404 bytes externals/grill/flext/tutorial/maxmsp/ex-simple2 | Bin 0 -> 303 bytes externals/grill/flext/tutorial/maxmsp/ex-simple3 | Bin 0 -> 381 bytes externals/grill/flext/tutorial/pd/ex-adv1.pd | 14 + externals/grill/flext/tutorial/pd/ex-signal1.pd | 16 + externals/grill/flext/tutorial/pd/ex-signal2.pd | 17 + externals/grill/flext/tutorial/pd/ex-simple1.pd | 10 + externals/grill/flext/tutorial/pd/ex-simple2.pd | 13 + externals/grill/flext/tutorial/pd/ex-simple3.pd | 18 ++ externals/grill/flext/tutorial/pd/ex-thread1.pd | 34 ++ externals/grill/flext/tutorial/pd/ex-thread2.pd | 40 +++ externals/grill/flext/tutorial/readme.txt | 36 +++ externals/grill/flext/tutorial/signal1/main.cpp | 129 ++++++++ externals/grill/flext/tutorial/signal1/signal1.cw | Bin 0 -> 102333 bytes externals/grill/flext/tutorial/signal1/signal1.dsp | 95 ++++++ externals/grill/flext/tutorial/signal2/main.cpp | 80 +++++ externals/grill/flext/tutorial/signal2/signal2.cw | Bin 0 -> 104217 bytes externals/grill/flext/tutorial/signal2/signal2.dsp | 95 ++++++ externals/grill/flext/tutorial/simple1/main.cpp | 78 +++++ externals/grill/flext/tutorial/simple1/simple1.cw | Bin 0 -> 94211 bytes externals/grill/flext/tutorial/simple1/simple1.dsp | 95 ++++++ externals/grill/flext/tutorial/simple2/main.cpp | 80 +++++ externals/grill/flext/tutorial/simple2/simple2.cw | Bin 0 -> 98601 bytes externals/grill/flext/tutorial/simple2/simple2.dsp | 95 ++++++ externals/grill/flext/tutorial/simple3/main.cpp | 90 ++++++ externals/grill/flext/tutorial/simple3/simple3.cw | Bin 0 -> 102333 bytes externals/grill/flext/tutorial/simple3/simple3.dsp | 95 ++++++ externals/grill/flext/tutorial/thread1/main.cpp | 79 +++++ externals/grill/flext/tutorial/thread1/thread1.cw | Bin 0 -> 89119 bytes externals/grill/flext/tutorial/thread1/thread1.dsp | 104 +++++++ externals/grill/flext/tutorial/thread2/main.cpp | 132 ++++++++ externals/grill/flext/tutorial/thread2/thread2.cw | Bin 0 -> 89119 bytes externals/grill/flext/tutorial/thread2/thread2.dsp | 95 ++++++ externals/grill/flext/tutorial/tutorial.dsw | 161 ++++++++++ 54 files changed, 2649 insertions(+) create mode 100755 externals/grill/flext/tutorial/adv1/adv1.cw create mode 100644 externals/grill/flext/tutorial/adv1/adv1.dsp create mode 100755 externals/grill/flext/tutorial/adv1/main.cpp create mode 100644 externals/grill/flext/tutorial/build-pd-bcc.bat create mode 100644 externals/grill/flext/tutorial/build-pd-cygwin.sh create mode 100644 externals/grill/flext/tutorial/build-pd-linux.sh create mode 100644 externals/grill/flext/tutorial/build-pd-msvc.bat create mode 100644 externals/grill/flext/tutorial/config-pd-bcc.txt create mode 100644 externals/grill/flext/tutorial/config-pd-cygwin.txt create mode 100644 externals/grill/flext/tutorial/config-pd-linux.txt create mode 100644 externals/grill/flext/tutorial/config-pd-msvc.txt create mode 100755 externals/grill/flext/tutorial/gpl.txt create mode 100755 externals/grill/flext/tutorial/license.txt create mode 100644 externals/grill/flext/tutorial/makefile.pd-bcc create mode 100644 externals/grill/flext/tutorial/makefile.pd-cygwin create mode 100644 externals/grill/flext/tutorial/makefile.pd-linux create mode 100644 externals/grill/flext/tutorial/makefile.pd-msvc create mode 100755 externals/grill/flext/tutorial/maxmsp/ex-adv1 create mode 100755 externals/grill/flext/tutorial/maxmsp/ex-signal1 create mode 100755 externals/grill/flext/tutorial/maxmsp/ex-signal2 create mode 100755 externals/grill/flext/tutorial/maxmsp/ex-simple1 create mode 100755 externals/grill/flext/tutorial/maxmsp/ex-simple2 create mode 100755 externals/grill/flext/tutorial/maxmsp/ex-simple3 create mode 100644 externals/grill/flext/tutorial/pd/ex-adv1.pd create mode 100644 externals/grill/flext/tutorial/pd/ex-signal1.pd create mode 100644 externals/grill/flext/tutorial/pd/ex-signal2.pd create mode 100644 externals/grill/flext/tutorial/pd/ex-simple1.pd create mode 100644 externals/grill/flext/tutorial/pd/ex-simple2.pd create mode 100644 externals/grill/flext/tutorial/pd/ex-simple3.pd create mode 100644 externals/grill/flext/tutorial/pd/ex-thread1.pd create mode 100644 externals/grill/flext/tutorial/pd/ex-thread2.pd create mode 100644 externals/grill/flext/tutorial/readme.txt create mode 100644 externals/grill/flext/tutorial/signal1/main.cpp create mode 100644 externals/grill/flext/tutorial/signal1/signal1.cw create mode 100644 externals/grill/flext/tutorial/signal1/signal1.dsp create mode 100644 externals/grill/flext/tutorial/signal2/main.cpp create mode 100644 externals/grill/flext/tutorial/signal2/signal2.cw create mode 100644 externals/grill/flext/tutorial/signal2/signal2.dsp create mode 100755 externals/grill/flext/tutorial/simple1/main.cpp create mode 100755 externals/grill/flext/tutorial/simple1/simple1.cw create mode 100644 externals/grill/flext/tutorial/simple1/simple1.dsp create mode 100755 externals/grill/flext/tutorial/simple2/main.cpp create mode 100755 externals/grill/flext/tutorial/simple2/simple2.cw create mode 100644 externals/grill/flext/tutorial/simple2/simple2.dsp create mode 100644 externals/grill/flext/tutorial/simple3/main.cpp create mode 100644 externals/grill/flext/tutorial/simple3/simple3.cw create mode 100644 externals/grill/flext/tutorial/simple3/simple3.dsp create mode 100644 externals/grill/flext/tutorial/thread1/main.cpp create mode 100644 externals/grill/flext/tutorial/thread1/thread1.cw create mode 100644 externals/grill/flext/tutorial/thread1/thread1.dsp create mode 100644 externals/grill/flext/tutorial/thread2/main.cpp create mode 100755 externals/grill/flext/tutorial/thread2/thread2.cw create mode 100644 externals/grill/flext/tutorial/thread2/thread2.dsp create mode 100644 externals/grill/flext/tutorial/tutorial.dsw (limited to 'externals/grill/flext/tutorial') diff --git a/externals/grill/flext/tutorial/adv1/adv1.cw b/externals/grill/flext/tutorial/adv1/adv1.cw new file mode 100755 index 00000000..bd68d0e8 Binary files /dev/null and b/externals/grill/flext/tutorial/adv1/adv1.cw differ diff --git a/externals/grill/flext/tutorial/adv1/adv1.dsp b/externals/grill/flext/tutorial/adv1/adv1.dsp new file mode 100644 index 00000000..8917c44e --- /dev/null +++ b/externals/grill/flext/tutorial/adv1/adv1.dsp @@ -0,0 +1,96 @@ +# Microsoft Developer Studio Project File - Name="adv1" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=adv1 - 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 "adv1.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 "adv1.mak" CFG="adv1 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "adv1 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "adv1 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "adv1" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "adv1 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"../msvc/adv1.dll" /libpath:"..\..\pd-msvc" +# SUBTRACT LINK32 /nodefaultlib + +!ELSEIF "$(CFG)" == "adv1 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "adv1 - Win32 Release" +# Name "adv1 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/adv1/main.cpp b/externals/grill/flext/tutorial/adv1/main.cpp new file mode 100755 index 00000000..f59ebddd --- /dev/null +++ b/externals/grill/flext/tutorial/adv1/main.cpp @@ -0,0 +1,104 @@ +/* +flext tutorial - advanced 1 + +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 of a simplified prepend object +*/ + +#include + +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 400) +#error You need at least flext version 0.4.0 +#endif + + +class adv1: + public flext_base +{ + FLEXT_HEADER(adv1,flext_base) + +public: + // constructor with variable argument list + adv1(int argc,t_atom *argv); + +protected: + void m_any(const t_symbol *s,int argc,t_atom *argv); // method which digests anything + + AtomList lst; +private: + FLEXT_CALLBACK_A(m_any); // callback for method "m_any" (with anything argument) +}; + +// instantiate the class (constructor has a variable argument list) +// note the two words in the string: prepend acts as an alias for adv1! +FLEXT_NEW_V("adv1 prepend",adv1) + + + +// constructor + +adv1::adv1(int argc,t_atom *argv) +{ + AddInAnything(); // one inlet that can receive anything + AddOutAnything(); // one outlet for anything + + // set up inlets and outlets + SetupInOut(); + + // register method + FLEXT_ADDMETHOD(0,m_any); // register method "m_any" for inlet 0 + + if(argc != 0) { // check for arg count + // store arg list + lst(argc,argv); + } + else { + // no args given + post("%s - no arguments given",thisName()); + + // tell flext that the initialization was not successful... object will not live + InitProblem(); + } +} + + + +// method + +void adv1::m_any(const t_symbol *s,int argc,t_atom *argv) +{ + // reserve space for as many atoms as possibly necessary + AtomList result(lst.Count()+argc+2); + + // ix is our counter of atoms to output + int ix = 0; + + int i = 0; + if(!IsSymbol(lst[0])) { + // if first element to prepend is no symbol then make it a "list" + SetSymbol(result[ix++],sym_list); + } + // copy atoms to prepend to result list + for(; i < lst.Count(); ++i) CopyAtom(&result[ix++],&lst[i]); + + // if anything is no "list" or "float" then append it to result list + if(s != sym_list && s != sym_float +#ifdef MAXMSP + && s != sym_int // in Max integers are system data types +#endif + ) + SetSymbol(result[ix++],s); + + // append pending arguments to result list + for(i = 0; i < argc; ++i) CopyAtom(&result[ix++],argv+i); + + // output result list as an anything + ToOutAnything(0,GetSymbol(result[0]),ix-1,result.Atoms()+1); +} + + diff --git a/externals/grill/flext/tutorial/build-pd-bcc.bat b/externals/grill/flext/tutorial/build-pd-bcc.bat new file mode 100644 index 00000000..5a8e8a57 --- /dev/null +++ b/externals/grill/flext/tutorial/build-pd-bcc.bat @@ -0,0 +1,27 @@ +@echo --- Building flext tutorial examples with BorlandC++ --- + +@cd simple1 +@make -f ..\makefile.pd-bcc NAME=simple1 SETUPFUNCTION=simple1_setup +@cd .. + +@cd simple2 +@make -f ..\makefile.pd-bcc NAME=simple2 SETUPFUNCTION=simple2_setup +@cd .. + +@cd simple3 +@make -f ..\makefile.pd-bcc NAME=simple3 SETUPFUNCTION=simple3_setup +@cd .. + +@cd adv1 +@make -f ..\makefile.pd-bcc NAME=adv1 SETUPFUNCTION=adv1_setup +@cd .. + +@cd signal1 +@make -f ..\makefile.pd-bcc NAME=signal1~ SETUPFUNCTION=signal1_tilde_setup +@cd .. + +@cd signal2 +@make -f ..\makefile.pd-bcc NAME=signal2~ SETUPFUNCTION=signal2_tilde_setup +@cd .. + + diff --git a/externals/grill/flext/tutorial/build-pd-cygwin.sh b/externals/grill/flext/tutorial/build-pd-cygwin.sh new file mode 100644 index 00000000..1c34954a --- /dev/null +++ b/externals/grill/flext/tutorial/build-pd-cygwin.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +make -f makefile.pd-cygwin diff --git a/externals/grill/flext/tutorial/build-pd-linux.sh b/externals/grill/flext/tutorial/build-pd-linux.sh new file mode 100644 index 00000000..bd11c6c4 --- /dev/null +++ b/externals/grill/flext/tutorial/build-pd-linux.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +make -f makefile.pd-linux + diff --git a/externals/grill/flext/tutorial/build-pd-msvc.bat b/externals/grill/flext/tutorial/build-pd-msvc.bat new file mode 100644 index 00000000..f6eb9625 --- /dev/null +++ b/externals/grill/flext/tutorial/build-pd-msvc.bat @@ -0,0 +1,11 @@ +@echo --- Building flext tutorial examples with MSVC++ --- + +nmake /f makefile.pd-msvc NAME=simple1 DIR=simple1 +nmake /f makefile.pd-msvc NAME=simple2 DIR=simple2 +nmake /f makefile.pd-msvc NAME=simple3 DIR=simple3 +nmake /f makefile.pd-msvc NAME=adv1 DIR=adv1 +nmake /f makefile.pd-msvc NAME=signal1~ DIR=signal1 +nmake /f makefile.pd-msvc NAME=signal2~ DIR=signal2 +nmake /f makefile.pd-msvc NAME=thread1 DIR=thread1 +nmake /f makefile.pd-msvc NAME=thread2 DIR=thread2 + diff --git a/externals/grill/flext/tutorial/config-pd-bcc.txt b/externals/grill/flext/tutorial/config-pd-bcc.txt new file mode 100644 index 00000000..2ce2b2c3 --- /dev/null +++ b/externals/grill/flext/tutorial/config-pd-bcc.txt @@ -0,0 +1,21 @@ +# flext - C++ layer for Max/MSP and pd (pure data) externals +# tutorial examples +# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +# + +# where is PD? +PDPATH=c:\programme\audio\pd + +# where is BorlandC++? +BCCPATH=c:\programme\prog\bcc55 + +# where do the flext libraries reside? +FLEXTPATH=$(PDPATH)\flext + +# build directory for tutorial examples +OUTPATH=.\pd-bcc + + + + + diff --git a/externals/grill/flext/tutorial/config-pd-cygwin.txt b/externals/grill/flext/tutorial/config-pd-cygwin.txt new file mode 100644 index 00000000..a2ccf30c --- /dev/null +++ b/externals/grill/flext/tutorial/config-pd-cygwin.txt @@ -0,0 +1,13 @@ +# flext - C++ layer for Max/MSP and pd (pure data) externals +# tutorial examples +# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +# + +# where is PD? +PDPATH=/cygdrive/c/programme/audio/pd + +# where do the flext libraries reside? +FLEXTPATH=${PDPATH}/flext + +# where should the examples be built? +OUTPATH=./pd-cygwin diff --git a/externals/grill/flext/tutorial/config-pd-linux.txt b/externals/grill/flext/tutorial/config-pd-linux.txt new file mode 100644 index 00000000..3cfb4a9f --- /dev/null +++ b/externals/grill/flext/tutorial/config-pd-linux.txt @@ -0,0 +1,19 @@ +# flext - C++ layer for Max/MSP and pd (pure data) externals +# tutorial examples +# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +# + +# where are the PD header files? +PDPATH=/usr/local/include + +# where do the flext libraries reside? +FLEXTPATH=/usr/local/lib/pd/flext + +# where should the examples be built? (relative path) +OUTPATH=./pd-linux + +# install the examples? (yes/no) +INSTALL=yes + +# where should the examples be installed? +INSTPATH=${FLEXTPATH}/tutorial diff --git a/externals/grill/flext/tutorial/config-pd-msvc.txt b/externals/grill/flext/tutorial/config-pd-msvc.txt new file mode 100644 index 00000000..b68fdadb --- /dev/null +++ b/externals/grill/flext/tutorial/config-pd-msvc.txt @@ -0,0 +1,16 @@ +# flext - C++ layer for Max/MSP and pd (pure data) externals +# tutorial examples +# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +# + +# where is PD? +PDPATH=c:\programme\audio\pd + +# where is MS VC++? +MSVCPATH=c:\programme\prog\microsoft visual studio\VC98 + +# where do the flext libraries reside? +FLEXTPATH=$(PDPATH)\flext + +# where should the examples be built? +OUTPATH=.\pd-msvc diff --git a/externals/grill/flext/tutorial/gpl.txt b/externals/grill/flext/tutorial/gpl.txt new file mode 100755 index 00000000..5ea29a7d --- /dev/null +++ b/externals/grill/flext/tutorial/gpl.txt @@ -0,0 +1,346 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + diff --git a/externals/grill/flext/tutorial/license.txt b/externals/grill/flext/tutorial/license.txt new file mode 100755 index 00000000..f0d1a975 --- /dev/null +++ b/externals/grill/flext/tutorial/license.txt @@ -0,0 +1,50 @@ +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 + +--------------------------------------------------------- + + OTHER COPYRIGHT NOTICES + +--------------------------------------------------------- +This package uses a lot of code from GEM by Mark Danks + +See the license text below: + +--- GEM -------------------------------------- +GEM - Graphics Environment for Multimedia +Copyright (C) 1997-2000 Mark Danks + +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 GEM distribution, the GNU General Public License is +in the file GnuGPL.LICENSE + diff --git a/externals/grill/flext/tutorial/makefile.pd-bcc b/externals/grill/flext/tutorial/makefile.pd-bcc new file mode 100644 index 00000000..1e718176 --- /dev/null +++ b/externals/grill/flext/tutorial/makefile.pd-bcc @@ -0,0 +1,75 @@ +# flext tutorial examples +# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +# +# This is a make include file for BorlandC++ +# It can't be used on its own +# +# --------------------------------------------- + +!include ..\config-pd-bcc.txt + +OUTPATH=..\$(OUTPATH) + +TARGET=pdwin + +# 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= main.cpp +HDRS= + +#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)\$(NAME).dll + -ren $** $< + +$(OUTPATH)\$(NAME).dll :: $(OUTPATH) $(OUTPATH)\$(NAME).def $(OUTPATH)\pd.lib + +$(OUTPATH)\$(NAME).dll :: $(OBJS) + ilink32 -C -Tpd $(LIBPATH) $** ,$<,,$(LIBS) $(OUTPATH)\pd.lib $(FLEXTPATH)\flext-$(TARGET).lib ,$(OUTPATH)\$(NAME).def + -@del $** + -@del $(OUTPATH)\*.i* + -@del $(OUTPATH)\*.map + -@del $(OUTPATH)\*.def + -@del $(OUTPATH)\*.tds + + + + diff --git a/externals/grill/flext/tutorial/makefile.pd-cygwin b/externals/grill/flext/tutorial/makefile.pd-cygwin new file mode 100644 index 00000000..b8a48403 --- /dev/null +++ b/externals/grill/flext/tutorial/makefile.pd-cygwin @@ -0,0 +1,58 @@ +# flext tutorial examples +# +# Makefile for gcc @ cygwin +# +# usage: make -f makefile.pd-cygwin +# +# ----------------------------------------------------- +# +# note: the thread examples don't compile with cygwin +# +# ----------------------------------------------------- + +include config-pd-cygwin.txt + +FLEXTLIB=$(FLEXTPATH)/flext-pdwin.lib + +INCLUDES=$(PDPATH)/src +LIBPATH=$(PDPATH)/bin +FLAGS=-DPD -DNT +CFLAGS=-O6 -mcpu=pentiumpro +LIBS=m pd + + +# the rest can stay untouched +# ---------------------------------------------- + +# all the source files from the package + +EXAMPLES=simple1 simple2 simple3 adv1 signal1~ signal2~ # thread1 thread2 + +TARGETS=$(patsubst %,$(OUTPATH)/%.dll,$(EXAMPLES)) + +# default target +all: $(OUTPATH) $(TARGETS) + + +$(OUTPATH)/%~.dll : $(OUTPATH)/%.dll + mv $^ $@ + +$(SRCS): $(HDRS) + touch $@ + +$(OUTPATH): + -mkdir $(OUTPATH) + +$(OUTPATH)/%.o : %/main.cpp + $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@ + +$(OUTPATH)/%.dll : $(OUTPATH)/%.o $(FLEXTLIB) + $(CXX) $(LDFLAGS) -shared $(patsubst %,-L%,$(LIBPATH)) $^ $(patsubst %,-l%,$(LIBS)) -o $@ + rm $< + chmod 755 $@ + + +.PHONY: clean +clean: + rm -f $(OUTPATH)/*.o $(TARGETS) + diff --git a/externals/grill/flext/tutorial/makefile.pd-linux b/externals/grill/flext/tutorial/makefile.pd-linux new file mode 100644 index 00000000..5c0a3cbc --- /dev/null +++ b/externals/grill/flext/tutorial/makefile.pd-linux @@ -0,0 +1,57 @@ +# flext tutorial examples +# +# Makefile for gcc @ linux +# +# usage: make -f makefile.pd-linux +# +# ----------------------------------------------------- + +include config-pd-linux.txt + +FLEXTLIB=$(FLEXTPATH)/flext_t.a # take threaded library for all + + +# compiler+linker stuff ### EDIT! ### +INCLUDES=$(PDPATH)/src +LIBPATH= +FLAGS=-DPD -DFLEXT_THREADS +CFLAGS=-O6 -mcpu=pentiumpro +LIBS=m + + +# the rest can stay untouched +# ---------------------------------------------- + +# all the source files from the package + +EXAMPLES=simple1 simple2 simple3 adv1 signal1~ signal2~ thread1 thread2 + + +TARGETS=$(patsubst %,$(OUTPATH)/%.pd_linux,$(EXAMPLES)) + +# default target +all: $(OUTPATH) $(TARGETS) + + +$(OUTPATH)/%~.pd_linux : $(OUTPATH)/%.pd_linux + mv $^ $@ + +$(SRCS): $(HDRS) + touch $@ + +$(OUTPATH): + mkdir $(OUTPATH) + +$(OUTPATH)/%.o : %/main.cpp + $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@ + +$(OUTPATH)/%.pd_linux : $(OUTPATH)/%.o $(FLEXTLIB) + $(CXX) $(LDFLAGS) -shared $(patsubst %,-L%,$(LIBPATH)) $^ $(patsubst %,-l%,$(LIBS)) -o $@ + chmod 755 $@ + + +.PHONY: clean +clean: + rm -f $(OUTPATH)/*.o $(TARGETS) + + diff --git a/externals/grill/flext/tutorial/makefile.pd-msvc b/externals/grill/flext/tutorial/makefile.pd-msvc new file mode 100644 index 00000000..3478cb9e --- /dev/null +++ b/externals/grill/flext/tutorial/makefile.pd-msvc @@ -0,0 +1,48 @@ +# flext - C++ layer for Max/MSP and pd (pure data) externals +# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +# +# Makefile for MSVC++ +# +# +# IMPORTANT: Adjust some of the paths also in makefile-inc.msvc +# +# usage: make -f makefile.pd-msvc +# +# --------------------------------------------------------------- + +!include config-pd-msvc.txt + +# includes +INCPATH=/I"$(MSVCPATH)\include" /I"$(PDPATH)\src" /I"$(FLEXTPATH)" +LIBPATH=/LIBPATH:"$(MSVCPATH)\lib" /LIBPATH:"$(PDPATH)\bin" /LIBPATH:"$(FLEXTPATH)" +LIBS=pd.lib pthreadVC.lib flext_t-pdwin.lib + +# compiler definitions and flags +DEFS=/DPD /DNT /DFLEXT_THREADS + +CFLAGS=/GR /GD /G6 /Ox /MT + + +# the rest can stay untouched +# ---------------------------------------------- + +# all the source files from the package +SRCS=main.cpp +HDRS= + +# ----------------------------------------------- + +all: $(OUTPATH) $(OUTPATH)\$(NAME).dll + +$(OUTPATH): + -mkdir $(OUTPATH) + +$(OUTPATH)\$(NAME)~.dll : $(OUTPATH)\$(NAME).dll + -ren $** $< + +$(OUTPATH)\$(NAME).dll : $(DIR)\$(SRCS) + cl /c /LD $(CFLAGS) $(DEFS) $(INCPATH) $** /Fotemp.obj + link /DLL /out:$@ /INCREMENTAL:NO temp.obj $(LIBS) $(LIBPATH) + @-del $(OUTPATH)\*.exp + @-del $(OUTPATH)\*.lib + @-del temp.obj diff --git a/externals/grill/flext/tutorial/maxmsp/ex-adv1 b/externals/grill/flext/tutorial/maxmsp/ex-adv1 new file mode 100755 index 00000000..dc29619b Binary files /dev/null and b/externals/grill/flext/tutorial/maxmsp/ex-adv1 differ diff --git a/externals/grill/flext/tutorial/maxmsp/ex-signal1 b/externals/grill/flext/tutorial/maxmsp/ex-signal1 new file mode 100755 index 00000000..ca80fc9f Binary files /dev/null and b/externals/grill/flext/tutorial/maxmsp/ex-signal1 differ diff --git a/externals/grill/flext/tutorial/maxmsp/ex-signal2 b/externals/grill/flext/tutorial/maxmsp/ex-signal2 new file mode 100755 index 00000000..f7172d01 Binary files /dev/null and b/externals/grill/flext/tutorial/maxmsp/ex-signal2 differ diff --git a/externals/grill/flext/tutorial/maxmsp/ex-simple1 b/externals/grill/flext/tutorial/maxmsp/ex-simple1 new file mode 100755 index 00000000..efebcce6 Binary files /dev/null and b/externals/grill/flext/tutorial/maxmsp/ex-simple1 differ diff --git a/externals/grill/flext/tutorial/maxmsp/ex-simple2 b/externals/grill/flext/tutorial/maxmsp/ex-simple2 new file mode 100755 index 00000000..5515bc98 Binary files /dev/null and b/externals/grill/flext/tutorial/maxmsp/ex-simple2 differ diff --git a/externals/grill/flext/tutorial/maxmsp/ex-simple3 b/externals/grill/flext/tutorial/maxmsp/ex-simple3 new file mode 100755 index 00000000..62e048b7 Binary files /dev/null and b/externals/grill/flext/tutorial/maxmsp/ex-simple3 differ diff --git a/externals/grill/flext/tutorial/pd/ex-adv1.pd b/externals/grill/flext/tutorial/pd/ex-adv1.pd new file mode 100644 index 00000000..7ff14d6e --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-adv1.pd @@ -0,0 +1,14 @@ +#N canvas 175 265 667 312 12; +#X msg 35 31 or two words; +#X msg 167 31 2 3; +#X msg 47 252 one 2 3; +#X obj 85 154 print result; +#X obj 69 123 adv1 one; +#X obj 47 224 prepend set; +#X text 154 216 you can also use "prepend" if "adv1" has already been +loaded!; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 4 0 3 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; diff --git a/externals/grill/flext/tutorial/pd/ex-signal1.pd b/externals/grill/flext/tutorial/pd/ex-signal1.pd new file mode 100644 index 00000000..391e33a5 --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-signal1.pd @@ -0,0 +1,16 @@ +#N canvas 335 232 452 302 10; +#X obj 233 98 hsl 128 15 0 1 0 0 empty empty empty 20 8 0 8 -260818 +-1 -1 0 1; +#X obj 117 46 osc~ 440; +#X obj 155 173 *~ 0.6; +#X obj 147 218 dac~; +#X obj 184 47 osc~ 880; +#X floatatom 210 80 5 0 0; +#X obj 155 139 signal1~; +#X connect 0 0 6 2; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 2 0 3 1; +#X connect 4 0 6 1; +#X connect 5 0 6 2; +#X connect 6 0 2 0; diff --git a/externals/grill/flext/tutorial/pd/ex-signal2.pd b/externals/grill/flext/tutorial/pd/ex-signal2.pd new file mode 100644 index 00000000..cdd7aaea --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-signal2.pd @@ -0,0 +1,17 @@ +#N canvas 251 267 456 306 12; +#X obj 89 68 signal2~; +#X floatatom 52 117 5 0 0; +#X floatatom 153 120 5 0 0; +#X floatatom 251 120 5 0 0; +#X floatatom 345 121 5 0 0; +#X obj 90 30 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 29 136 sample rate; +#X text 136 136 block size; +#X text 116 29 bang to get audio system parameters; +#X text 243 137 channels in and out; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 0; +#X connect 0 3 4 0; +#X connect 5 0 0 0; diff --git a/externals/grill/flext/tutorial/pd/ex-simple1.pd b/externals/grill/flext/tutorial/pd/ex-simple1.pd new file mode 100644 index 00000000..1be01595 --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-simple1.pd @@ -0,0 +1,10 @@ +#N canvas 197 285 460 310 12; +#X floatatom 85 47 5 0 0; +#X floatatom 85 142 5 0 0; +#X msg 22 44 help; +#X text 137 141 inverse; +#X text 139 45 input; +#X obj 85 90 simple1; +#X connect 0 0 5 0; +#X connect 2 0 5 0; +#X connect 5 0 1 0; diff --git a/externals/grill/flext/tutorial/pd/ex-simple2.pd b/externals/grill/flext/tutorial/pd/ex-simple2.pd new file mode 100644 index 00000000..8074cb13 --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-simple2.pd @@ -0,0 +1,13 @@ +#N canvas 197 285 454 304 12; +#X obj 110 96 simple2 3; +#X floatatom 98 51 5 0 0; +#X floatatom 199 52 5 0 0; +#X floatatom 108 150 5 0 0; +#X msg 11 12 help; +#X text 90 30 triggering; +#X text 202 31 non-triggering; +#X text 196 96 default argument; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 4 0 0 0; diff --git a/externals/grill/flext/tutorial/pd/ex-simple3.pd b/externals/grill/flext/tutorial/pd/ex-simple3.pd new file mode 100644 index 00000000..e2867241 --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-simple3.pd @@ -0,0 +1,18 @@ +#N canvas 329 97 539 308 12; +#X msg 11 12 help; +#X msg 123 84 born; +#X msg 172 85 to; +#X msg 214 87 hula; +#X msg 228 168 yeah; +#X msg 228 130 hula 1; +#X text 280 169 other symbol; +#X text 57 12 issue help message; +#X obj 148 231 simple3; +#X text 261 88 tag without argument; +#X text 297 128 tag and argument; +#X connect 0 0 8 0; +#X connect 1 0 8 0; +#X connect 2 0 8 0; +#X connect 3 0 8 0; +#X connect 4 0 8 0; +#X connect 5 0 8 0; diff --git a/externals/grill/flext/tutorial/pd/ex-thread1.pd b/externals/grill/flext/tutorial/pd/ex-thread1.pd new file mode 100644 index 00000000..6358406c --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-thread1.pd @@ -0,0 +1,34 @@ +#N canvas 105 266 672 310 12; +#X obj 54 29 bng 25 250 50 0 empty empty start 0 -6 0 8 -258699 -1 +-1; +#X floatatom 54 216 8 0 0; +#X obj 54 182 thread1; +#X floatatom 145 218 8 0 0; +#X obj 145 184 thread1; +#X floatatom 235 219 8 0 0; +#X obj 235 185 thread1; +#X floatatom 327 219 8 0 0; +#X obj 327 185 thread1; +#X floatatom 420 219 8 0 0; +#X obj 420 185 thread1; +#X obj 146 123 delay 200; +#X obj 235 122 delay 200; +#X obj 328 124 delay 200; +#X obj 419 123 delay 200; +#X text 93 23 click to start; +#X text 141 41 (if you click twice \, the same thread is started a +second time); +#X connect 0 0 2 0; +#X connect 0 0 11 0; +#X connect 2 0 1 0; +#X connect 4 0 3 0; +#X connect 6 0 5 0; +#X connect 8 0 7 0; +#X connect 10 0 9 0; +#X connect 11 0 4 0; +#X connect 11 0 12 0; +#X connect 12 0 6 0; +#X connect 12 0 13 0; +#X connect 13 0 8 0; +#X connect 13 0 14 0; +#X connect 14 0 10 0; diff --git a/externals/grill/flext/tutorial/pd/ex-thread2.pd b/externals/grill/flext/tutorial/pd/ex-thread2.pd new file mode 100644 index 00000000..26205b8d --- /dev/null +++ b/externals/grill/flext/tutorial/pd/ex-thread2.pd @@ -0,0 +1,40 @@ +#N canvas 116 192 666 304 12; +#X msg 91 131 stop; +#X msg 262 135 stop; +#X obj 206 42 bng 25 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 +-1; +#X obj 298 42 bng 25 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 +-1; +#X text 198 21 start; +#X text 290 20 stop; +#X msg 46 131 0; +#X msg 217 135 0; +#X msg 430 133 stop; +#X msg 385 133 0; +#X obj 411 172 thread2 50; +#X obj 239 172 thread2 15; +#X obj 73 171 thread2 3; +#X floatatom 73 205 8 0 0; +#X floatatom 239 205 8 0 0; +#X floatatom 411 205 8 0 0; +#X msg 140 131 text; +#X msg 309 135 text; +#X msg 477 133 text; +#X connect 0 0 12 0; +#X connect 1 0 11 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 0 0; +#X connect 3 0 1 0; +#X connect 3 0 8 0; +#X connect 6 0 12 0; +#X connect 7 0 11 0; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 10 0 15 0; +#X connect 11 0 14 0; +#X connect 12 0 13 0; +#X connect 16 0 12 0; +#X connect 17 0 11 0; +#X connect 18 0 10 0; diff --git a/externals/grill/flext/tutorial/readme.txt b/externals/grill/flext/tutorial/readme.txt new file mode 100644 index 00000000..ec05f1a1 --- /dev/null +++ b/externals/grill/flext/tutorial/readme.txt @@ -0,0 +1,36 @@ +flext - C++ layer for Max/MSP and pd (pure data) externals +tutorial examples + +Copyright (c) 2001,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. + +---------------------------------------------------------------------------- + +These are a few examples to demonstrate some flext features. +Contribution of examples to the package is higly appreciated! + +---------------------------------------------------------------------------- + +The package should at least compile (and is tested) with the following compilers: + +pd - Windows: +------------- +o Borland C++ 5.5 (free): edit "config-pd-bcc.txt" & run "build-pd-bcc.bat" + +o Microsoft Visual C++ 6: edit "config-pd-msvc.txt" & run "build-pd-msvc.bat" + +o Cygwin: edit "config-pd-cygwin.txt" & run "sh build-pd-cygwin.sh" + +pd - linux: +----------- +o GCC: edit "config-pd-linux.txt" & run "sh build-pd-linux.sh" + +Max/MSP - MacOS 9: +------------------ +o Metrowerks CodeWarrior V6: edit & use the several ".cw" project files + +o Apple MPW-PR: edit & use the several "make.mpw" makefiles + +---------------------------------------------------------------------------- + diff --git a/externals/grill/flext/tutorial/signal1/main.cpp b/externals/grill/flext/tutorial/signal1/main.cpp new file mode 100644 index 00000000..14818e6f --- /dev/null +++ b/externals/grill/flext/tutorial/signal1/main.cpp @@ -0,0 +1,129 @@ +// signal1~ - a flext tutorial external written by Frank Barknecht +// +// This is a commented port of the pan~ example from the PD-Externals-Howto to +// illustrate the usage of flext. You can get the original code at +// http://iem.kug.ac.at/pd/externals-HOWTO/ + +#include +#include + +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 300) +#error You need at least flext version 0.3.0 +#endif + + +// A flext dsp external ("tilde object") inherits from the class flext_dsp +class signal1: + public flext_dsp +{ + // Each external that is written in C++ needs to use #defines + // from flbase.h + // + // The define + // + // FLEXT_HEADER(NEW_CLASS, PARENT_CLASS) + // + // should be somewhere in your dsp file. + // A good place is here: + + FLEXT_HEADER(signal1, flext_dsp) + + public: + signal1(): + f_pan(0) // initialize f_pan + { + // The constructor of your class is responsible for + // setting up inlets and outlets and for registering + // inlet-methods: + + AddInSignal(2); // 2 audio ins + AddInFloat(); // 1 float in + AddOutSignal(); // 1 audio out [ == AddOutSignal(1) ] + + SetupInOut(); // set up inlets and outlets. + // Must be called once! + + // Now we need to bind the handler function to our + // panning inlet, which is inlet 2 (counting all inlets + // from 0). We want the function "setPan" to get + // called on incoming float messages: + + FLEXT_ADDMETHOD(2,setPan); + + // We're done constructing: + post("-- pan~ with flext ---"); + + } // end of constructor + + + protected: + // here we declare the virtual DSP function + virtual void m_signal(int n, float *const *in, float *const *out); + private: + float f_pan; // holds our panning factor + + // Before we can use "setPan" as a handler, we must register this + // function as a callback to PD or Max. This is done using the + // FLEXT_CALLBACK* macros. There are several of them. + // + // FLEXT_CALLBACK_F is a shortcut, that registers a function + // expecting one float arg (thus ending in "_F"). There are + // other shortcuts that register other types of functions. Look + // into flext.h. No semicolon at the end of line!!! + FLEXT_CALLBACK_F(setPan) + + // Now setPan can get declared and defined here. + void setPan(float f) + { + // set our private panning factor "f_pan" to the inlet + // value float "f" in the intervall [0,1] + f_pan = (f<0) ? 0.0f : (f>1) ? 1.0f : f ; + + // if you want to debug if this worked, comment out the + // following line: + //post("Set panning to %.2f, maybe clipped from %.2f", f_pan,f); + } // end setPan +}; // end of class declaration for signal1 + + +// Before we can run our signal1-class in PD, the object has to be registered as a +// PD object. Otherwise it would be a simple C++-class, and what good would +// that be for? Registering is made easy with the FLEXT_NEW_* macros defined +// in flext.h. For tilde objects without arguments call: + +FLEXT_NEW_DSP("signal1~ signal1~", signal1) +// T.Grill: there are two names for the object: signal1~ as main name and pan~ as its alias + +// Now we define our DSP function. It gets this arguments: +// +// int n: length of signal vector. Loop over this for your signal processing. +// float *const *in, float *const *out: +// These are arrays of the signals in the objects signal inlets rsp. +// oulets. We come to that later inside the function. + +void signal1::m_signal(int n, float *const *in, float *const *out) +{ + + const float *ins1 = in[0]; + const float *ins2 = in[1]; + // As said above "in" holds a list of the signal vectors in all inlets. + // After these two lines, ins1 holds the signal vector ofthe first + // inlet, index 0, and ins2 holds the signal vector of the second + // inlet, with index 1. + + float *outs = out[0]; + // Now outs holds the signal vector at the one signal outlet we have. + + // We are now ready for the main signal loop + while (n--) + { + + // The "++" after the pointers outs, ins1 and ins2 walks us + // through the signal vector with each n, of course. Before + // each step we change the signal value in the outlet *outs + // according to our panning factor "f_pan" and according to the + // signals at the two signal inlets, *ins1 and *ins2 + + *outs++ = (*ins1++) * (1-f_pan) + (*ins2++) * f_pan; + } +} // end m_signal diff --git a/externals/grill/flext/tutorial/signal1/signal1.cw b/externals/grill/flext/tutorial/signal1/signal1.cw new file mode 100644 index 00000000..f273b763 Binary files /dev/null and b/externals/grill/flext/tutorial/signal1/signal1.cw differ diff --git a/externals/grill/flext/tutorial/signal1/signal1.dsp b/externals/grill/flext/tutorial/signal1/signal1.dsp new file mode 100644 index 00000000..42916c07 --- /dev/null +++ b/externals/grill/flext/tutorial/signal1/signal1.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="signal1" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=signal1 - 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 "signal1.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 "signal1.mak" CFG="signal1 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "signal1 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "signal1 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "max/flext/tutorial/signal1" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "signal1 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"../msvc/signal1~.dll" /libpath:"..\..\pd-msvc" + +!ELSEIF "$(CFG)" == "signal1 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /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:"msvc-debug/signal1~.dll" /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "signal1 - Win32 Release" +# Name "signal1 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/signal2/main.cpp b/externals/grill/flext/tutorial/signal2/main.cpp new file mode 100644 index 00000000..1517b536 --- /dev/null +++ b/externals/grill/flext/tutorial/signal2/main.cpp @@ -0,0 +1,80 @@ +/* +flext tutorial - signal 2 + +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 object showing varous parameters of the pd audio system +*/ + +// include flext header +#include + +// check for appropriate flext version +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 300) +#error You need at least flext version 0.3.0 +#endif + + +// define the class that stands for a pd/Max object +// Attention: the class name must be the same as the object name!! (without the ~) + +class signal2: + // inherit from flext dsp class + public flext_dsp +{ + // obligatory flext header (class name,base class name) + FLEXT_HEADER(signal2,flext_dsp) + +public: + // constructor + signal2(); + +protected: + void m_bang(); // method for bang + + // this virtual function is obligatory for objects derived from flext_dsp + virtual void m_signal(int n, float *const *in, float *const *out); + +private: + FLEXT_CALLBACK(m_bang); // callback for method "m_bang" +}; + +// instantiate the class +FLEXT_NEW_DSP("signal2~",signal2) + + +signal2::signal2() +{ + // define inlets: + // first inlet must always by of type anything (or signal for dsp objects) + AddInAnything(); // add one inlet for any message + + // add outlets for sample rate, block size, audio in and out channel count + AddOutFloat(1); + AddOutInt(3); // although PD knows no int type, flext does! + + // set up inlets and outlets - obligatory! + SetupInOut(); + + // register methods + FLEXT_ADDBANG(0,m_bang); // register method "m_bang" for bang message into inlet 0 +} + +void signal2::m_bang() +{ + // output various parameters of the pd audio system + ToOutFloat(0,Samplerate()); + ToOutInt(1,Blocksize()); + ToOutInt(2,ChannelsIn()); + ToOutInt(3,ChannelsOut()); +} + +void signal2::m_signal(int, float *const *, float *const *) +{ + // do no dsp work +} + diff --git a/externals/grill/flext/tutorial/signal2/signal2.cw b/externals/grill/flext/tutorial/signal2/signal2.cw new file mode 100644 index 00000000..a7b29ba3 Binary files /dev/null and b/externals/grill/flext/tutorial/signal2/signal2.cw differ diff --git a/externals/grill/flext/tutorial/signal2/signal2.dsp b/externals/grill/flext/tutorial/signal2/signal2.dsp new file mode 100644 index 00000000..c70ae670 --- /dev/null +++ b/externals/grill/flext/tutorial/signal2/signal2.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="signal2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=signal2 - 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 "signal2.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 "signal2.mak" CFG="signal2 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "signal2 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "signal2 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "max/flext/tutorial/signal2" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "signal2 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"../msvc/signal2~.dll" /libpath:"..\..\pd-msvc" + +!ELSEIF "$(CFG)" == "signal2 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /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:"msvc-debug/signal2~.dll" /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "signal2 - Win32 Release" +# Name "signal2 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/simple1/main.cpp b/externals/grill/flext/tutorial/simple1/main.cpp new file mode 100755 index 00000000..38f12573 --- /dev/null +++ b/externals/grill/flext/tutorial/simple1/main.cpp @@ -0,0 +1,78 @@ +/* +flext tutorial - simple 1 + +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 of a simple object doing a float inversion +*/ + +// include flext header +#include + +// check for appropriate flext version +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 300) +#error You need at least flext version 0.3.0 +#endif + + +// define the class that stands for a pd/Max object +// Attention: the class name must be the same as the object name!! (without an eventual ~) + +class simple1: + // inherit from basic flext class + public flext_base +{ + // obligatory flext header (class name,base class name) + FLEXT_HEADER(simple1,flext_base) + +public: + // constructor + simple1(); + +protected: + void m_float(float f); // method for float values + +private: + FLEXT_CALLBACK_1(m_float,float); // callback for method "m_float" (with one float argument) +}; + +// instantiate the class +FLEXT_NEW("simple1",simple1) + + +simple1::simple1() +{ + // define inlets: + // first inlet must always by of type anything (or signal for dsp objects) + AddInAnything(); // add one inlet for any message + + // define outlets: + AddOutFloat(); // add one float outlet (has index 0) + + // set up inlets and outlets - obligatory! + SetupInOut(); + + // register methods + FLEXT_ADDMETHOD(0,m_float); // register method (for float messages) "m_float" for inlet 0 +} + +void simple1::m_float(float f) +{ + float res; + if(f == 0) { + // special case 0 + post("%s - zero can't be inverted!",thisName()); + res = 0; + } + else + // normal case + res = 1/f; + + // output value to outlet + ToOutFloat(0,res); // (0 stands for the outlet index 0 - the leftmost outlet) +} + diff --git a/externals/grill/flext/tutorial/simple1/simple1.cw b/externals/grill/flext/tutorial/simple1/simple1.cw new file mode 100755 index 00000000..d8b58eb1 Binary files /dev/null and b/externals/grill/flext/tutorial/simple1/simple1.cw differ diff --git a/externals/grill/flext/tutorial/simple1/simple1.dsp b/externals/grill/flext/tutorial/simple1/simple1.dsp new file mode 100644 index 00000000..281042a2 --- /dev/null +++ b/externals/grill/flext/tutorial/simple1/simple1.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="simple1" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=simple1 - 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 "simple1.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 "simple1.mak" CFG="simple1 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "simple1 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "simple1 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "simple1" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "simple1 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"../msvc/simple1.dll" /libpath:"..\..\pd-msvc" + +!ELSEIF "$(CFG)" == "simple1 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "simple1 - Win32 Release" +# Name "simple1 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/simple2/main.cpp b/externals/grill/flext/tutorial/simple2/main.cpp new file mode 100755 index 00000000..306a953b --- /dev/null +++ b/externals/grill/flext/tutorial/simple2/main.cpp @@ -0,0 +1,80 @@ +/* +flext tutorial - simple 2 + +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 of a simple object doing a float addition +*/ + +// include flext header +#include + +// check for appropriate flext version +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 300) +#error You need at least flext version 0.3.0 +#endif + + +class simple2: + public flext_base +{ + FLEXT_HEADER(simple2,flext_base) + +public: + // constructor with float argument + simple2(float init); + +protected: + void m_float1(float f); + void m_float2(float f); + + // stored argument of right inlet + float arg; + +private: + // FLEXT_CALLBACK_F(...) is a shortcut for FLEXT_CALLBACK_1(...,float) + FLEXT_CALLBACK_F(m_float1); // callback for method "m_float1" (with one float argument) + FLEXT_CALLBACK_F(m_float2); // callback for method "m_float2" (with one float argument) +}; + +// instantiate the class (constructor has one float argument) +FLEXT_NEW_1("simple2",simple2,float) + + +simple2::simple2(float init): + arg(init) // store argument +{ + // define inlets + AddInAnything(); // first inlet of type anything (index 0) + AddInFloat(); // additional float inlet (index 1) + + // define outlets + AddOutFloat(); // one float outlet (has index 0) + + // set up inlets and outlets - obligatory! + SetupInOut(); + + // register methods + FLEXT_ADDMETHOD(0,m_float1); // register method (for floats) "m_float1" for inlet 0 + FLEXT_ADDMETHOD(1,m_float2); // register method (for floats) "m_float2" for inlet 1 +} + +void simple2::m_float1(float f) +{ + float res; + res = arg+f; + + // output value to outlet + ToOutFloat(0,res); // (0 stands for the outlet index 0) +} + +void simple2::m_float2(float f) +{ + // store float + arg = f; +} + diff --git a/externals/grill/flext/tutorial/simple2/simple2.cw b/externals/grill/flext/tutorial/simple2/simple2.cw new file mode 100755 index 00000000..1bc9379f Binary files /dev/null and b/externals/grill/flext/tutorial/simple2/simple2.cw differ diff --git a/externals/grill/flext/tutorial/simple2/simple2.dsp b/externals/grill/flext/tutorial/simple2/simple2.dsp new file mode 100644 index 00000000..22b75a5e --- /dev/null +++ b/externals/grill/flext/tutorial/simple2/simple2.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="simple2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=simple2 - 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 "simple2.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 "simple2.mak" CFG="simple2 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "simple2 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "simple2 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "simple2" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "simple2 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"../msvc/simple2.dll" /libpath:"..\..\pd-msvc" + +!ELSEIF "$(CFG)" == "simple2 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "simple2 - Win32 Release" +# Name "simple2 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/simple3/main.cpp b/externals/grill/flext/tutorial/simple3/main.cpp new file mode 100644 index 00000000..5d290f67 --- /dev/null +++ b/externals/grill/flext/tutorial/simple3/main.cpp @@ -0,0 +1,90 @@ +/* +flext tutorial - simple 3 + +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 of an object digesting several "tagged" messages + +*/ + +// include flext header +#include + +// check for appropriate flext version +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 300) +#error You need at least flext version 0.3.0 +#endif + +class simple3: + public flext_base +{ + FLEXT_HEADER(simple3,flext_base) + +public: + // constructor with variable argument list + simple3(); + +protected: + void m_tag(); + void m_tag_and_int(int i); + void m_sym(t_symbol *s); + + // override default flext help function + virtual void m_help(); + +private: + + FLEXT_CALLBACK(m_tag); // callback for method "m_tag" (no arguments) + FLEXT_CALLBACK_I(m_tag_and_int); // callback for method "m_tag" (int arguments) + FLEXT_CALLBACK_S(m_sym); // callback for method "m_sym" (with one symbol argument) +}; + +// instantiate the class (constructor has a variable argument list) +FLEXT_NEW("simple3",simple3) + + +simple3::simple3() +{ + // define inlets + AddInAnything(); // add inlet of type anything (index 0) + + // set up inlets and outlets + SetupInOut(); + + // register methods + FLEXT_ADDMETHOD_(0,"born",m_tag); // register method for tag "born" + FLEXT_ADDMETHOD_(0,"to",m_tag); // register method for tag "to" + FLEXT_ADDMETHOD_(0,"hula",m_tag); // register method for tag "hula" + FLEXT_ADDMETHOD_I(0,"hula",m_tag_and_int); // register method for tag "hula" and int argument + + FLEXT_ADDMETHOD(0,m_sym); // register method for all other symbols +} + +void simple3::m_tag() +{ + post("tag recognized"); +} + +void simple3::m_tag_and_int(int i) +{ + post("tag recognized (has int arg: %i)",i); +} + +void simple3::m_sym(t_symbol *s) +{ + post("symbol: %s",GetString(s)); +} + + +void simple3::m_help() +{ + // post a help message + // thisName() returns a char * for the object name + post("%s - example for tagged messages",thisName()); +} + + diff --git a/externals/grill/flext/tutorial/simple3/simple3.cw b/externals/grill/flext/tutorial/simple3/simple3.cw new file mode 100644 index 00000000..b29678f7 Binary files /dev/null and b/externals/grill/flext/tutorial/simple3/simple3.cw differ diff --git a/externals/grill/flext/tutorial/simple3/simple3.dsp b/externals/grill/flext/tutorial/simple3/simple3.dsp new file mode 100644 index 00000000..8390b044 --- /dev/null +++ b/externals/grill/flext/tutorial/simple3/simple3.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="simple3" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=simple3 - 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 "simple3.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 "simple3.mak" CFG="simple3 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "simple3 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "simple3 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "simple3" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "simple3 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"../msvc/simple3.dll" /libpath:"..\..\pd-msvc" + +!ELSEIF "$(CFG)" == "simple3 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /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 /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "simple3 - Win32 Release" +# Name "simple3 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/thread1/main.cpp b/externals/grill/flext/tutorial/thread1/main.cpp new file mode 100644 index 00000000..878cef76 --- /dev/null +++ b/externals/grill/flext/tutorial/thread1/main.cpp @@ -0,0 +1,79 @@ +/* +flext tutorial - threads 1 + +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 shows an example of a method running as a thread +*/ + +// define FLEXT_THREADS for thread usage. Flext must also have been compiled with that defined! +#ifndef FLEXT_THREADS +#define FLEXT_THREADS +#endif + +#include + +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 301) +#error You need at least flext version 0.3.1 +#endif + + +class thread1: + public flext_base +{ + FLEXT_HEADER(thread1,flext_base) + +public: + thread1(); + +protected: + void m_start(); // method function + +private: + // define threaded callback for method m_start (with boolean argument) + // the same syntax as with FLEXT_CALLBACK is used here + FLEXT_THREAD(m_start); +}; + +FLEXT_NEW("thread1",thread1) + + + +thread1::thread1() +{ + AddInAnything(); + AddOutInt(); + SetupInOut(); // set up inlets and outlets + + FLEXT_ADDBANG(0,m_start); // register method +} + +void thread1::m_start() +{ + // Please note that this functions needs about 10 seconds to complete + // Without threads it would block the real-time system + + // Okay, that functionality would be far more elegant with timers + // ... but hey, it's a demo! + + for(int i = 0; i < 20 && !ShouldExit(); ++i) { + ToOutInt(0,i); // output loop count + + // wait for half a second + for(int j = 0; j < 5 && !ShouldExit(); ++j) Sleep(0.1f); + // note: we shall not block a thread for a longer time. + // The system might want to destroy the object in the meantime and + // expects thread termination. + // Flext waits for 1 second by default, then it aborts the thread brutally + } + + // output a final zero + ToOutInt(0,0); +} + + + diff --git a/externals/grill/flext/tutorial/thread1/thread1.cw b/externals/grill/flext/tutorial/thread1/thread1.cw new file mode 100644 index 00000000..b26ff18b Binary files /dev/null and b/externals/grill/flext/tutorial/thread1/thread1.cw differ diff --git a/externals/grill/flext/tutorial/thread1/thread1.dsp b/externals/grill/flext/tutorial/thread1/thread1.dsp new file mode 100644 index 00000000..7ef7ca52 --- /dev/null +++ b/externals/grill/flext/tutorial/thread1/thread1.dsp @@ -0,0 +1,104 @@ +# Microsoft Developer Studio Project File - Name="thread1" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=thread1 - 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 "thread1.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 "thread1.mak" CFG="thread1 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "thread1 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "thread1 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "thread1" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "thread1 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /D "FLEXT_THREADS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc07 /d "NDEBUG" +# ADD RSC /l 0xc07 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_t-pdwin.lib pthreadVC.lib /nologo /dll /machine:I386 /out:"../msvc/thread1.dll" /libpath:"..\..\pd-msvc" + +!ELSEIF "$(CFG)" == "thread1 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /D "FLEXT_THREADS" /FR /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc07 /d "_DEBUG" +# ADD RSC /l 0xc07 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_td-pdwin.lib pthreadVC.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "thread1 - Win32 Release" +# Name "thread1 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp + +!IF "$(CFG)" == "thread1 - Win32 Release" + +# ADD CPP /GR- + +!ELSEIF "$(CFG)" == "thread1 - Win32 Debug" + +!ENDIF + +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/thread2/main.cpp b/externals/grill/flext/tutorial/thread2/main.cpp new file mode 100644 index 00000000..ce2a170e --- /dev/null +++ b/externals/grill/flext/tutorial/thread2/main.cpp @@ -0,0 +1,132 @@ +/* +flext tutorial - threads 2 + +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 shows an example of multiple threads and syncing with a thread conditional +*/ + +// define FLEXT_THREADS for thread usage. Flext must also have been compiled with that defined! +#ifndef FLEXT_THREADS +#define FLEXT_THREADS +#endif + +#include + +#if !defined(FLEXT_VERSION) || (FLEXT_VERSION < 301) +#error You need at least flext version 0.3.1 +#endif + + +class thread2: + public flext_base +{ + FLEXT_HEADER(thread2,flext_base) + +public: + thread2(int del); + +protected: + void m_start(int st); + void m_stop(); + void m_text(); + + void m_textout(); + +private: + FLEXT_THREAD_I(m_start); // define threaded callback for method m_start + FLEXT_CALLBACK(m_stop); // normal callback for m_stop + FLEXT_CALLBACK(m_text); // turn on console output + + FLEXT_THREAD(m_textout); // text output + + float delay; + volatile int count; + + // caution: CodeWarrior seems to ignore volatile modifier!! + volatile bool stopit,running,blipping; // flags for running and stopping + + // thread conditional for stop signal + ThrCond cond; +}; + +FLEXT_NEW_1("thread2",thread2,int) + + + +thread2::thread2(int del): + delay(del/1000.f), + stopit(false), + running(false),blipping(false) +{ + AddInAnything(); + AddOutInt(2); + SetupInOut(); // set up inlets and outlets + + FLEXT_ADDMETHOD(0,m_start); // register start for integer numbers (floats in PD) + FLEXT_ADDMETHOD_(0,"text",m_text); // register m_text method for "text" tag + FLEXT_ADDMETHOD_(0,"stop",m_stop); // register m_text method for "stop" tag +} + +void thread2::m_start(int st) +{ + // if already running, just set back the counter + if(running) { count = st; return; } + + running = true; + + // loop until either the system exit flag or the "stopit" flag is set + for(count = st; !ShouldExit() && !stopit; ++count) + { + Sleep(delay); + ToOutInt(0,count); // output loop count + } + + cond.Lock(); // lock conditional + running = false; // change state flag + cond.Signal(); // signal changed flag to watiting "stop" method + cond.Unlock(); // unlock conditional +} + +void thread2::m_stop() +{ + cond.Lock(); // lock conditional + stopit = true; // set termination flag + + while(*(&running) || *(&blipping)) // workaround for CodeWarrior! + { + cond.Wait(); // wait for signal by running threads + } + + // --- Here, the threads should have stopped --- + + stopit = false; // reset flag + cond.Unlock(); // unlock conditional +} + + +void thread2::m_text() +{ + FLEXT_CALLMETHOD(m_textout); +} + +void thread2::m_textout() +{ + if(blipping) return; + blipping = true; + + while(!ShouldExit() && !stopit) { + post("%i",count); + Sleep(1.f); + } + + cond.Lock(); // lock conditional + blipping = false; // change state flag + cond.Signal(); // signal changed flag to watiting "stop" method + cond.Unlock(); // unlock conditional +} + diff --git a/externals/grill/flext/tutorial/thread2/thread2.cw b/externals/grill/flext/tutorial/thread2/thread2.cw new file mode 100755 index 00000000..b26ff18b Binary files /dev/null and b/externals/grill/flext/tutorial/thread2/thread2.cw differ diff --git a/externals/grill/flext/tutorial/thread2/thread2.dsp b/externals/grill/flext/tutorial/thread2/thread2.dsp new file mode 100644 index 00000000..da5e149e --- /dev/null +++ b/externals/grill/flext/tutorial/thread2/thread2.dsp @@ -0,0 +1,95 @@ +# Microsoft Developer Studio Project File - Name="thread2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=thread2 - 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 "thread2.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 "thread2.mak" CFG="thread2 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "thread2 - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "thread2 - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "max/flext/tutorial/thread2" +# PROP Scc_LocalPath "." +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "thread2 - 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 "msvc" +# PROP Intermediate_Dir "msvc" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR- /GX- /O2 /I "..\..\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /D "FLEXT_THREADS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc07 /d "NDEBUG" +# ADD RSC /l 0xc07 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_t-pdwin.lib pthreadVC.lib /nologo /dll /machine:I386 /out:"../msvc/thread2.dll" /libpath:"..\..\pd-msvc" + +!ELSEIF "$(CFG)" == "thread2 - 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 "msvc-debug" +# PROP Intermediate_Dir "msvc-debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR- /GX- /ZI /Od /I "..\..\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NT" /D "PD" /D "FLEXT_THREADS" /FR /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0xc07 /d "_DEBUG" +# ADD RSC /l 0xc07 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib pd.lib flext_td-pdwin.lib pthreadVC.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\pd-msvc" + +!ENDIF + +# Begin Target + +# Name "thread2 - Win32 Release" +# Name "thread2 - Win32 Debug" +# Begin Source File + +SOURCE=.\main.cpp +# End Source File +# End Target +# End Project diff --git a/externals/grill/flext/tutorial/tutorial.dsw b/externals/grill/flext/tutorial/tutorial.dsw new file mode 100644 index 00000000..5bc8001a --- /dev/null +++ b/externals/grill/flext/tutorial/tutorial.dsw @@ -0,0 +1,161 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "adv1"=.\adv1\adv1.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + adv1 + .\adv1 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "flext"=..\flext.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + max/flext + .. + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "signal1"=.\signal1\signal1.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + max/flext/tutorial/signal1 + .\signal1 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "signal2"=.\signal2\signal2.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + max/flext/tutorial/signal2 + .\signal2 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "simple1"=.\simple1\simple1.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + simple1 + .\simple1 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "simple2"=.\simple2\simple2.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + simple2 + .\simple2 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "simple3"=.\simple3\simple3.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + simple3 + .\simple3 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "thread1"=.\thread1\thread1.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + thread1 + .\thread1 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "thread2"=.\thread2\thread2.dsp - Package Owner=<4> + +Package=<5> +{{{ + begin source code control + max/flext/tutorial/thread2 + .\thread2 + end source code control +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + -- cgit v1.2.1