Update of /cvsroot/pure-data/externals/grill/flext In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26917
Modified Files: build.bat build.sh build.txt changes.txt notes.txt Log Message: small name change and reuse of Fifo cells fixed eol-style new lock-free lifo and fifo fixes for linux eliminated ChannelsIn/ChannelsOut updated docs build system: added profiler mode, more fixes fix for linux autodetection of build platform fix for flext_dsp @ Max
Index: notes.txt =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/notes.txt,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** notes.txt 8 Feb 2005 04:56:22 -0000 1.4 --- notes.txt 27 Feb 2005 04:56:10 -0000 1.5 *************** *** 1,64 **** ! flext - C++ layer for Max/MSP and pd (pure data) externals ! ! Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org) ! For information on usage and redistribution, and for a DISCLAIMER OF ALL ! WARRANTIES, see the file, "license.txt," in this distribution. ! ! ---------------------------------------------------------------------------- ! ! VARIOUS NOTES: ! ! Platform specific: ! - PD does not allow signal and message to go into the same inlet (except leftmost inlet) ! - PD: with DSP objects all float messages to the leftmost inlet are converted to signal ! ! Restrictions in compatibility mode: ! - Max allows only 9 float/int inlets ! ! Porting to new compilers/platforms: ! - enums must be int-sized!!! ! - compiler must support bool type ! - an STL implementation must exist ! - C++ exceptions and RTTI must be enabled ! ! ---------------------------------------------------------------------------- ! ! KNOWN BUGS: ! - can't use MFC libraries because of global new and delete overloadings ! - MaxMSP Mach-O DSP externals cannot be the first externals loaded (e.g. in Max Runtime) ! there must be a CFM signal external loaded beforehand!!! (Max will crash otherwise) ! ! ---------------------------------------------------------------------------- ! ! TODO LIST: ! ! - optimizations for object initialization and messaging ! - SIMD for gcc ! ! - update documentation ! - add log messages for debugging version ! - use PD's t_float and t_int types (or comparable for 32-bit safety) ! ! - add double handlers ! - add signal in/out connection query function ! ! - support for Max qelem style ! ! - flext::post and flext::error should print via a worker thread (and should be unlimited in characters) ! ! - manage running threads individually (stop, isrunning?, priority etc.) ! ! ---------------------------------------------------------------------------- ! ! TESTS TO DO: ! ! - PD: problems with timed buffer redrawing (takes a lot of cpu time) ! - hard thread termination upon object destruction doesn't seem to work properly -> crash ! - Max rounding bug ... buffer resize could be one sample less! ! ! - PD: figure out what "pointer" messages do and whether they are correctly implemented in flext ! ! - Max buffer~ resize: flext_base::buffer::Frames(): must we use buffer or system sample rate? ! ! - check whether m_dsp gets called upon deletion of a used buffer (PD and MaxMSP may behave differently). ! -> PD does call m_dsp, Max/MSP does not --- 1,66 ---- ! flext - C++ layer for Max/MSP and pd (pure data) externals ! ! Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org) ! For information on usage and redistribution, and for a DISCLAIMER OF ALL ! WARRANTIES, see the file, "license.txt," in this distribution. ! ! ---------------------------------------------------------------------------- ! ! VARIOUS NOTES: ! ! Platform specific: ! - PD does not allow signal and message to go into the same inlet (except leftmost inlet) ! - PD: with DSP objects all float messages to the leftmost inlet are converted to signal ! ! Restrictions in compatibility mode: ! - Max allows only 9 float/int inlets ! ! Porting to new compilers/platforms: ! - enums must be int-sized!!! ! - compiler must support bool type ! - an STL implementation must exist ! - C++ exceptions and RTTI must be enabled ! ! ---------------------------------------------------------------------------- ! ! KNOWN BUGS: ! - can't use MFC libraries because of global new and delete overloadings ! ! - MaxMSP Mach-O DSP externals cannot be the first externals loaded (e.g. in Max Runtime) ! there must be a CFM signal external loaded beforehand!!! (Max will crash otherwise) ! -> i think this is fixed in Max in the meantime! ! ! ---------------------------------------------------------------------------- ! ! TODO LIST: ! ! - optimizations for object initialization and messaging ! - SIMD for gcc ! ! - update documentation ! - add log messages for debugging version ! - use PD's t_float and t_int types (or comparable for 32-bit safety) ! ! - add double handlers ! - add signal in/out connection query function ! ! - support for Max qelem style ! ! - flext::post and flext::error should print via a worker thread (and should be unlimited in characters) ! ! - manage running threads individually (stop, isrunning?, priority etc.) ! ! ---------------------------------------------------------------------------- ! ! TESTS TO DO: ! ! - PD: problems with timed buffer redrawing (takes a lot of cpu time) ! - hard thread termination upon object destruction doesn't seem to work properly -> crash ! - Max rounding bug ... buffer resize could be one sample less! ! ! - PD: figure out what "pointer" messages do and whether they are correctly implemented in flext ! ! - Max buffer~ resize: flext_base::buffer::Frames(): must we use buffer or system sample rate? ! ! - check whether m_dsp gets called upon deletion of a used buffer (PD and MaxMSP may behave differently). ! -> PD does call m_dsp, Max/MSP does not
Index: build.sh =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/build.sh,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** build.sh 10 Jan 2005 04:58:35 -0000 1.4 --- build.sh 27 Feb 2005 04:56:09 -0000 1.5 *************** *** 19,31 ****
# Arguments: ! # $1 - platform (win/lnx/mac) ! # $2 - system (pd/max) ! # $3 - compiler (msvc/gcc/mingw/cygwin/bcc/icc) ! # $4 - target (build/clean/install)
! platform=$1 ! rtsys=$2 ! compiler=$3 ! target=$4
# --- The subbatch knowns which make utility to use --- --- 19,38 ----
# Arguments: ! # $1 - system (pd/max) ! # $2 - compiler (msvc/gcc/mingw/cygwin/bcc/icc) ! # $3 - target (build/clean/install)
! unamesys=$(uname -s) ! ! case $unamesys in ! Linux) platform=lnx;; ! Darwin) platform=mac;; ! CYGWIN*) platform=win;; ! *) echo Platform $unamesys not supported; exit;; ! esac ! ! rtsys=$1 ! compiler=$2 ! target=$3
# --- The subbatch knowns which make utility to use --- *************** *** 35,43 **** [ -n "$platform" -a -n "$rtsys" -a -n "$compiler" -a -f $subbatch ] then ! bash $subbatch $platform $rtsys $target $5 $6 $7 $8 $9 else echo ! echo SYNTAX: build.sh [platform] [system] [compiler] {target} ! echo platform ... win / lnx / mac echo system ..... pd / max echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc --- 42,49 ---- [ -n "$platform" -a -n "$rtsys" -a -n "$compiler" -a -f $subbatch ] then ! bash $subbatch $platform $rtsys $target $4 $5 $6 $7 $8 $9 else echo ! echo SYNTAX: build.sh [system] [compiler] {target} echo system ..... pd / max echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc *************** *** 47,49 **** --- 53,57 ---- echo system path and that all relevant environment variables are properly set. echo + echo For further information read flext/build.txt + echo fi
Index: build.txt =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/build.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** build.txt 13 Jan 2005 04:58:59 -0000 1.3 --- build.txt 27 Feb 2005 04:56:09 -0000 1.4 *************** *** 43,53 **** Useful combinations of the above are
! win pd msvc, using nmake ! win pd cygwin, using gnumake ! win pd mingw, using gnumake ! win max msvc, using nmake ! win pd bcc, using bmake ! mac pd gcc, using gnumake ! mac max gcc, using gnumake - Mach-O externals only (Max 4.5 upwards)
--- 43,58 ---- Useful combinations of the above are
! under Windows: ! pd msvc, using nmake ! pd cygwin, using gnumake ! pd mingw, using gnumake ! max msvc, using nmake ! pd bcc, using bmake ! ! under Linux or MacOSX: ! pd gcc, using gnumake ! ! under MacOSX: ! max gcc, using gnumake - Mach-O externals only (Max 4.5 upwards)
*************** *** 80,86 ****
e.g. under Windows ! build win pd msvc or under unix with ! bash build.sh lnx pd gcc
When you run it for the first time, one or more configuration files will be created --- 85,91 ----
e.g. under Windows ! build pd msvc or under unix with ! bash build.sh pd gcc
When you run it for the first time, one or more configuration files will be created *************** *** 89,95 ****
Then install flext with (under Windows) ! build win pd msvc install or (under unix) ! bash build.sh lnx pd gcc install
--- 94,100 ----
Then install flext with (under Windows) ! build pd msvc install or (under unix) ! bash build.sh pd gcc install
*************** *** 104,119 ****
e.g. under Windows ! ..\flext\build win pd msvc Then install your newly built external with ! ..\flext\build win pd msvc install You can clean up the intermediate build folders with ! ..\flext\build win pd msvc clean
or under unix with ! bash ../flext/build.sh lnx pd gcc Then install your external with ! bash ../flext/build.sh lnx pd gcc install You can clean up the intermediate build folders with ! bash ../flext/build.sh lnx pd gcc clean
--- 109,124 ----
e.g. under Windows ! ..\flext\build pd msvc Then install your newly built external with ! ..\flext\build pd msvc install You can clean up the intermediate build folders with ! ..\flext\build pd msvc clean
or under unix with ! bash ../flext/build.sh pd gcc Then install your external with ! bash ../flext/build.sh pd gcc install You can clean up the intermediate build folders with ! bash ../flext/build.sh pd gcc clean
Index: build.bat =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/build.bat,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** build.bat 5 Jan 2005 05:04:07 -0000 1.4 --- build.bat 27 Feb 2005 04:56:09 -0000 1.5 *************** *** 19,31 ****
rem Arguments: ! rem %1 - platform (win/lnx/mac) ! rem %2 - system (pd/max) ! rem %3 - compiler (msvc/gcc/mingw/cygwin/bcc/icc) ! rem %4 - target (build/clean/install)
! set platform=%1 ! set rtsys=%2 ! set compiler=%3 ! set target=%4
rem --- The subbatch knowns which make utility to use --- --- 19,30 ----
rem Arguments: ! rem %1 - system (pd/max) ! rem %2 - compiler (msvc/gcc/mingw/cygwin/bcc/icc) ! rem %3 - target (build/clean/install)
! set platform=win ! set rtsys=%1 ! set compiler=%2 ! set target=%3
rem --- The subbatch knowns which make utility to use --- *************** *** 38,42 **** if not exist %subbatch% goto syntax
! call %subpatch% %subbatch% %platform% %rtsys% %target% %5 %6 %7 %8 %9
goto end --- 37,41 ---- if not exist %subbatch% goto syntax
! call %subpatch% %subbatch% %platform% %rtsys% %target% %4 %5 %6 %7 %8 %9
goto end *************** *** 46,51 ****
echo . ! echo SYNTAX: build [platform] [system] [compiler] {target} ! echo platform ... win / lnx / mac echo system ... pd / max echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc --- 45,49 ----
echo . ! echo SYNTAX: build [system] [compiler] {target} echo system ... pd / max echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc *************** *** 55,58 **** --- 53,58 ---- echo system path and that all relevant environment variables are properly set. echo . + echo For further information read flext/build.txt + echo .
:end
Index: changes.txt =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/changes.txt,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** changes.txt 12 Feb 2005 04:56:08 -0000 1.74 --- changes.txt 27 Feb 2005 04:56:10 -0000 1.75 *************** *** 34,37 **** --- 34,38 ---- - fixes to flext::Timer::At method - eliminated misleading flext_dsp::ChannelsIn and ChannelsOut + - added lock-free Lifo and Fifo structures and used it with message queueing
0.4.7: