lists@iem
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
List overview
Download
Pd-cvs
January 2009
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
pd-cvs@lists.iem.at
23 participants
357 discussions
Start a n
N
ew thread
SF.net SVN: pure-data:[10507] trunk/packages/patches/ special_character_support.patch
by eighthave@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10507
http://pure-data.svn.sourceforge.net/pure-data/?rev=10507&view=rev
Author: eighthave Date: 2009-01-10 19:55:58 +0000 (Sat, 10 Jan 2009) Log Message: ----------- miller accepted this patch Removed Paths: ------------- trunk/packages/patches/special_character_support.patch Deleted: trunk/packages/patches/special_character_support.patch =================================================================== --- trunk/packages/patches/special_character_support.patch 2009-01-10 19:43:17 UTC (rev 10506) +++ trunk/packages/patches/special_character_support.patch 2009-01-10 19:55:58 UTC (rev 10507) @@ -1,18 +0,0 @@ -Index: g_rtext.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v -retrieving revision 1.4 -diff -u -w -r1.4 g_rtext.c ---- g_rtext.c 6 Sep 2004 20:20:34 -0000 1.4 -+++ g_rtext.c 14 Dec 2005 03:59:31 -0000 -@@ -432,7 +432,9 @@ - x->x_buf = resizebytes(x->x_buf, x->x_bufsize, newsize); - x->x_bufsize = newsize; - -- if (n == '\n' || isprint(n)) -+/* at guenter's suggestion, this gets european characters working */ -+/* if (n == '\n' || isprint(n)) */ -+ if ((n == '\n' || n > 31) && n != 127) - { - newsize = x->x_bufsize+1; - x->x_buf = resizebytes(x->x_buf, x->x_bufsize, newsize); This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10506] branches/pd-extended/0.41/pd/src
by eighthave@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10506
http://pure-data.svn.sourceforge.net/pure-data/?rev=10506&view=rev
Author: eighthave Date: 2009-01-10 19:43:17 +0000 (Sat, 10 Jan 2009) Log Message: ----------- - merged all conflicts, built and ran. it makes sound! We now have Pd-extended 0.41-4! - removed 64bit_arrays-0.40.1.patch, Miller implemented 64-bit support in a different way Modified Paths: -------------- branches/pd-extended/0.41/pd/src/configure.in branches/pd-extended/0.41/pd/src/d_array.c branches/pd-extended/0.41/pd/src/d_soundfile.c branches/pd-extended/0.41/pd/src/g_canvas.c branches/pd-extended/0.41/pd/src/g_graph.c branches/pd-extended/0.41/pd/src/g_hdial.c branches/pd-extended/0.41/pd/src/g_hslider.c branches/pd-extended/0.41/pd/src/g_numbox.c branches/pd-extended/0.41/pd/src/g_rtext.c branches/pd-extended/0.41/pd/src/g_template.c branches/pd-extended/0.41/pd/src/g_toggle.c branches/pd-extended/0.41/pd/src/g_vdial.c branches/pd-extended/0.41/pd/src/g_vslider.c branches/pd-extended/0.41/pd/src/g_vumeter.c branches/pd-extended/0.41/pd/src/m_binbuf.c branches/pd-extended/0.41/pd/src/m_obj.c branches/pd-extended/0.41/pd/src/s_audio_jack.c branches/pd-extended/0.41/pd/src/s_entry.c branches/pd-extended/0.41/pd/src/s_file.c branches/pd-extended/0.41/pd/src/s_inter.c branches/pd-extended/0.41/pd/src/s_main.c branches/pd-extended/0.41/pd/src/s_path.c branches/pd-extended/0.41/pd/src/u_main.tk Property Changed: ---------------- branches/pd-extended/0.41/pd/src/ branches/pd-extended/0.41/pd/src/d_soundfile.c branches/pd-extended/0.41/pd/src/g_graph.c branches/pd-extended/0.41/pd/src/g_numbox.c branches/pd-extended/0.41/pd/src/g_template.c branches/pd-extended/0.41/pd/src/g_toggle.c branches/pd-extended/0.41/pd/src/g_vslider.c branches/pd-extended/0.41/pd/src/g_vumeter.c branches/pd-extended/0.41/pd/src/makefile.in Property changes on: branches/pd-extended/0.41/pd/src ___________________________________________________________________ Modified: svn:mergeinfo - /tags/pd/0.41-4/src:9670-10494 /tags/pd/pd-0.41-4/src:9603-9669 /trunk/pd/src:6083-9602 + /tags/pd/0.41-4/src:9670-10497 /tags/pd/pd-0.41-4/src:9603-9669 /trunk/pd/src:6083-9602 Modified: branches/pd-extended/0.41/pd/src/configure.in =================================================================== --- branches/pd-extended/0.41/pd/src/configure.in 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/configure.in 2009-01-10 19:43:17 UTC (rev 10506) @@ -9,6 +9,7 @@ AC_SUBST(portmidi, no) AC_SUBST(binarymode, -m755) AC_SUBST(fftw, no) +AC_SUBST(tk, yes) AC_SUBST(PDLIB) AC_SUBST(CPPFLAGS) AC_SUBST(MORECFLAGS) @@ -23,6 +24,7 @@ AC_SUBST(OSNUMBER) AC_SUBST(EXTERNTARGET) AC_SUBST(ASIOSRC) +AC_SUBST(GUISRC) dnl other defaults @@ -42,7 +44,7 @@ static=$enableval) AC_ARG_ENABLE(setuid, [ --enable-setuid install as setuid (linux)], setuid=$enableval) -AC_ARG_ENABLE(fftw, [ --enable-fftw use FFTW package], +AC_ARG_ENABLE(fftw, [ --enable-fftw use FFTW package], fftw=$enableval) AC_ARG_ENABLE(fat, [ --disable-fat build fat binary on Mac OS X], fat=$enableval, fat="yes") @@ -81,7 +83,7 @@ dnl Checking for `sin' function in -lm: AC_CHECK_LIB(m, sin,PDLIB="$PDLIB -lm", - echo "math library required" || exit 1) + echo "math library required" || exit 1) dnl Checking for `pthread_create' function in -pthread AC_CHECK_LIB(pthread, pthread_create,PDLIB="$PDLIB -lpthread", @@ -91,7 +93,7 @@ echo "pthreads required"; exit 1)))) dnl Check for fftw package -if test x$fftw == "xyes"; +if test x$fftw = "xyes"; then AC_CHECK_LIB(fftw, fftw_one,PDLIB="$PDLIB -lfftw", echo "fftw package not found - using built-in FFT"; fftw=no) @@ -100,83 +102,89 @@ dnl look for tcl 8.x... do I really have to go through all this!? foundit=no -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl.h,foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl8.7/tcl.h, - GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.7";foundit=yes,) + GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.7";foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl8.6/tcl.h, - GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.6";foundit=yes,) + GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.6";foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl8.5/tcl.h, - GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.5";foundit=yes,) + GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.5";foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl8.4/tcl.h, - GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.4";foundit=yes,) + GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.4";foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl8.4/tcl.h, - GUIFLAGS="$GUIFLAGS -I/usr/local/include/tcl8.4";foundit=yes,) + GUIFLAGS="$GUIFLAGS -I/usr/local/include/tcl8.4";foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl8.3/tcl.h, - GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.3";foundit=yes,) + GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.3";foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then AC_CHECK_HEADER(tcl8.2/tcl.h, - GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.2";foundit=yes,) + GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.2";foundit=yes,) fi -if test $foundit == "no"; +if test $foundit = "no"; then echo no tcl header found - echo bolding trying without... + echo bolding trying without... # exit -1 fi AC_CHECK_LIB(tcl85, main,, - AC_CHECK_LIB(tcl8.5, main,, + AC_CHECK_LIB(tcl8.5, main,, AC_CHECK_LIB(tcl84, main,, - AC_CHECK_LIB(tcl8.4, main,, - AC_CHECK_LIB(tcl8.3, main,, - AC_CHECK_LIB(tcl8.2, main,, - AC_CHECK_LIB(tcl8.0, main,, + AC_CHECK_LIB(tcl8.4, main,, + AC_CHECK_LIB(tcl8.3, main,, + AC_CHECK_LIB(tcl8.2, main,, + AC_CHECK_LIB(tcl8.0, main,, echo no tcl library found; exit 1))))))) AC_CHECK_LIB(tk85, main,, - AC_CHECK_LIB(tk8.5, main,, + AC_CHECK_LIB(tk8.5, main,, AC_CHECK_LIB(tk84, main,, - AC_CHECK_LIB(tk8.4, main,, - AC_CHECK_LIB(tk8.3, main,, - AC_CHECK_LIB(tk8.2, main,, - AC_CHECK_LIB(tk8.0, main,, + AC_CHECK_LIB(tk8.4, main,, + AC_CHECK_LIB(tk8.3, main,, + AC_CHECK_LIB(tk8.2, main,, + AC_CHECK_LIB(tk8.0, main,, echo no tk library found; exit 1))))))) -if test `uname -s` == Linux; +if test x$tk != "xno"; then +GUISRC="t_main.c t_tkcmd.c" +else +GUISRC= +fi + +if test `uname -s` = Linux; then dnl Ckecking for ALSA echo .................... alsa= $alsa dnl This should be fixed so Pd can use ALSA shared libraries where appropriate. - if test x$alsa == xyes; then - AC_CHECK_LIB(asound,snd_pcm_info,PDLIB="$PDLIB -lasound" ; alsa="yes",alsa="no") + if test x$alsa = xyes; then + AC_CHECK_LIB(asound,snd_pcm_info,PDLIB="$PDLIB -lasound" ; alsa="yes",alsa="no") fi dnl Checking for JACK - if test x$jack == xyes; then + if test x$jack = xyes; then AC_CHECK_LIB(rt,shm_open,LIBS="$LIBS -lrt") AC_CHECK_LIB(jack,jack_set_xrun_callback,LIBS="$LIBS -ljack";jack=xrun,jack=no) AC_CHECK_LIB(jack,jack_set_error_function,LIBS="$LIBS -ljack";jack=yes,jack=no) @@ -187,114 +195,124 @@ LDFLAGS="$LDFLAGS -static" fi EXT=pd_linux - CPPFLAGS="-DDL_OPEN -DPA_USE_OSS -DUNIX\ - -DUSEAPI_OSS \ - -I../portaudio/pa_common -I../portaudio/pablio \ - -I../portmidi/pm_common \ - -I../portmidi/pm_linux \ - -fno-strict-aliasing" + CPPFLAGS="-DDL_OPEN -DPA_USE_OSS -DUNIX -DUNISTD\ + -DUSEAPI_OSS \ + -fno-strict-aliasing" SYSSRC="s_midi_oss.c s_audio_oss.c" - if test x$alsa == "xyes"; + if test x$alsa = "xyes"; then - SYSSRC=$SYSSRC" s_audio_alsa.c s_audio_alsamm.c s_midi_alsa.c" - CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA -DUSEAPI_ALSA" - LDFLAGS=$LDFLAGS" -lasound" + SYSSRC=$SYSSRC" s_audio_alsa.c s_audio_alsamm.c s_midi_alsa.c" + CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA -DUSEAPI_ALSA" + LDFLAGS=$LDFLAGS" -lasound" fi - - if test x$portaudio == "xyes"; - - + if test x$portaudio = "xyes"; then - CPPFLAGS=$CPPFLAGS" -DUSEAPI_PORTAUDIO -DPA19" - SYSSRC="s_audio_pa.c \ - s_audio_pablio.c \ - s_audio_paring.c \ - ../portaudio/pa_common/pa_allocation.c \ - ../portaudio/pa_common/pa_converters.c \ - ../portaudio/pa_common/pa_cpuload.c \ - ../portaudio/pa_common/pa_dither.c \ - ../portaudio/pa_common/pa_front.c \ - ../portaudio/pa_common/pa_process.c \ - ../portaudio/pa_common/pa_skeleton.c \ - ../portaudio/pa_common/pa_stream.c \ - ../portaudio/pa_common/pa_trace.c \ - ../portaudio/pa_unix/pa_unix_hostapis.c \ - ../portaudio/pa_unix/pa_unix_util.c \ - ../portaudio/pa_unix_oss/pa_unix_oss.c "$SYSSRC - if test x$alsa == "xyes"; - then - SYSSRC=$SYSSRC" ../portaudio/pa_linux_alsa/pa_linux_alsa.c" - CPPFLAGS=$CPPFLAGS" -Wno-error" - fi + CPPFLAGS=$CPPFLAGS" -DUSEAPI_PORTAUDIO -DHAVE_SYS_SOUNDCARD_H \ + -Wno-error \ + -I../portaudio/include -I../portaudio/src/common \ + -I../portaudio/src/os/unix/ \ + -I../portmidi/pm_common \ + -I../portmidi/pm_linux" + SYSSRC="s_audio_pa.c \ + s_audio_pablio.c \ + s_audio_paring.c \ + ../portaudio/src/common/pa_allocation.c \ + ../portaudio/src/common/pa_converters.c \ + ../portaudio/src/common/pa_cpuload.c \ + ../portaudio/src/common/pa_dither.c \ + ../portaudio/src/common/pa_front.c \ + ../portaudio/src/common/pa_process.c \ + ../portaudio/src/common/pa_skeleton.c \ + ../portaudio/src/common/pa_stream.c \ + ../portaudio/src/common/pa_trace.c \ + ../portaudio/src/common/pa_debugprint.c \ + ../portaudio/src/common/pa_ringbuffer.c \ + ../portaudio/src/os/unix/pa_unix_hostapis.c \ + ../portaudio/src/os/unix/pa_unix_util.c \ + ../portaudio/src/hostapi/oss/pa_unix_oss.c "$SYSSRC + if test x$alsa = "xyes"; + then + SYSSRC="../portaudio/src/hostapi/alsa/pa_linux_alsa.c "$SYSSRC + CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA" + fi + if test x$jack = "xyes"; + then + SYSSRC="../portaudio/src/hostapi/jack/pa_jack.c "$SYSSRC + CPPFLAGS=$CPPFLAGS" -DPA_USE_JACK" + fi fi - if test x$setuid == "xyes"; + if test x$setuid = "xyes"; then - binarymode="-m4755" + binarymode="-m4755" fi STRIPFLAG=-s GUINAME="pd-gui" - if test x$USE_DEBUG_CFLAGS == "xyes"; + if test x$USE_DEBUG_CFLAGS = "xyes"; then - MORECFLAGS=$MORECFLAGS" -g" + MORECFLAGS=$MORECFLAGS" -g" else - MORECFLAGS=$MORECFLAGS" -O6 -funroll-loops -fomit-frame-pointer" + MORECFLAGS=$MORECFLAGS" -O6 -funroll-loops -fomit-frame-pointer" fi - if test x$jack == "xyes"; + if test x$jack = "xyes"; then LDFLAGS=$LDFLAGS" -lrt -ljack" fi - if test x$jack == "xrun"; + if test x$jack = "xrun"; then LDFLAGS=$LDFLAGS" -lrt -ljack" fi - echo MORECFLAGS --------------- $MORECFLAGS OSNUMBER=0 fi -if test `uname -s` == Darwin; +if test `uname -s` = Darwin; then LDFLAGS="-Wl -framework CoreAudio \ -framework AudioUnit -framework AudioToolbox \ -framework Carbon -framework CoreMIDI" EXT=pd_darwin - CPPFLAGS="-DDL_OPEN -DMACOSX -I/usr/X11R6/include \ - -I../portaudio/pa_common -I../portaudio/pablio \ - -I../portmidi/pm_common -I../portmidi/pm_mac \ - -I../portmidi/porttime \ - -DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO" -dnl for Mac OS X 10.3 (i.e. < 10.4) + CPPFLAGS="-DDL_OPEN -DMACOSX -DUNISTD -I/usr/X11R6/include \ + -I../portaudio/include -I../portaudio/src/common \ + -I../portaudio/src/os/mac_osx/ \ + -I../portmidi/pm_common -I../portmidi/pm_mac \ + -I../portmidi/porttime \ + -DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO -DNEWBUFFER" + dnl for Mac OS X 10.3 (i.e. < 10.4) if test `uname -r` = 7.9.0; then - fat="no" + fat="no" fi if test "x$fat" == "xyes"; then MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \ -arch i386 -arch ppc -Wno-error" - EXTERNTARGET=d_fat + EXTERNTARGET=d_fat LDFLAGS=$LDFLAGS" -arch i386 -arch ppc" else - MORECFLAGS="-DMACOSX3 -Wno-error" - EXTERNTARGET=d_ppc + MORECFLAGS="-DMACOSX3 -DPA_BIG_ENDIAN -Wno-error" + EXTERNTARGET=d_ppc fi SYSSRC="s_midi_pm.c s_audio_pa.c \ - s_audio_pablio.c \ - s_audio_paring.c \ - ../portaudio/pa_common/pa_allocation.c \ - ../portaudio/pa_common/pa_converters.c \ - ../portaudio/pa_common/pa_cpuload.c \ - ../portaudio/pa_common/pa_dither.c \ - ../portaudio/pa_common/pa_front.c \ - ../portaudio/pa_common/pa_process.c \ - ../portaudio/pa_common/pa_skeleton.c \ - ../portaudio/pa_common/pa_stream.c \ - ../portaudio/pa_common/pa_trace.c \ - ../portaudio/pa_unix/pa_unix_util.c \ - ../portaudio/pa_mac_core/pa_mac_core.c \ - ../portaudio/pa_mac/pa_mac_hostapis.c \ + s_audio_pablio.c \ + s_audio_paring.c \ + ../portaudio/src/common/pa_allocation.c \ + ../portaudio/src/common/pa_converters.c \ + ../portaudio/src/common/pa_cpuload.c \ + ../portaudio/src/common/pa_dither.c \ + ../portaudio/src/common/pa_front.c \ + ../portaudio/src/common/pa_process.c \ + ../portaudio/src/common/pa_skeleton.c \ + ../portaudio/src/common/pa_stream.c \ + ../portaudio/src/common/pa_trace.c \ + ../portaudio/src/common/pa_debugprint.c \ + ../portaudio/src/common/pa_ringbuffer.c \ + ../portaudio/src/os/unix/pa_unix_util.c \ + ../portaudio/src/os/mac_osx/pa_mac_hostapis.c \ + ../portaudio/src/hostapi/coreaudio/pa_mac_core.c \ + ../portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c \ + ../portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c \ ../portmidi/pm_mac/pmmac.c \ ../portmidi/pm_mac/pmmacosxcm.c \ ../portmidi/pm_common/pmutil.c \ @@ -304,34 +322,34 @@ GUINAME="libPdTcl.dylib" # find the Tcl/Tk Frameworks - if test -d "../../Frameworks"; + if test -d "../../Frameworks"; then # Miller's location TCLTK_FRAMEWORKS_PATH="../../Frameworks" - elif test -d "/Library/Frameworks"; - then + elif test -d "/Library/Frameworks"; + then # get it from the default install location TCLTK_FRAMEWORKS_PATH="/Library/Frameworks" else # Panther has Tcl here; Tiger has Tcl and Tk here TCLTK_FRAMEWORKS_PATH="/System/Library/Frameworks" - fi + fi GUIFLAGS="-F$TCLTK_FRAMEWORKS_PATH -framework Tcl -framework Tk \ -I$TCLTK_FRAMEWORKS_PATH/Tk.framework/Versions/Current/Headers \ -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/Current/Headers \ -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/8.4/PrivateHeaders" - if test x$USE_DEBUG_CFLAGS == "xyes"; + if test x$USE_DEBUG_CFLAGS = "xyes"; then - MORECFLAGS=$MORECFLAGS" -g" + MORECFLAGS=$MORECFLAGS" -g" else - MORECFLAGS=$MORECFLAGS" -O2" + MORECFLAGS=$MORECFLAGS" -O2" fi OSNUMBER=2 - if test x$jack == "xyes"; + if test x$jack = "xyes"; then LDFLAGS=$LDFLAGS" -weak_framework Jackmp" fi - if test x$jack == "xrun"; + if test x$jack = "xrun"; then LDFLAGS=$LDFLAGS" -weak_framework Jackmp" fi @@ -340,31 +358,35 @@ # only Windows uses ASIO, for the rest, set to blank ASIOSRC= -if test `uname -s` == MINGW32_NT-5.0; +if test `uname -s` = MINGW32_NT-5.0; then EXT=dll MORECFLAGS="-DUSEAPI_PORTAUDIO -DPA19 -DMSW -DPA_NO_DS -DPD_INTERNAL \ - -I../portaudio/pa_common -I../portaudio/pablio \ + -I../portaudio/include -I../portaudio/src/common \ + -I../portaudio/src/os/win/ \ -mwindows -mms-bitfields "$MORECFLAGS PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++" SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \ s_audio_mmio.c s_midi_mmio.c \ - ../portaudio/pa_common/pa_allocation.c \ - ../portaudio/pa_common/pa_converters.c \ - ../portaudio/pa_common/pa_cpuload.c \ - ../portaudio/pa_common/pa_dither.c \ - ../portaudio/pa_common/pa_front.c \ - ../portaudio/pa_common/pa_process.c \ - ../portaudio/pa_common/pa_skeleton.c \ - ../portaudio/pa_common/pa_stream.c \ - ../portaudio/pa_common/pa_trace.c \ - ../portaudio/pa_win/pa_win_util.c \ - ../portaudio/pa_win/pa_win_hostapis.c \ - ../portaudio/pa_win_wmme/pa_win_wmme.c" - ASIOSRC="../portaudio/pa_asio/iasiothiscallresolver.cpp \ - ../portaudio/pa_asio/pa_asio.cpp ../asio/asio.cpp \ - ../asio/asiodrivers.cpp ../asio/asiolist.cpp" + ../portaudio/src/common/pa_allocation.c \ + ../portaudio/src/common/pa_converters.c \ + ../portaudio/src/common/pa_cpuload.c \ + ../portaudio/src/common/pa_dither.c \ + ../portaudio/src/common/pa_front.c \ + ../portaudio/src/common/pa_process.c \ + ../portaudio/src/common/pa_skeleton.c \ + ../portaudio/src/common/pa_stream.c \ + ../portaudio/src/common/pa_trace.c \ + ../portaudio/src/common/pa_debugprint.c \ + ../portaudio/src/common/pa_ringbuffer.c \ + ../portaudio/src/os/win/pa_win_util.c \ + ../portaudio/src/os/win/pa_win_hostapis.c \ + ../portaudio/src/os/win/pa_x86_plain_converters.c \ + ../portaudio/src/hostapi/wmme/pa_win_wmme.c" + ASIOSRC="../portaudio/src/hostapi/asio/iasiothiscallresolver.cpp \ + ../portaudio/src/hostapi/pa_asio/asio.cpp ../asio/asio.cpp \ + ../asio/asiodrivers.cpp ../asio/asiolist.cpp" STRIPFLAG="--strip-unneeded" GUINAME="pdtcl.dll" GUIFLAGS= @@ -372,18 +394,18 @@ # support for jack, on either linux or darwin: -if test x$jack == "xyes"; +if test x$jack = "xyes"; then MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK" SYSSRC=$SYSSRC" s_audio_jack.c" fi -if test x$jack == "xrun"; +if test x$jack = "xrun"; then MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK -DJACK_XRUN" SYSSRC=$SYSSRC" s_audio_jack.c" fi -if test x$fftw == "xyes"; +if test x$fftw = "xyes"; then SYSSRC=$SYSSRC" d_fft_fftw.c d_fftroutine.c" LDFLAGS=$LDFLAGS" -lfftw" @@ -391,18 +413,6 @@ SYSSRC=$SYSSRC" d_fft_mayer.c d_fftroutine.c" fi -# extra flags for alpha machines -if test `uname -m | awk '{print $1}'` = alpha; -then - MORECFLAGS=$MORECFLAGS" -mieee -mcpu=ev56" -fi - -# test for compaq compiler---not sure what this does or how to test it. -if test x$CC == xccc; -then - MORECFLAGS=$MORECFLAGS" -g3 -D__COMPAQC__ -arch host" -fi - ## JMZ{ ## this does not do very much, but i guess it is a good idea to use it... AC_SYS_LARGEFILE @@ -428,6 +438,16 @@ fi ## }JMZ: end of large-file support section +if test -d ../obj +then echo -n +else mkdir ../obj +fi + +if test -d ../bin +then echo -n +else mkdir ../bin +fi + AST_EXT_LIB_CHECK([SINF], [m], [sinf]) AST_EXT_LIB_CHECK([COSF], [m], [cosf]) AST_EXT_LIB_CHECK([ATANF], [m], [atanf]) Modified: branches/pd-extended/0.41/pd/src/d_array.c =================================================================== --- branches/pd-extended/0.41/pd/src/d_array.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/d_array.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -8,7 +8,6 @@ #include "m_pd.h" -#define ASTRIDE (sizeof(union word)/sizeof(t_sample)) /* ------------------------- tabwrite~ -------------------------- */ @@ -53,16 +52,15 @@ if (endphase > phase) { int nxfer = endphase - phase; - float *fp = x->x_vec + phase*ASTRIDE; + float *fp = x->x_vec + phase; if (nxfer > n) nxfer = n; - phase += nxfer*ASTRIDE; + phase += nxfer; while (nxfer--) { float f = *in++; if (PD_BIGORSMALL(f)) f = 0; - *fp = f; - fp += ASTRIDE; + *fp++ = f; } if (phase >= endphase) { @@ -178,15 +176,13 @@ goto zero; nxfer = endphase - phase; - fp = x->x_vec + phase*ASTRIDE; + fp = x->x_vec + phase; if (nxfer > n) nxfer = n; n3 = n - nxfer; phase += nxfer; - while (nxfer--) { - *out++ = *fp; - fp += ASTRIDE; - } + while (nxfer--) + *out++ = *fp++; if (phase >= endphase) { clock_delay(x->x_clock, 0); @@ -312,7 +308,7 @@ index = 0; else if (index > maxindex) index = maxindex; - *out++ = buf[index* ASTRIDE]; + *out++ = buf[index]; } return (w+5); zero: @@ -429,11 +425,11 @@ else if (index > maxindex) index = maxindex, frac = 1; else frac = findex - index; - fp = buf + index* ASTRIDE; - a = fp[-1* ASTRIDE]; + fp = buf + index; + a = fp[-1]; b = fp[0]; - c = fp[1* ASTRIDE]; - d = fp[2* ASTRIDE]; + c = fp[1]; + d = fp[2]; /* if (!i && !(count++ & 1023)) post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */ cminusb = c-b; @@ -597,13 +593,13 @@ float frac, a, b, c, d, cminusb; tf.tf_d = dphase; dphase += *in++ * conv; - addr = tab + (tf.tf_i[HIOFFSET] & mask)* ASTRIDE; + addr = tab + (tf.tf_i[HIOFFSET] & mask); tf.tf_i[HIOFFSET] = normhipart; frac = tf.tf_d - UNITBIT32; a = addr[0]; - b = addr[1* ASTRIDE]; - c = addr[2* ASTRIDE]; - d = addr[3* ASTRIDE]; + b = addr[1]; + c = addr[2]; + d = addr[3]; cminusb = c-b; *out++ = b + frac * ( cminusb - 0.1666667f * (1.-frac) * ( @@ -724,8 +720,7 @@ float f = *in++; if (PD_BIGORSMALL(f)) f = 0; - *dest = f; - dest += ASTRIDE; + *dest++ = f; } if (!i--) { @@ -794,10 +789,8 @@ if (from) { int vecsize = x->x_vecsize; - while (vecsize--){ - *out++ = *from; - from += ASTRIDE; - } + while (vecsize--) + *out++ = *from++; vecsize = n - x->x_vecsize; while (vecsize--) *out++ = 0; @@ -867,7 +860,7 @@ int n = f; if (n < 0) n = 0; else if (n >= npoints) n = npoints - 1; - outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n*ASTRIDE] : 0)); + outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n] : 0)); } } @@ -916,21 +909,21 @@ else if (npoints < 4) outlet_float(x->x_obj.ob_outlet, 0); else if (f <= 1) - outlet_float(x->x_obj.ob_outlet, vec[ 1*ASTRIDE]); + outlet_float(x->x_obj.ob_outlet, vec[1]); else if (f >= npoints - 2) - outlet_float(x->x_obj.ob_outlet, vec[(npoints - 2)* ASTRIDE]); + outlet_float(x->x_obj.ob_outlet, vec[npoints - 2]); else { int n = f; float a, b, c, d, cminusb, frac, *fp; if (n >= npoints - 2) n = npoints - 3; - fp = vec + n* ASTRIDE; + fp = vec + n; frac = f - n; - a = fp[-1*ASTRIDE]; - b = fp[0*ASTRIDE]; - c = fp[1*ASTRIDE]; - d = fp[2*ASTRIDE]; + a = fp[-1]; + b = fp[0]; + c = fp[1]; + d = fp[2]; cminusb = c-b; outlet_float(x->x_obj.ob_outlet, b + frac * ( cminusb - 0.1666667f * (1.-frac) * ( @@ -988,7 +981,7 @@ n = 0; else if (n >= vecsize) n = vecsize-1; - vec[n*ASTRIDE] = f; + vec[n] = f; garray_redraw(a); } } Modified: branches/pd-extended/0.41/pd/src/d_soundfile.c =================================================================== --- branches/pd-extended/0.41/pd/src/d_soundfile.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/d_soundfile.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -34,12 +34,14 @@ #define MAXSFCHANS 64 -#define ASTRIDE (sizeof(union word)/sizeof(t_sample)) - #ifdef _LARGEFILE64_SOURCE # define open open64 # define lseek lseek64 +#define off_t __off64_t #endif +#ifdef MSW +#define off_t long +#endif /***************** soundfile header structures ************************/ @@ -378,7 +380,8 @@ } } /* seek past header and any sample frames to skip */ - sysrtn = lseek(fd, nchannels * bytespersamp * skipframes + headersize, 0); + sysrtn = lseek(fd, + ((off_t)nchannels) * bytespersamp * skipframes + headersize, 0); if (sysrtn != nchannels * bytespersamp * skipframes + headersize) return (-1); bytelimit -= nchannels * bytespersamp * skipframes; @@ -429,13 +432,13 @@ p_bigendian, p_nchannels, p_bytelimit, skipframes)); } -static void soundfile_xferin(int sfchannels, int nvecs, float **vecs, +static void soundfile_xferin_sample(int sfchannels, int nvecs, t_sample **vecs, long itemsread, unsigned char *buf, int nitems, int bytespersamp, - int bigendian) + int bigendian, int spread) { int i, j; unsigned char *sp, *sp2; - float *fp; + t_sample *fp; int nchannels = (sfchannels < nvecs ? sfchannels : nvecs); int bytesperframe = bytespersamp * sfchannels; for (i = 0, sp = buf; i < nchannels; i++, sp += bytespersamp) @@ -444,14 +447,14 @@ { if (bigendian) { - for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)); } else { - for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16)); } } @@ -459,15 +462,15 @@ { if (bigendian) { - for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16) | (sp2[2] << 8)); } else { - for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16) | (sp2[0] << 8)); } @@ -476,15 +479,15 @@ { if (bigendian) { - for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16) | (sp2[2] << 8) | sp2[3]); } else { - for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16) | (sp2[1] << 8) | sp2[0]); } @@ -492,11 +495,79 @@ } /* zero out other outputs */ for (i = sfchannels; i < nvecs; i++) - for (j = nitems, fp = vecs[i*ASTRIDE]; j--; ) - *fp = 0,fp += ASTRIDE; + for (j = nitems, fp = vecs[i]; j--; ) + *fp++ = 0; } +static void soundfile_xferin_float(int sfchannels, int nvecs, t_float **vecs, + long itemsread, unsigned char *buf, int nitems, int bytespersamp, + int bigendian, int spread) +{ + int i, j; + unsigned char *sp, *sp2; + t_float *fp; + int nchannels = (sfchannels < nvecs ? sfchannels : nvecs); + int bytesperframe = bytespersamp * sfchannels; + for (i = 0, sp = buf; i < nchannels; i++, sp += bytespersamp) + { + if (bytespersamp == 2) + { + if (bigendian) + { + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)); + } + else + { + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16)); + } + } + else if (bytespersamp == 3) + { + if (bigendian) + { + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16) + | (sp2[2] << 8)); + } + else + { + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16) + | (sp2[0] << 8)); + } + } + else if (bytespersamp == 4) + { + if (bigendian) + { + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16) + | (sp2[2] << 8) | sp2[3]); + } + else + { + for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16) + | (sp2[1] << 8) | sp2[0]); + } + } + } + /* zero out other outputs */ + for (i = sfchannels; i < nvecs; i++) + for (j = nitems, fp = vecs[i]; j--; ) + *fp++ = 0; + +} + /* soundfiler_write ... usage: write [flags] filename table ... @@ -522,7 +593,7 @@ static int soundfiler_writeargparse(void *obj, int *p_argc, t_atom **p_argv, t_symbol **p_filesym, int *p_filetype, int *p_bytespersamp, int *p_swap, int *p_bigendian, - int *p_normalize, long *p_onset, long *p_nframes, float *p_rate) + int *p_normalize, long *p_onset, long *p_nframes, t_float *p_rate) { int argc = *p_argc; t_atom *argv = *p_argv; @@ -530,7 +601,7 @@ endianness = -1, swap, filetype = -1, normalize = 0; long onset = 0, nframes = 0x7fffffff; t_symbol *filesym; - float rate = -1; + t_float rate = -1; while (argc > 0 && argv->a_type == A_SYMBOL && *argv->a_w.w_symbol->s_name == '-') @@ -672,7 +743,7 @@ static int create_soundfile(t_canvas *canvas, const char *filename, int filetype, int nframes, int bytespersamp, - int bigendian, int nchannels, int swap, float samplerate) + int bigendian, int nchannels, int swap, t_float samplerate) { char filenamebuf[FILENAME_MAX], buf2[FILENAME_MAX]; char headerbuf[WRITEHDRSIZE]; @@ -831,24 +902,24 @@ post("%s: %s", filename, strerror(errno)); } -static void soundfile_xferout(int nchannels, float **vecs, +static void soundfile_xferout_sample(int nchannels, t_sample **vecs, unsigned char *buf, int nitems, long onset, int bytespersamp, - int bigendian, float normalfactor) + int bigendian, t_sample normalfactor, int spread) { int i, j; unsigned char *sp, *sp2; - float *fp; + t_sample *fp; int bytesperframe = bytespersamp * nchannels; long xx; for (i = 0, sp = buf; i < nchannels; i++, sp += bytespersamp) { if (bytespersamp == 2) { - float ff = normalfactor * 32768.; + t_sample ff = normalfactor * 32768.; if (bigendian) { - for (j = 0, sp2 = sp, fp = vecs[i] + onset*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp = vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) { int xx = 32768. + (*fp * ff); xx -= 32768; @@ -862,8 +933,8 @@ } else { - for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) { int xx = 32768. + (*fp * ff); xx -= 32768; @@ -878,11 +949,11 @@ } else if (bytespersamp == 3) { - float ff = normalfactor * 8388608.; + t_sample ff = normalfactor * 8388608.; if (bigendian) { - for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) { int xx = 8388608. + (*fp * ff); xx -= 8388608; @@ -897,8 +968,8 @@ } else { - for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) { int xx = 8388608. + (*fp * ff); xx -= 8388608; @@ -916,10 +987,10 @@ { if (bigendian) { - for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) { - float f2 = *fp * normalfactor; + t_sample f2 = *fp * normalfactor; xx = *(long *)&f2; sp2[0] = (xx >> 24); sp2[1] = (xx >> 16); sp2[2] = (xx >> 8); sp2[3] = xx; @@ -927,10 +998,10 @@ } else { - for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; - j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) { - float f2 = *fp * normalfactor; + t_sample f2 = *fp * normalfactor; xx = *(long *)&f2; sp2[3] = (xx >> 24); sp2[2] = (xx >> 16); sp2[1] = (xx >> 8); sp2[0] = xx; @@ -939,8 +1010,115 @@ } } } +static void soundfile_xferout_float(int nchannels, t_float **vecs, + unsigned char *buf, int nitems, long onset, int bytespersamp, + int bigendian, t_sample normalfactor, int spread) +{ + int i, j; + unsigned char *sp, *sp2; + t_float *fp; + int bytesperframe = bytespersamp * nchannels; + long xx; + for (i = 0, sp = buf; i < nchannels; i++, sp += bytespersamp) + { + if (bytespersamp == 2) + { + t_sample ff = normalfactor * 32768.; + if (bigendian) + { + for (j = 0, sp2 = sp, fp = vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + { + int xx = 32768. + (*fp * ff); + xx -= 32768; + if (xx < -32767) + xx = -32767; + if (xx > 32767) + xx = 32767; + sp2[0] = (xx >> 8); + sp2[1] = xx; + } + } + else + { + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + { + int xx = 32768. + (*fp * ff); + xx -= 32768; + if (xx < -32767) + xx = -32767; + if (xx > 32767) + xx = 32767; + sp2[1] = (xx >> 8); + sp2[0] = xx; + } + } + } + else if (bytespersamp == 3) + { + t_sample ff = normalfactor * 8388608.; + if (bigendian) + { + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + { + int xx = 8388608. + (*fp * ff); + xx -= 8388608; + if (xx < -8388607) + xx = -8388607; + if (xx > 8388607) + xx = 8388607; + sp2[0] = (xx >> 16); + sp2[1] = (xx >> 8); + sp2[2] = xx; + } + } + else + { + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + { + int xx = 8388608. + (*fp * ff); + xx -= 8388608; + if (xx < -8388607) + xx = -8388607; + if (xx > 8388607) + xx = 8388607; + sp2[2] = (xx >> 16); + sp2[1] = (xx >> 8); + sp2[0] = xx; + } + } + } + else if (bytespersamp == 4) + { + if (bigendian) + { + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + { + t_sample f2 = *fp * normalfactor; + xx = *(long *)&f2; + sp2[0] = (xx >> 24); sp2[1] = (xx >> 16); + sp2[2] = (xx >> 8); sp2[3] = xx; + } + } + else + { + for (j = 0, sp2 = sp, fp=vecs[i] + onset; + j < nitems; j++, sp2 += bytesperframe, fp += spread) + { + t_sample f2 = *fp * normalfactor; + xx = *(long *)&f2; + sp2[3] = (xx >> 24); sp2[2] = (xx >> 16); + sp2[1] = (xx >> 8); sp2[0] = xx; + } + } + } + } +} - /* ------- soundfiler - reads and writes soundfiles to/from "garrays" ---- */ #define DEFMAXSIZE 4000000 /* default maximum 16 MB per channel */ #define SAMPBUFSIZE 1024 @@ -967,7 +1145,6 @@ usage: read [flags] filename table ... flags: -skip <frames> ... frames to skip in file - -nframes <frames> -onset <frames> ... onset in table to read into (NOT DONE YET) -raw <headersize channels bytes endian> -resize @@ -979,12 +1156,12 @@ { int headersize = -1, channels = 0, bytespersamp = 0, bigendian = 0, resize = 0, i, j; - long skipframes = 0, nframes = 0, finalsize = 0, itemsleft, + long skipframes = 0, finalsize = 0, itemsleft, maxsize = DEFMAXSIZE, itemsread = 0, bytelimit = 0x7fffffff; int fd = -1; char endianness, *filename; t_garray *garrays[MAXSFCHANS]; - t_float *vecs[MAXSFCHANS]; + t_word *vecs[MAXSFCHANS]; char sampbuf[SAMPBUFSIZE]; int bufframes, nitems; FILE *fp; @@ -999,13 +1176,6 @@ goto usage; argc -= 2; argv += 2; } - else if (!strcmp(flag, "nframes")) - { - if (argc < 2 || argv[1].a_type != A_FLOAT || - ((nframes = argv[1].a_w.w_float) < 0)) - goto usage; - argc -= 2; argv += 2; - } else if (!strcmp(flag, "raw")) { if (argc < 5 || @@ -1060,7 +1230,8 @@ pd_error(x, "%s: no such table", argv[i].a_w.w_symbol->s_name); goto done; } - else if (!garray_getfloatarray(garrays[i], &vecsize, &vecs[i])) + else if (!garray_getfloatwords(garrays[i], &vecsize, + &vecs[i])) error("%s: bad template for tabwrite", argv[i].a_w.w_symbol->s_name); if (finalsize && finalsize != vecsize && !resize) @@ -1110,7 +1281,8 @@ garray_resize(garrays[i], finalsize); /* for sanity's sake let's clear the save-in-patch flag here */ garray_setsaveit(garrays[i], 0); - garray_getfloatarray(garrays[i], &vecsize, &vecs[i]); + garray_getfloatwords(garrays[i], &vecsize, + &vecs[i]); /* if the resize failed, garray_resize reported the error */ if (vecsize != framesinfile) { @@ -1131,8 +1303,9 @@ thisread = (thisread > bufframes ? bufframes : thisread); nitems = fread(sampbuf, channels * bytespersamp, thisread, fp); if (nitems <= 0) break; - soundfile_xferin(channels, argc, vecs, itemsread, - (unsigned char *)sampbuf, nitems, bytespersamp, bigendian); + soundfile_xferin_float(channels, argc, (t_float **)vecs, itemsread, + (unsigned char *)sampbuf, nitems, bytespersamp, bigendian, + sizeof(t_word)/sizeof(t_sample)); itemsread += nitems; } /* zero out remaining elements of vectors */ @@ -1140,18 +1313,18 @@ for (i = 0; i < argc; i++) { int nzero, vecsize; - garray_getfloatarray(garrays[i], &vecsize, &vecs[i]); + garray_getfloatwords(garrays[i], &vecsize, &vecs[i]); for (j = itemsread; j < vecsize; j++) - vecs[i][j] = 0; + vecs[i][j].w_float = 0; } /* zero out vectors in excess of number of channels */ for (i = channels; i < argc; i++) { int vecsize; - float *foo; - garray_getfloatarray(garrays[i], &vecsize, &foo); + t_word *foo; + garray_getfloatwords(garrays[i], &vecsize, &foo); for (j = 0; j < vecsize; j++) - foo[j] = 0; + foo[j].w_float = 0; } /* do all graphics updates */ for (i = 0; i < argc; i++) @@ -1166,7 +1339,7 @@ done: if (fd >= 0) close (fd); - outlet_float(x->x_obj.ob_outlet, (float)itemsread); + outlet_float(x->x_obj.ob_outlet, (t_float)itemsread); } /* this is broken out from soundfiler_write below so garray_write can @@ -1180,11 +1353,12 @@ long onset, nframes, itemsleft, maxsize = DEFMAXSIZE, itemswritten = 0; t_garray *garrays[MAXSFCHANS]; - t_float *vecs[MAXSFCHANS]; + t_word *vecs[MAXSFCHANS]; char sampbuf[SAMPBUFSIZE]; int bufframes, nitems; int fd = -1; - float normfactor, biggest = 0, samplerate; + t_sample normfactor, biggest = 0; + t_float samplerate; t_symbol *filesym; if (soundfiler_writeargparse(obj, &argc, &argv, &filesym, &filetype, @@ -1207,7 +1381,7 @@ pd_error(obj, "%s: no such table", argv[i].a_w.w_symbol->s_name); goto fail; } - else if (!garray_getfloatarray(garrays[i], &vecsize, &vecs[i])) + else if (!garray_getfloatwords(garrays[i], &vecsize, &vecs[i])) error("%s: bad template for tabwrite", argv[i].a_w.w_symbol->s_name); if (nframes > vecsize - onset) @@ -1215,10 +1389,10 @@ for (j = 0; j < vecsize; j++) { - if (vecs[i][j] > biggest) - biggest = vecs[i][j]; - else if (-vecs[i][j] > biggest) - biggest = -vecs[i][j]; + if (vecs[i][j].w_float > biggest) + biggest = vecs[i][j].w_float; + else if (-vecs[i][j].w_float > biggest) + biggest = -vecs[i][j].w_float; } } if (nframes <= 0) @@ -1253,8 +1427,9 @@ { int thiswrite = nframes - itemswritten, nitems, nbytes; thiswrite = (thiswrite > bufframes ? bufframes : thiswrite); - soundfile_xferout(argc, vecs, (unsigned char *)sampbuf, thiswrite, - onset, bytespersamp, bigendian, normfactor); + soundfile_xferout_float(argc, (t_float **)vecs, (unsigned char *)sampbuf, + thiswrite, onset, bytespersamp, bigendian, normfactor, + sizeof(t_word)/sizeof(t_sample)); nbytes = write(fd, sampbuf, nchannels * bytespersamp * thiswrite); if (nbytes < nchannels * bytespersamp * thiswrite) { @@ -1264,7 +1439,7 @@ break; } itemswritten += thiswrite; - onset += thiswrite; + onset += thiswrite * (sizeof(t_word)/sizeof(float)); } if (fd >= 0) { @@ -1289,7 +1464,7 @@ { long bozo = soundfiler_dowrite(x, x->x_canvas, argc, argv); - outlet_float(x->x_obj.ob_outlet, (float)bozo); + outlet_float(x->x_obj.ob_outlet, (t_float)bozo); } static void soundfiler_setup(void) @@ -1351,7 +1526,7 @@ int x_vecsize; /* vector size for transfers */ t_outlet *x_bangout; /* bang-on-done outlet */ int x_state; /* opened, running, or idle */ - float x_insamplerate; /* sample rate of input signal if known */ + t_float x_insamplerate; /* sample rate of input signal if known */ /* parameters to communicate with subthread */ int x_requestcode; /* pending request from parent to I/O thread */ char *x_filename; /* file to open (string is permanently allocated) */ @@ -1360,7 +1535,7 @@ int x_bytespersample; /* bytes per sample (2 or 3) */ int x_bigendian; /* true if file is big-endian */ int x_sfchannels; /* number of channels in soundfile */ - float x_samplerate; /* sample rate of soundfile */ + t_float x_samplerate; /* sample rate of soundfile */ long x_onsetframes; /* number of sample frames to skip */ long x_bytelimit; /* max number of data bytes to read */ int x_fd; /* filedesc */ @@ -1373,7 +1548,7 @@ int x_filetype; /* writesf~ only; type of file to create */ int x_itemswritten; /* writesf~ only; items writen */ int x_swap; /* writesf~ only; true if byte swapping */ - float x_f; /* writesf~ only; scalar for signal inlet */ + t_float x_f; /* writesf~ only; scalar for signal inlet */ pthread_mutex_t x_mutex; pthread_cond_t x_requestcondition; pthread_cond_t x_answercondition; @@ -1752,7 +1927,7 @@ int vecsize = x->x_vecsize, noutlets = x->x_noutlets, i, j, bytespersample = x->x_bytespersample, bigendian = x->x_bigendian; - float *fp; + t_sample *fp; if (x->x_state == STATE_STREAM) { int wantbytes, nchannels, sfchannels = x->x_sfchannels; @@ -1796,9 +1971,9 @@ (sfchannels * bytespersample); if (xfersize) { - soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0, + soundfile_xferin_sample(sfchannels, noutlets, x->x_outvec, 0, (unsigned char *)(x->x_buf + x->x_fifotail), xfersize, - bytespersample, bigendian); + bytespersample, bigendian, 1); vecsize -= xfersize; } /* then zero out the (rest of the) output */ @@ -1811,9 +1986,9 @@ return (w+2); } - soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0, + soundfile_xferin_sample(sfchannels, noutlets, x->x_outvec, 0, (unsigned char *)(x->x_buf + x->x_fifotail), vecsize, - bytespersample, bigendian); + bytespersample, bigendian, 1); x->x_fifotail += wantbytes; if (x->x_fifotail >= x->x_fifosize) @@ -2007,7 +2182,7 @@ int filetype = x->x_filetype; char *filename = x->x_filename; t_canvas *canvas = x->x_canvas; - float samplerate = x->x_samplerate; + t_float samplerate = x->x_samplerate; /* alter the request code so that an ensuing "open" will get noticed. */ @@ -2252,7 +2427,7 @@ int vecsize = x->x_vecsize, sfchannels = x->x_sfchannels, i, j, bytespersample = x->x_bytespersample, bigendian = x->x_bigendian; - float *fp; + t_sample *fp; if (x->x_state == STATE_STREAM) { int wantbytes; @@ -2271,9 +2446,9 @@ #endif } - soundfile_xferout(sfchannels, x->x_outvec, + soundfile_xferout_sample(sfchannels, x->x_outvec, (unsigned char *)(x->x_buf + x->x_fifohead), vecsize, 0, - bytespersample, bigendian, 1.); + bytespersample, bigendian, 1., 1); x->x_fifohead += wantbytes; if (x->x_fifohead >= x->x_fifosize) @@ -2324,7 +2499,7 @@ t_symbol *filesym; int filetype, bytespersamp, swap, bigendian, normalize; long onset, nframes; - float samplerate; + t_float samplerate; if (x->x_state != STATE_IDLE) { writesf_stop(x); Property changes on: branches/pd-extended/0.41/pd/src/d_soundfile.c ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/d_soundfile.c:9670-10498 /tags/pd/pd-0.41-4/src/d_soundfile.c:9603-9669 /trunk/pd/src/d_soundfile.c:6083-9602 Modified: branches/pd-extended/0.41/pd/src/g_canvas.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_canvas.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_canvas.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -448,8 +448,8 @@ /* make a new glist and add it to this glist. It will appear as a "graph", not a text object. */ t_glist *glist_addglist(t_glist *g, t_symbol *sym, - float x1, float y1, float x2, float y2, - float px1, float py1, float px2, float py2) + t_float x1, t_float y1, t_float x2, t_float y2, + t_float px1, t_float py1, t_float px2, t_float py2) { static int gcount = 0; int zz; @@ -474,7 +474,7 @@ that is higher on the screen. */ if (py2 < py1) { - float zz; + t_float zz; zz = y2; y2 = y1; y1 = zz; @@ -520,14 +520,14 @@ void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv) { t_symbol *sym = atom_getsymbolarg(0, argc, argv); - float x1 = atom_getfloatarg(1, argc, argv); - float y1 = atom_getfloatarg(2, argc, argv); - float x2 = atom_getfloatarg(3, argc, argv); - float y2 = atom_getfloatarg(4, argc, argv); - float px1 = atom_getfloatarg(5, argc, argv); - float py1 = atom_getfloatarg(6, argc, argv); - float px2 = atom_getfloatarg(7, argc, argv); - float py2 = atom_getfloatarg(8, argc, argv); + t_float x1 = atom_getfloatarg(1, argc, argv); + t_float y1 = atom_getfloatarg(2, argc, argv); + t_float x2 = atom_getfloatarg(3, argc, argv); + t_float y2 = atom_getfloatarg(4, argc, argv); + t_float px1 = atom_getfloatarg(5, argc, argv); + t_float py1 = atom_getfloatarg(6, argc, argv); + t_float px2 = atom_getfloatarg(7, argc, argv); + t_float py2 = atom_getfloatarg(8, argc, argv); glist_addglist(g, sym, x1, y1, x2, y2, px1, py1, px2, py2); } @@ -557,7 +557,7 @@ fix so that zero is bottom edge and redraw. This is only appropriate if we're a regular "text" object on the parent. */ - float diff = x->gl_y1 - x->gl_y2; + t_float diff = x->gl_y1 - x->gl_y2; t_gobj *y; x->gl_y1 = heightwas * diff; x->gl_y2 = x->gl_y1 - diff; @@ -744,7 +744,7 @@ } for (y = x->gl_list; y; y = y->g_next) if (pd_class(&y->g_pd) == canvas_class && - ((t_canvas *)y)->gl_isgraph) + ((t_canvas *)y)->gl_isgraph && !((t_canvas *)y)->gl_havewindow) canvas_create_editor((t_canvas *)y, createit); } @@ -814,7 +814,8 @@ if (glist_isgraph(x) && x->gl_owner) { t_glist *gl2 = x->gl_owner; - canvas_create_editor(x, 1); + if (!x->gl_owner->gl_isdeleting) + canvas_create_editor(x, 1); if (glist_isvisible(gl2)) gobj_vis(&x->gl_gobj, gl2, 0); x->gl_havewindow = 0; @@ -1499,9 +1500,6 @@ void canvas_savedeclarationsto(t_canvas *x, t_binbuf *b) { - int i, argc; - t_atom *argv; - char savename[FILENAME_MAX]; t_gobj *y; for (y = x->gl_list; y; y = y->g_next) @@ -1514,6 +1512,8 @@ } else if (pd_class(&y->g_pd) == import_class) { + int i, argc; + t_atom *argv; binbuf_addv(b, "s", gensym("#X")); binbuf_addv(b, "s", gensym("declare")); argc = binbuf_getnatom(((t_object *)y)->te_binbuf) - 1; @@ -1537,7 +1537,7 @@ to[0] = '\0'; } else - { // if not absolute path, append Pd lib dir + { /* if not absolute path, append Pd lib dir */ strncpy(to, sys_libdir->s_name, FILENAME_MAX-4); to[FILENAME_MAX-3] = '\0'; strcat(to, "/"); @@ -1629,7 +1629,7 @@ realname[0] = '\0'; } else - { // if not absolute path, append parent canvas' current dir + { /* if not absolute path, append Pd lib dir */ strncpy(realname, dir, FILENAME_MAX); realname[FILENAME_MAX-3] = 0; strcat(realname, "/"); Modified: branches/pd-extended/0.41/pd/src/g_graph.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_graph.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_graph.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -189,11 +189,11 @@ return((t_canvas *)x); } -static float gobj_getxforsort(t_gobj *g) +static t_float gobj_getxforsort(t_gobj *g) { if (pd_class(&g->g_pd) == scalar_class) { - float x1, y1; + t_float x1, y1; scalar_getbasexy((t_scalar *)g, &x1, &y1); return(x1); } @@ -203,7 +203,7 @@ static t_gobj *glist_merge(t_glist *x, t_gobj *g1, t_gobj *g2) { t_gobj *g = 0, *g9 = 0; - float f1 = 0, f2 = 0; + t_float f1 = 0, f2 = 0; if (g1) f1 = gobj_getxforsort(g1); if (g2) @@ -265,11 +265,11 @@ void glist_sort(t_glist *x) { int nitems = 0, foo = 0; - float lastx = -1e37; + t_float lastx = -1e37; t_gobj *g; for (g = x->gl_list; g; g = g->g_next) { - float x1 = gobj_getxforsort(g); + t_float x1 = gobj_getxforsort(g); if (x1 < lastx) foo = 1; lastx = x1; @@ -513,7 +513,7 @@ /****** routines to convert pixels to X or Y value and vice versa ******/ /* convert an x pixel value to an x coordinate value */ -float glist_pixelstox(t_glist *x, float xpix) +t_float glist_pixelstox(t_glist *x, t_float xpix) { /* if we appear as a text box on parent, our range in our coordinates (x1, etc.) specifies the coordinate range @@ -541,7 +541,7 @@ } } -float glist_pixelstoy(t_glist *x, float ypix) +t_float glist_pixelstoy(t_glist *x, t_float ypix) { if (!x->gl_isgraph) return (x->gl_y1 + (x->gl_y2 - x->gl_y1) * ypix); @@ -560,7 +560,7 @@ } /* convert an x coordinate value to an x pixel location in window */ -float glist_xtopixels(t_glist *x, float xval) +t_float glist_xtopixels(t_glist *x, t_float xval) { if (!x->gl_isgraph) return ((xval - x->gl_x1) / (x->gl_x2 - x->gl_x1)); @@ -577,7 +577,7 @@ } } -float glist_ytopixels(t_glist *x, float yval) +t_float glist_ytopixels(t_glist *x, t_float yval) { if (!x->gl_isgraph) return ((yval - x->gl_y1) / (x->gl_y2 - x->gl_y1)); @@ -597,12 +597,12 @@ /* convert an X screen distance to an X coordinate increment. This is terribly inefficient; but probably not a big enough CPU hog to warrant optimizing. */ -float glist_dpixtodx(t_glist *x, float dxpix) +t_float glist_dpixtodx(t_glist *x, t_float dxpix) { return (dxpix * (glist_pixelstox(x, 1) - glist_pixelstox(x, 0))); } -float glist_dpixtody(t_glist *x, float dypix) +t_float glist_dpixtody(t_glist *x, t_float dypix) { return (dypix * (glist_pixelstoy(x, 1) - glist_pixelstoy(x, 0))); } @@ -731,7 +731,7 @@ if (vis) { int i; - float f; + t_float f; t_gobj *g; t_symbol *arrayname; t_garray *ga; @@ -758,7 +758,7 @@ zero, this is disabled. */ if (x->gl_xtick.k_lperb) { - float upix, lpix; + t_float upix, lpix; if (y2 < y1) upix = y1, lpix = y2; else upix = y2, lpix = y1; @@ -795,7 +795,7 @@ /* draw ticks in vertical borders*/ if (x->gl_ytick.k_lperb) { - float ubound, lbound; + t_float ubound, lbound; if (x->gl_y2 < x->gl_y1) ubound = x->gl_y1, lbound = x->gl_y2; else ubound = x->gl_y2, lbound = x->gl_y1; @@ -836,7 +836,7 @@ (int)glist_xtopixels(x, atof(x->gl_xlabel[i]->s_name)), (int)glist_ytopixels(x, x->gl_xlabely), x->gl_xlabel[i]->s_name, sys_font, - glist_getfont(x), sys_fontweight, tag); + glist_getfont(x), sys_fontweight, tag); /* draw y labels */ for (i = 0; i < x->gl_nylabels; i++) @@ -1000,25 +1000,25 @@ glist_delete(x, y); } -static float graph_lastxpix, graph_lastypix; +static t_float graph_lastxpix, graph_lastypix; static void graph_motion(void *z, t_floatarg dx, t_floatarg dy) { t_glist *x = (t_glist *)z; - float newxpix = graph_lastxpix + dx, newypix = graph_lastypix + dy; + t_float newxpix = graph_lastxpix + dx, newypix = graph_lastypix + dy; t_garray *a = (t_garray *)(x->gl_list); int oldx = 0.5 + glist_pixelstox(x, graph_lastxpix); int newx = 0.5 + glist_pixelstox(x, newxpix); - t_float *vec; + t_word *vec; int nelem, i; - float oldy = glist_pixelstoy(x, graph_lastypix); - float newy = glist_pixelstoy(x, newypix); + t_float oldy = glist_pixelstoy(x, graph_lastypix); + t_float newy = glist_pixelstoy(x, newypix); graph_lastxpix = newxpix; graph_lastypix = newypix; /* verify that the array is OK */ if (!a || pd_class((t_pd *)a) != garray_class) return; - if (!garray_getfloatarray(a, &nelem, &vec)) + if (!garray_getfloatwords(a, &nelem, &vec)) return; if (oldx < 0) oldx = 0; if (oldx >= nelem) @@ -1029,16 +1029,16 @@ if (oldx < newx - 1) { for (i = oldx + 1; i <= newx; i++) - vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) * - ((float)(newx - i))/(float)(newx - oldx); + vec[i].w_float = newy + (oldy - newy) * + ((t_float)(newx - i))/(t_float)(newx - oldx); } else if (oldx > newx + 1) { for (i = oldx - 1; i >= newx; i--) - vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) * - ((float)(newx - i))/(float)(newx - oldx); + vec[i].w_float = newy + (oldy - newy) * + ((t_float)(newx - i))/(t_float)(newx - oldx); } - else vec[newx*sizeof(union word)/sizeof(t_sample)] = newy; + else vec[newx].w_float = newy; garray_redraw(a); } Property changes on: branches/pd-extended/0.41/pd/src/g_graph.c ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/g_graph.c:9670-10503 /tags/pd/pd-0.41-4/src/g_graph.c:9603-9669 /trunk/pd/src/g_graph.c:6083-9602 Modified: branches/pd-extended/0.41/pd/src/g_hdial.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_hdial.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_hdial.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -351,14 +351,14 @@ { if((x->x_change)&&(x->x_on != x->x_on_old)) { - SETFLOAT(x->x_at, (float)x->x_on_old); + SETFLOAT(x->x_at, (t_float)x->x_on_old); SETFLOAT(x->x_at+1, 0.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) pd_list(x->x_gui.x_snd->s_thing, &s_list, 2, x->x_at); } x->x_on_old = x->x_on; - SETFLOAT(x->x_at, (float)x->x_on); + SETFLOAT(x->x_at, (t_float)x->x_on); SETFLOAT(x->x_at+1, 1.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -385,7 +385,7 @@ { if((x->x_change)&&(i != x->x_on_old)) { - SETFLOAT(x->x_at, (float)x->x_on_old); + SETFLOAT(x->x_at, (t_float)x->x_on_old); SETFLOAT(x->x_at+1, 0.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -396,7 +396,7 @@ x->x_on = i; (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); x->x_on_old = x->x_on; - SETFLOAT(x->x_at, (float)x->x_on); + SETFLOAT(x->x_at, (t_float)x->x_on); SETFLOAT(x->x_at+1, 1.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -429,7 +429,7 @@ { if(x->x_gui.x_fsf.x_put_in2out) { - SETFLOAT(x->x_at, (float)x->x_on_old); + SETFLOAT(x->x_at, (t_float)x->x_on_old); SETFLOAT(x->x_at+1, 0.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -443,7 +443,7 @@ x->x_on_old = x->x_on; if(x->x_gui.x_fsf.x_put_in2out) { - SETFLOAT(x->x_at, (float)x->x_on); + SETFLOAT(x->x_at, (t_float)x->x_on); SETFLOAT(x->x_at+1, 1.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -468,7 +468,7 @@ { int xx = (int)xpos - (int)text_xpix(&x->x_gui.x_obj, x->x_gui.x_glist); - hradio_fout(x, (float)(xx / x->x_gui.x_w)); + hradio_fout(x, (t_float)(xx / x->x_gui.x_w)); } static int hradio_newclick(t_gobj *z, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit) Modified: branches/pd-extended/0.41/pd/src/g_hslider.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_hslider.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_hslider.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -226,7 +226,7 @@ binbuf_addv(b, "ssiisiiffiisssiiiiiiiii", gensym("#X"),gensym("obj"), (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix, gensym("hsl"), x->x_gui.x_w, x->x_gui.x_h, - (float)x->x_min, (float)x->x_max, + (t_float)x->x_min, (t_float)x->x_max, x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa), srl[0], srl[1], srl[2], x->x_gui.x_ldx, x->x_gui.x_ldy, Modified: branches/pd-extended/0.41/pd/src/g_numbox.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_numbox.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_numbox.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -203,7 +203,7 @@ canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_lcol, x); + x->x_gui.x_lcol, x); my_numbox_ftoa(x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ -font {{%s} %d %s} -fill #%6.6x -tags %lxNUMBER\n", @@ -395,7 +395,7 @@ binbuf_addv(b, "ssiisiiffiisssiiiiiiifi", gensym("#X"),gensym("obj"), (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix, gensym("nbx"), x->x_gui.x_w, x->x_gui.x_h, - (float)x->x_min, (float)x->x_max, + (t_float)x->x_min, (t_float)x->x_max, x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa), srl[0], srl[1], srl[2], x->x_gui.x_ldx, x->x_gui.x_ldy, Property changes on: branches/pd-extended/0.41/pd/src/g_numbox.c ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/g_numbox.c:9670-10504 /tags/pd/pd-0.41-4/src/g_numbox.c:9603-9669 /trunk/pd/src/g_numbox.c:6083-9602 Modified: branches/pd-extended/0.41/pd/src/g_rtext.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_rtext.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_rtext.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -156,7 +156,7 @@ static void rtext_senditup(t_rtext *x, int action, int *widthp, int *heightp, int *indexp) { - float dispx, dispy; + t_float dispx, dispy; char smallbuf[200], *tempbuf; int outchars = 0, nlines = 0, ncolumns = 0, pixwide, pixhigh, font, fontwidth, fontheight, findx, findy; @@ -445,9 +445,10 @@ x->x_buf = resizebytes(x->x_buf, x->x_bufsize, newsize); x->x_bufsize = newsize; -/* at guenter's suggestion, this gets european characters working */ -/* if (n == '\n' || isprint(n)) */ - if ((n == '\n' || n > 31) && n != 127) +/* at Guenter's suggestion, use 'n>31' to test wither a character might +be printable in whatever 8-bit character set we find ourselves. */ + + if (n == '\n' || (n > 31 && n != 127)) { newsize = x->x_bufsize+1; x->x_buf = resizebytes(x->x_buf, x->x_bufsize, newsize); Modified: branches/pd-extended/0.41/pd/src/g_template.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_template.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_template.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -147,7 +147,7 @@ { int onset, type; t_symbol *arraytype; - float val = 0; + t_float val = 0; if (template_find_field(x, fieldname, &onset, &type, &arraytype)) { if (type == DT_FLOAT) @@ -721,14 +721,14 @@ t_symbol *fd_symbol; /* the field is a constant symbol */ t_symbol *fd_varsym; /* the field is variable and this is the name */ } fd_un; - float fd_v1; /* min and max values */ - float fd_v2; - float fd_screen1; /* min and max screen values */ - float fd_screen2; - float fd_quantum; /* quantization in value */ + t_float fd_v1; /* min and max values */ + t_float fd_v2; + t_float fd_screen1; /* min and max screen values */ + t_float fd_screen2; + t_float fd_quantum; /* quantization in value */ }; -static void fielddesc_setfloat_const(t_fielddesc *fd, float f) +static void fielddesc_setfloat_const(t_fielddesc *fd, t_float f) { fd->fd_type = A_FLOAT; fd->fd_var = 0; @@ -851,9 +851,9 @@ } /* convert a variable's value to a screen coordinate via its fielddesc */ -t_float fielddesc_cvttocoord(t_fielddesc *f, float val) +t_float fielddesc_cvttocoord(t_fielddesc *f, t_float val) { - float coord, pix, extreme, div; + t_float coord, pix, extreme, div; if (f->fd_v2 == f->fd_v1) return (val); div = (f->fd_screen2 - f->fd_screen1)/(f->fd_v2 - f->fd_v1); @@ -877,7 +877,7 @@ { if (f->fd_var) { - float val = template_getfloat(template, + t_float val = template_getfloat(template, f->fd_un.fd_varsym, wp, loud); return (fielddesc_cvttocoord(f, val)); } @@ -909,15 +909,15 @@ } /* convert from a screen coordinate to a variable value */ -float fielddesc_cvtfromcoord(t_fielddesc *f, float coord) +t_float fielddesc_cvtfromcoord(t_fielddesc *f, t_float coord) { - float val; + t_float val; if (f->fd_screen2 == f->fd_screen1) val = coord; else { - float div = (f->fd_v2 - f->fd_v1)/(f->fd_screen2 - f->fd_screen1); - float extreme; + t_float div = (f->fd_v2 - f->fd_v1)/(f->fd_screen2 - f->fd_screen1); + t_float extreme; val = f->fd_v1 + (coord - f->fd_screen1) * div; if (f->fd_quantum != 0) val = ((int)((val/f->fd_quantum) + 0.5)) * f->fd_quantum; @@ -932,11 +932,11 @@ } void fielddesc_setcoord(t_fielddesc *f, t_template *template, - t_word *wp, float coord, int loud) + t_word *wp, t_float coord, int loud) { if (f->fd_type == A_FLOAT && f->fd_var) { - float val = fielddesc_cvtfromcoord(f, coord); + t_float val = fielddesc_cvtfromcoord(f, coord); template_setfloat(template, f->fd_un.fd_varsym, wp, val, loud); } @@ -1040,7 +1040,7 @@ /* -------------------- widget behavior for curve ------------ */ static void curve_getrect(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int *xp1, int *yp1, int *xp2, int *yp2) { t_curve *x = (t_curve *)z; @@ -1072,21 +1072,21 @@ } static void curve_displace(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int dx, int dy) { /* refuse */ } static void curve_select(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int state) { /* fill in later */ } static void curve_activate(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int state) { /* fill in later */ @@ -1122,21 +1122,22 @@ } static void curve_vis(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int vis) { t_curve *x = (t_curve *)z; int i, n = x->x_npoints; t_fielddesc *f = x->x_vec; - if (!fielddesc_getfloat(&x->x_vis, template, data, 0)) + /* see comment in plot_vis() */ + if (vis && !fielddesc_getfloat(&x->x_vis, template, data, 0)) return; if (vis) { if (n > 1) { int flags = x->x_flags, closed = (flags & CLOSED); - float width = fielddesc_getfloat(&x->x_width, template, data, 1); + t_float width = fielddesc_getfloat(&x->x_width, template, data, 1); char outline[20], fill[20]; int pix[200]; if (n > 100) @@ -1184,12 +1185,12 @@ } static int curve_motion_field; -static float curve_motion_xcumulative; -static float curve_motion_xbase; -static float curve_motion_xper; -static float curve_motion_ycumulative; -static float curve_motion_ybase; -static float curve_motion_yper; +static t_float curve_motion_xcumulative; +static t_float curve_motion_xbase; +static t_float curve_motion_xper; +static t_float curve_motion_ycumulative; +static t_float curve_motion_ybase; +static t_float curve_motion_yper; static t_glist *curve_motion_glist; static t_scalar *curve_motion_scalar; static t_array *curve_motion_array; @@ -1236,7 +1237,7 @@ static int curve_click(t_gobj *z, t_glist *glist, t_word *data, t_template *template, t_scalar *sc, t_array *ap, - float basex, float basey, + t_float basex, t_float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit) { t_curve *x = (t_curve *)z; @@ -1269,7 +1270,7 @@ bestn = i; } } - if (besterror > 10) + if (besterror > 6) return (0); if (doit) { @@ -1437,8 +1438,8 @@ static int plot_readownertemplate(t_plot *x, t_word *data, t_template *ownertemplate, t_symbol **elemtemplatesymp, t_array **arrayp, - float *linewidthp, float *xlocp, float *xincp, float *ylocp, float *stylep, - float *visp, float *scalarvisp, + t_float *linewidthp, t_float *xlocp, t_float *xincp, t_float *ylocp, t_float *stylep, + t_float *visp, t_float *scalarvisp, t_fielddesc **xfield, t_fielddesc **yfield, t_fielddesc **wfield) { int arrayonset, type; @@ -1537,7 +1538,7 @@ } static void plot_getrect(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int *xp1, int *yp1, int *xp2, int *yp2) { t_plot *x = (t_plot *)z; @@ -1545,11 +1546,11 @@ t_canvas *elemtemplatecanvas; t_template *elemtemplate; t_symbol *elemtemplatesym; - float linewidth, xloc, xinc, yloc, style, xsum, yval, vis, scalarvis; + t_float linewidth, xloc, xinc, yloc, style, xsum, yval, vis, scalarvis; t_array *array; int x1 = 0x7fffffff, y1 = 0x7fffffff, x2 = -0x7fffffff, y2 = -0x7fffffff; int i; - float xpix, ypix, wpix; + t_float xpix, ypix, wpix; t_fielddesc *xfielddesc, *yfielddesc, *wfielddesc; if (!plot_readownertemplate(x, data, template, &elemtemplatesym, &array, &linewidth, &xloc, &xinc, &yloc, &style, @@ -1564,7 +1565,7 @@ int incr = (array->a_n <= 2000 ? 1 : array->a_n / 1000); for (i = 0, xsum = 0; i < array->a_n; i += incr) { - float usexloc, useyloc; + t_float usexloc, useyloc; t_gobj *y; /* get the coords of the point proper */ array_getcoordinate(glist, (char *)(array->a_vec) + i * elemsize, @@ -1584,11 +1585,11 @@ /* check also the drawing instructions for the scalar */ if (xonset >= 0) usexloc = basex + xloc + fielddesc_cvttocoord(xfielddesc, - *(float *)(((char *)(array->a_vec) + elemsize * i) + *(t_float *)(((char *)(array->a_vec) + elemsize * i) + xonset)); else usexloc = basex + xsum, xsum += xinc; if (yonset >= 0) - yval = *(float *)(((char *)(array->a_vec) + elemsize * i) + yval = *(t_float *)(((char *)(array->a_vec) + elemsize * i) + yonset); else yval = 0; useyloc = basey + yloc + fielddesc_cvttocoord(yfielddesc, yval); @@ -1621,28 +1622,28 @@ } static void plot_displace(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int dx, int dy) { /* not yet */ } static void plot_select(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int state) { /* not yet */ } static void plot_activate(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int state) { /* not yet */ } static void plot_vis(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int tovis) { t_plot *x = (t_plot *)z; @@ -1650,17 +1651,25 @@ t_canvas *elemtemplatecanvas; t_template *elemtemplate; t_symbol *elemtemplatesym; - float linewidth, xloc, xinc, yloc, style, usexloc, xsum, yval, vis, + t_float linewidth, xloc, xinc, yloc, style, usexloc, xsum, yval, vis, scalarvis; t_array *array; int nelem; char *elem; t_fielddesc *xfielddesc, *yfielddesc, *wfielddesc; - + /* even if the array is "invisible", if its visibility is + set by an instance variable you have to explicitly erase it, + because the flag could earlier have been on when we were getting + drawn. Rather than look to try to find out whether we're + visible we just do the erasure. At the TK level this should + cause no action because the tag matches nobody. LATER we + might want to optimize this somehow. Ditto the "vis()" routines + for other drawing instructions. */ + if (plot_readownertemplate(x, data, template, &elemtemplatesym, &array, &linewidth, &xloc, &xinc, &yloc, &style, &vis, &scalarvis, &xfielddesc, &yfielddesc, &wfielddesc) || - ((vis == 0) && tovis) /* FIXME - why is 'tovis' flag necessary? */ + ((vis == 0) && tovis) /* see above for 'tovis' */ || array_getfields(elemtemplatesym, &elemtemplatecanvas, &elemtemplate, &elemsize, xfielddesc, yfielddesc, wfielddesc, &xonset, &yonset, &wonset)) @@ -1672,17 +1681,17 @@ { if (style == PLOTSTYLE_POINTS) { - float minyval = 1e20, maxyval = -1e20; + t_float minyval = 1e20, maxyval = -1e20; int ndrawn = 0; for (xsum = basex + xloc, i = 0; i < nelem; i++) { - float yval, xpix, ypix, nextxloc; + t_float yval, xpix, ypix, nextxloc; int ixpix, inextx; if (xonset >= 0) { usexloc = basex + xloc + - *(float *)((elem + elemsize * i) + xonset); + *(t_float *)((elem + elemsize * i) + xonset); ixpix = glist_xtopixels(glist, fielddesc_cvttocoord(xfielddesc, usexloc)); inextx = ixpix + 2; @@ -1698,7 +1707,7 @@ } if (yonset >= 0) - yval = yloc + *(float *)((elem + elemsize * i) + yonset); + yval = yloc + *(t_float *)((elem + elemsize * i) + yonset); else yval = 0; if (yval > maxyval) maxyval = yval; @@ -1725,7 +1734,7 @@ { char outline[20]; int lastpixel = -1, ndrawn = 0; - float yval = 0, wval = 0, xpix; + t_float yval = 0, wval = 0, xpix; int ixpix = 0; /* draw the trace */ numbertocolor(fielddesc_getfloat(&x->x_outlinecolor, template, @@ -1740,13 +1749,13 @@ for (i = 0, xsum = xloc; i < nelem; i++) { if (xonset >= 0) - usexloc = xloc + *(float *)((elem + elemsize * i) + usexloc = xloc + *(t_float *)((elem + elemsize * i) + xonset); else usexloc = xsum, xsum += xinc; if (yonset >= 0) - yval = *(float *)((elem + elemsize * i) + yonset); + yval = *(t_float *)((elem + elemsize * i) + yonset); else yval = 0; - wval = *(float *)((elem + elemsize * i) + wonset); + wval = *(t_float *)((elem + elemsize * i) + wonset); xpix = glist_xtopixels(glist, basex + fielddesc_cvttocoord(xfielddesc, usexloc)); ixpix = xpix + 0.5; @@ -1765,15 +1774,15 @@ lastpixel = -1; for (i = nelem-1; i >= 0; i--) { - float usexloc; + t_float usexloc; if (xonset >= 0) - usexloc = xloc + *(float *)((elem + elemsize * i) + usexloc = xloc + *(t_float *)((elem + elemsize * i) + xonset); else xsum -= xinc, usexloc = xsum; if (yonset >= 0) - yval = *(float *)((elem + elemsize * i) + yonset); + yval = *(t_float *)((elem + elemsize * i) + yonset); else yval = 0; - wval = *(float *)((elem + elemsize * i) + wonset); + wval = *(t_float *)((elem + elemsize * i) + wonset); xpix = glist_xtopixels(glist, basex + fielddesc_cvttocoord(xfielddesc, usexloc)); ixpix = xpix + 0.5; @@ -1817,13 +1826,13 @@ for (xsum = xloc, i = 0; i < nelem; i++) { - float usexloc; + t_float usexloc; if (xonset >= 0) - usexloc = xloc + *(float *)((elem + elemsize * i) + + usexloc = xloc + *(t_float *)((elem + elemsize * i) + xonset); else usexloc = xsum, xsum += xinc; if (yonset >= 0) - yval = *(float *)((elem + elemsize * i) + yonset); + yval = *(t_float *)((elem + elemsize * i) + yonset); else yval = 0; xpix = glist_xtopixels(glist, basex + fielddesc_cvttocoord(xfielddesc, usexloc)); @@ -1859,14 +1868,14 @@ { for (xsum = xloc, i = 0; i < nelem; i++) { - float usexloc, useyloc; + t_float usexloc, useyloc; t_gobj *y; if (xonset >= 0) usexloc = basex + xloc + - *(float *)((elem + elemsize * i) + xonset); + *(t_float *)((elem + elemsize * i) + xonset); else usexloc = basex + xsum, xsum += xinc; if (yonset >= 0) - yval = *(float *)((elem + elemsize * i) + yonset); + yval = *(t_float *)((elem + elemsize * i) + yonset); else yval = 0; useyloc = basey + yloc + fielddesc_cvttocoord(yfielddesc, yval); @@ -1908,12 +1917,12 @@ static int plot_click(t_gobj *z, t_glist *glist, t_word *data, t_template *template, t_scalar *sc, t_array *ap, - float basex, float basey, + t_float basex, t_float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit) { t_plot *x = (t_plot *)z; t_symbol *elemtemplatesym; - float linewidth, xloc, xinc, yloc, style, vis, scalarvis; + t_float linewidth, xloc, xinc, yloc, style, vis, scalarvis; t_array *array; t_fielddesc *xfielddesc, *yfielddesc, *wfielddesc; @@ -2049,7 +2058,7 @@ } static void drawnumber_getrect(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int *xp1, int *yp1, int *xp2, int *yp2) { t_drawnumber *x = (t_drawnumber *)z; @@ -2081,14 +2090,14 @@ } static void drawnumber_displace(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int dx, int dy) { /* refuse */ } static void drawnumber_select(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int state) { post("drawnumber_select %d", state); @@ -2096,19 +2105,20 @@ } static void drawnumber_activate(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int state) { post("drawnumber_activate %d", state); } static void drawnumber_vis(t_gobj *z, t_glist *glist, - t_word *data, t_template *template, float basex, float basey, + t_word *data, t_template *template, t_float basex, t_float basey, int vis) { t_drawnumber *x = (t_drawnumber *)z; - if (!fielddesc_getfloat(&x->x_vis, template, data, 0)) + /* see comment in plot_vis() */ + if (vis && !fielddesc_getfloat(&x->x_vis, template, data, 0)) return; if (vis) { @@ -2133,7 +2143,7 @@ else sys_vgui(".x%lx.c delete drawnumber%lx\n", glist_getcanvas(glist), data); } -static float drawnumber_motion_ycumulative; +static t_float drawnumber_motion_ycumulative; static t_glist *drawnumber_motion_glist; static t_scalar *drawnumber_motion_scalar; static t_array *drawnumber_motion_array; @@ -2215,7 +2225,7 @@ else { /* key entry for a numeric field. This is just a stopgap. */ - float newf; + t_float newf; if (drawnumber_motion_firstkey) sbuf[0] = 0; else sprintf(sbuf, "%g", template_getfloat(drawnumber_motion_template, @@ -2248,7 +2258,7 @@ static int drawnumber_click(t_gobj *z, t_glist *glist, t_word *data, t_template *template, t_scalar *sc, t_array *ap, - float basex, float basey, + t_float basex, t_float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit) { t_drawnumber *x = (t_drawnumber *)z; Property changes on: branches/pd-extended/0.41/pd/src/g_template.c ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/g_template.c:9670-10504 /tags/pd/pd-0.41-4/src/g_template.c:9603-9669 /trunk/pd/src/g_template.c:6083-9602 Modified: branches/pd-extended/0.41/pd/src/g_toggle.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_toggle.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_toggle.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -69,7 +69,7 @@ yy+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_lcol, x); + x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", canvas, xx, yy + x->x_gui.x_h-1, xx + IOWIDTH, yy + x->x_gui.x_h, x, 0); @@ -260,7 +260,7 @@ { t_symbol *srl[3]; int a = (int)atom_getintarg(0, argc, argv); - float nonzero = (float)atom_getfloatarg(2, argc, argv); + t_float nonzero = (t_float)atom_getfloatarg(2, argc, argv); int sr_flags; if(nonzero == 0.0) @@ -317,7 +317,7 @@ static void toggle_loadbang(t_toggle *x) { if(!sys_noloadbang && x->x_gui.x_isa.x_loadinit) - toggle_fout(x, (float)x->x_on); + toggle_fout(x, (t_float)x->x_on); } static void toggle_size(t_toggle *x, t_symbol *s, int ac, t_atom *av) @@ -369,7 +369,7 @@ int a=IEM_GUI_DEFAULTSIZE, f=0; int ldx=17, ldy=7; int fs=10; - float on=0.0, nonzero=1.0; + t_float on=0.0, nonzero=1.0; char str[144]; iem_inttosymargs(&x->x_gui.x_isa, 0); @@ -394,11 +394,11 @@ bflcol[0] = (int)atom_getintarg(9, argc, argv); bflcol[1] = (int)atom_getintarg(10, argc, argv); bflcol[2] = (int)atom_getintarg(11, argc, argv); - on = (float)atom_getfloatarg(12, argc, argv); + on = (t_float)atom_getfloatarg(12, argc, argv); } else iemgui_new_getnames(&x->x_gui, 2, 0); if((argc == 14)&&IS_A_FLOAT(argv,13)) - nonzero = (float)atom_getfloatarg(13, argc, argv); + nonzero = (t_float)atom_getfloatarg(13, argc, argv); x->x_gui.x_draw = (t_iemfunptr)toggle_draw; x->x_gui.x_fsf.x_snd_able = 1; Property changes on: branches/pd-extended/0.41/pd/src/g_toggle.c ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/g_toggle.c:9670-10504 /tags/pd/pd-0.41-4/src/g_toggle.c:9603-9669 /trunk/pd/src/g_toggle.c:6083-9602 Modified: branches/pd-extended/0.41/pd/src/g_vdial.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_vdial.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_vdial.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -347,14 +347,14 @@ { if((x->x_change)&&(x->x_on != x->x_on_old)) { - SETFLOAT(x->x_at, (float)x->x_on_old); + SETFLOAT(x->x_at, (t_float)x->x_on_old); SETFLOAT(x->x_at+1, 0.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) pd_list(x->x_gui.x_snd->s_thing, &s_list, 2, x->x_at); } x->x_on_old = x->x_on; - SETFLOAT(x->x_at, (float)x->x_on); + SETFLOAT(x->x_at, (t_float)x->x_on); SETFLOAT(x->x_at+1, 1.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -382,7 +382,7 @@ /* compatibility with earlier "vdial" behavior */ if((x->x_change)&&(i != x->x_on_old)) { - SETFLOAT(x->x_at, (float)x->x_on_old); + SETFLOAT(x->x_at, (t_float)x->x_on_old); SETFLOAT(x->x_at+1, 0.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -393,7 +393,7 @@ x->x_on = i; (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); x->x_on_old = x->x_on; - SETFLOAT(x->x_at, (float)x->x_on); + SETFLOAT(x->x_at, (t_float)x->x_on); SETFLOAT(x->x_at+1, 1.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -426,7 +426,7 @@ { if(x->x_gui.x_fsf.x_put_in2out) { - SETFLOAT(x->x_at, (float)x->x_on_old); + SETFLOAT(x->x_at, (t_float)x->x_on_old); SETFLOAT(x->x_at+1, 0.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -440,7 +440,7 @@ x->x_on_old = x->x_on; if(x->x_gui.x_fsf.x_put_in2out) { - SETFLOAT(x->x_at, (float)x->x_on); + SETFLOAT(x->x_at, (t_float)x->x_on); SETFLOAT(x->x_at+1, 1.0); outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at); if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing) @@ -466,7 +466,7 @@ { int yy = (int)ypos - text_ypix(&x->x_gui.x_obj, x->x_gui.x_glist); - vradio_fout(x, (float)(yy / x->x_gui.x_h)); + vradio_fout(x, (t_float)(yy / x->x_gui.x_h)); } static int vradio_newclick(t_gobj *z, struct _glist *glist, Modified: branches/pd-extended/0.41/pd/src/g_vslider.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_vslider.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_vslider.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -25,7 +25,6 @@ #include <io.h> #endif - /* ------------ vsl gui-vertical slider ----------------------- */ t_widgetbehavior vslider_widgetbehavior; @@ -66,7 +65,7 @@ canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_lcol, x); + x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", canvas, @@ -218,7 +217,7 @@ binbuf_addv(b, "ssiisiiffiisssiiiiiiiii", gensym("#X"),gensym("obj"), (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix, gensym("vsl"), x->x_gui.x_w, x->x_gui.x_h, - (float)x->x_min, (float)x->x_max, + (t_float)x->x_min, (t_float)x->x_max, x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa), srl[0], srl[1], srl[2], x->x_gui.x_ldx, x->x_gui.x_ldy, Property changes on: branches/pd-extended/0.41/pd/src/g_vslider.c ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/g_vslider.c:9670-10504 /tags/pd/pd-0.41-4/src/g_vslider.c:9603-9669 /trunk/pd/src/g_vslider.c:6083-9602 Modified: branches/pd-extended/0.41/pd/src/g_vumeter.c =================================================================== --- branches/pd-extended/0.41/pd/src/g_vumeter.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/g_vumeter.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -145,7 +145,7 @@ canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, - x->x_gui.x_lcol, x); + x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) { sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", @@ -541,7 +541,7 @@ vu_check_height(x, h); if(scale != 0) scale = 1; - vu_scale(x, (float)scale); + vu_scale(x, (t_float)scale); (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_CONFIG); (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_IO + sr_flags); (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_MOVE); @@ -596,7 +596,7 @@ x->x_rms = iemgui_vu_db2i[i]; } i = (int)(100.0*rms + 10000.5); - rms = 0.01*(float)(i - 10000); + rms = 0.01*(t_float)(i - 10000); x->x_fr = rms; outlet_float(x->x_out_rms, rms); x->x_updaterms = 1; @@ -617,7 +617,7 @@ x->x_peak = iemgui_vu_db2i[i]; } i = (int)(100.0*peak + 10000.5); - peak = 0.01*(float)(i - 10000); + peak = 0.01*(t_float)(i - 10000); x->x_fp = peak; x->x_updatepeak = 1; sys_queuegui(x, x->x_gui.x_glist, vu_draw_update); Property changes on: branches/pd-extended/0.41/pd/src/g_vumeter.c ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/g_vumeter.c:9670-10504 /tags/pd/pd-0.41-4/src/g_vumeter.c:9603-9669 /trunk/pd/src/g_vumeter.c:6083-9602 Modified: branches/pd-extended/0.41/pd/src/m_binbuf.c =================================================================== --- branches/pd-extended/0.41/pd/src/m_binbuf.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/m_binbuf.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -725,14 +725,14 @@ case A_SYMBOL: typedmess(target, mstack->a_w.w_symbol, nargs-1, mstack+1); break; - case A_BLOB: /* MP 20070106 blob type */ - if (nargs == 1) pd_blob(target, stackwas->a_w.w_blob); - else pd_list(target, 0, nargs, stackwas); - break; case A_FLOAT: if (nargs == 1) pd_float(target, mstack->a_w.w_float); else pd_list(target, 0, nargs, mstack); break; + case A_BLOB: /* MP 20070106 blob type */ + if (nargs == 1) pd_blob(target, mstack->a_w.w_blob); + else pd_list(target, 0, nargs, mstack); + break; } } msp = mstack; Modified: branches/pd-extended/0.41/pd/src/m_obj.c =================================================================== --- branches/pd-extended/0.41/pd/src/m_obj.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/m_obj.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -16,7 +16,7 @@ t_float *iu_floatslot; t_symbol **iu_symslot; t_blob **iu_blobslot; /* MP 20061226 blob type */ - t_sample iu_floatsignalvalue; + t_float iu_floatsignalvalue; }; struct _inlet @@ -290,14 +290,17 @@ pointerinlet_class = class_new(gensym("inlet"), 0, 0, sizeof(t_inlet), CLASS_PD, 0); class_addpointer(pointerinlet_class, pointerinlet_pointer); - + class_addanything(pointerinlet_class, inlet_wrong); + floatinlet_class = class_new(gensym("inlet"), 0, 0, sizeof(t_inlet), CLASS_PD, 0); class_addfloat(floatinlet_class, (t_method)floatinlet_float); + class_addanything(floatinlet_class, inlet_wrong); symbolinlet_class = class_new(gensym("inlet"), 0, 0, sizeof(t_inlet), CLASS_PD, 0); class_addsymbol(symbolinlet_class, symbolinlet_symbol); + class_addanything(symbolinlet_class, inlet_wrong); } @@ -709,7 +712,7 @@ return (o2 && (o2->o_sym == &s_signal)); } -t_sample *obj_findsignalscalar(t_object *x, int m) +t_float *obj_findsignalscalar(t_object *x, int m) { int n = 0; t_inlet *i; @@ -717,7 +720,7 @@ { if (!m--) return (x->ob_pd->c_floatsignalin > 0 ? - (t_sample *)(((char *)x) + x->ob_pd->c_floatsignalin) : 0); + (t_float *)(((char *)x) + x->ob_pd->c_floatsignalin) : 0); n++; } for (i = x->ob_inlet; i; i = i->i_next, m--) Property changes on: branches/pd-extended/0.41/pd/src/makefile.in ___________________________________________________________________ Added: svn:mergeinfo + /tags/pd/0.41-4/src/makefile.in:9670-10505 /tags/pd/pd-0.41-4/src/makefile.in:9603-9669 /trunk/pd/src/makefile.in:6083-9602 Modified: branches/pd-extended/0.41/pd/src/s_audio_jack.c =================================================================== --- branches/pd-extended/0.41/pd/src/s_audio_jack.c 2009-01-10 19:00:24 UTC (rev 10505) +++ branches/pd-extended/0.41/pd/src/s_audio_jack.c 2009-01-10 19:43:17 UTC (rev 10506) @@ -18,8 +18,8 @@ static jack_nframes_t jack_out_max; #define JACK_OUT_MAX 64 static jack_nframes_t jack_filled = 0; -static float jack_outbuf[NUM_JACK_PORTS*BUF_JACK]; -static float jack_inbuf[NUM_JACK_PORTS*BUF_JACK]; +static t_sample jack_outbuf[NUM_JACK_PORTS*BUF_JACK]; +static t_sample jack_inbuf[NUM_JACK_PORTS*BUF_JACK]; static int jack_started = 0; @@ -39,22 +39,42 @@ process (jack_nframes_t nframes, void *arg) { int j; - float *out; - float *in; + jack_default_audio_sample_t *out, *in; - if (nframes > JACK_OUT_MAX) jack_out_max = nframes; else jack_out_max = JACK_OUT_MAX; if (jack_filled >= nframes) { if (jack_filled != nframes) fprintf(stderr,"Partial read"); - - for (j = 0; j < sys_outchannels; j++) { + /* hmm, how to find out whether 't_sample' and 'jack_default_audio_sample_t' are actually the same type??? */ + if(sizeof(t_sample)==sizeof(jack_default_audio_sample_t)) + { + for (j = 0; j < sys_outchannels; j++) { out = jack_port_get_buffer (output_port[j], nframes); - memcpy(out, jack_outbuf + (j * BUF_JACK), sizeof (float) * nframes); - } - for (j = 0; j < sys_inchannels; j++) { + memcpy(out, jack_outbuf + (j * BUF_JACK), sizeof (jack_default_audio_sample_t) * nframes); + } + for (j = 0; j < sys_inchannels; j++) { in = jack_port_get_buffer( input_port[j], nframes); - memcpy(jack_inbuf + (j * BUF_JACK), in, sizeof (float) * nframes); + memcpy(jack_inbuf + (j * BUF_JACK), in, sizeof (jack_default_audio_sample_t) * nframes); + } + } + else + { + unsigned int frame=0; + t_sample*data; + for (j = 0; j < sys_outchannels; j++) { + out = jack_port_get_buffer (output_port[j], nframes); + data=jack_outbuf + (j * BUF_JACK); + for(frame=0; frame<nframes; frame++) { + *out++=*data++; + } + } + for (j = 0; j < sys_inchannels; j++) { + in = jack_port_get_buffer( input_port[j], nframes); + data=jack_inbuf+(j*BUF_JACK); + for(frame=0; frame<nframes; frame++) { + *data++=*in++; + } + } } jack_filled -= nframes; } else { /* PD could not keep up ! */ @@ -351,7 +371,7 @@ int jack_send_dacs(void) { - float * fp; + t_sample * fp; int j; int rtnval = SENDDACS_YES; int timenow; @@ -372,12 +392,12 @@ fp = sys_soundout; for (j = 0; j < sys_outchannels; j++) { - memcpy(jack_outbuf + (j * BUF_JACK) + jack_filled,fp, DEFDACBLKSIZE*sizeof(float)); + memcpy(jack_outbuf + (j * BUF_JACK) + jack_filled,fp, DEFDACBLKSIZE*sizeof(t_sample)); @@ Diff output truncated at 100000 characters. @@ This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10505] trunk/externals/hcs/version.c
by eighthave@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10505
http://pure-data.svn.sourceforge.net/pure-data/?rev=10505&view=rev
Author: eighthave Date: 2009-01-10 19:00:24 +0000 (Sat, 10 Jan 2009) Log Message: ----------- joining the new 0.41 f_float militancy :D Modified Paths: -------------- trunk/externals/hcs/version.c Modified: trunk/externals/hcs/version.c =================================================================== --- trunk/externals/hcs/version.c 2009-01-10 18:46:24 UTC (rev 10504) +++ trunk/externals/hcs/version.c 2009-01-10 19:00:24 UTC (rev 10505) @@ -52,9 +52,9 @@ DEBUG(post("version_output");); t_atom version_data[6]; - SETFLOAT(version_data, (float) PD_MAJOR_VERSION); - SETFLOAT(version_data + 1, (float) PD_MINOR_VERSION); - SETFLOAT(version_data + 2, (float) PD_BUGFIX_VERSION); + SETFLOAT(version_data, (t_float) PD_MAJOR_VERSION); + SETFLOAT(version_data + 1, (t_float) PD_MINOR_VERSION); + SETFLOAT(version_data + 2, (t_float) PD_BUGFIX_VERSION); SETSYMBOL(version_data + 3, gensym(PD_TEST_VERSION)); SETSYMBOL(version_data + 4, gensym(__DATE__)); SETSYMBOL(version_data + 5, gensym(__TIME__)); This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10504] trunk/abstractions/ds-gui/ds-slider-help.pd
by lukeiannini@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10504
http://pure-data.svn.sourceforge.net/pure-data/?rev=10504&view=rev
Author: lukeiannini Date: 2009-01-10 18:46:24 +0000 (Sat, 10 Jan 2009) Log Message: ----------- oops again Modified Paths: -------------- trunk/abstractions/ds-gui/ds-slider-help.pd Modified: trunk/abstractions/ds-gui/ds-slider-help.pd =================================================================== --- trunk/abstractions/ds-gui/ds-slider-help.pd 2009-01-10 18:40:27 UTC (rev 10503) +++ trunk/abstractions/ds-gui/ds-slider-help.pd 2009-01-10 18:46:24 UTC (rev 10504) @@ -1,5 +1,5 @@ -#N struct 1003.advslider float a; +#N struct 1015.advslider float a; #N canvas 0 22 450 300 10; #X floatatom 275 273 5 0 0 0 - - -; -#X obj 275 41 ds-slider2; +#X obj 275 41 ds-slider; #X connect 1 0 0 0; This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10503] trunk/abstractions
by lukeiannini@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10503
http://pure-data.svn.sourceforge.net/pure-data/?rev=10503&view=rev
Author: lukeiannini Date: 2009-01-10 18:40:27 +0000 (Sat, 10 Jan 2009) Log Message: ----------- starting ds-gui library Added Paths: ----------- trunk/abstractions/ds-gui/ trunk/abstractions/ds-gui/ds-slider-help.pd trunk/abstractions/ds-gui/ds-slider.pd trunk/abstractions/ds-gui/gswitch-help.pd trunk/abstractions/ds-gui/gswitch.pd Added: trunk/abstractions/ds-gui/ds-slider-help.pd =================================================================== --- trunk/abstractions/ds-gui/ds-slider-help.pd (rev 0) +++ trunk/abstractions/ds-gui/ds-slider-help.pd 2009-01-10 18:40:27 UTC (rev 10503) @@ -0,0 +1,5 @@ +#N struct 1003.advslider float a; +#N canvas 0 22 450 300 10; +#X floatatom 275 273 5 0 0 0 - - -; +#X obj 275 41 ds-slider2; +#X connect 1 0 0 0; Added: trunk/abstractions/ds-gui/ds-slider.pd =================================================================== --- trunk/abstractions/ds-gui/ds-slider.pd (rev 0) +++ trunk/abstractions/ds-gui/ds-slider.pd 2009-01-10 18:40:27 UTC (rev 10503) @@ -0,0 +1,79 @@ +#N struct 1003.advslider float a; +#N canvas 612 163 475 427 10; +#N canvas 676 67 729 456 advslider 0; +#X obj 31 23 struct \$0.advslider float a; +#X obj 31 50 route click change; +#X msg 168 318 traverse pd-\$1.gop \, bang; +#X obj 168 339 pointer; +#X obj 99 365 append \$0.advslider a; +#X msg 99 340 0; +#X obj 80 248 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 121 302 \$0; +#X obj 91 75 get \$0.advslider a; +#X obj 90 122 outlet; +#X obj 99 248 loadbang; +#X obj 80 271 t b b b b; +#X msg 159 271 clear; +#X obj 205 271 s pd-\$0.gop; +#X obj 81 389 \$0; +#X msg 81 411 \; pd-\$1.gop donecanvasdialog 0 -1 2 0 0 30 200 30 200 +0 0 \;; +#X obj 244 97 filledpolygon 955 553 3 0 0 30 0 30 210 0 210; +#X obj 244 127 filledpolygon 595 535 3 0 a(0:200) 10 a(0:200) 15 a(0:200) +20 a(0:200) 30 a(0:200) 30 a(0:200)(10:210) 20 a(0:200)(10:210) 15 +a(0:200)(10:210) 10 a(0:200)(10:210) 0 a(0:200)(10:210); +#X obj 247 193 drawnumber a 5 a(0:200) 133; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 1 1 8 0; +#X connect 2 0 3 0; +#X connect 3 0 4 1; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 7 0 2 0; +#X connect 8 0 9 0; +#X connect 10 0 11 0; +#X connect 11 0 14 0; +#X connect 11 1 5 0; +#X connect 11 2 7 0; +#X connect 11 3 12 0; +#X connect 12 0 13 0; +#X connect 14 0 15 0; +#X restore 150 49 pd advslider; +#N canvas 72 231 459 309 \$0.gop 0; +#X scalar 1003.advslider 39 \;; +#X coords 0 0 30 200 30 200 1; +#X restore 102 101 pd \$0.gop; +#X obj 151 109 outlet; +#X obj 203 200 propertybang; +#X msg 203 224 vis 1; +#N canvas 34 48 213 497 \$0.properties 1; +#X obj 31 36 nbx 5 14 -1e+37 1e+37 0 0 empty empty width 0 -8 0 10 +-262144 -1 -1 0 256; +#X obj 111 36 nbx 5 14 -1e+37 1e+37 0 0 empty empty height 0 -8 0 10 +-262144 -1 -1 0 256; +#X obj 31 96 nbx 5 14 -1e+37 1e+37 0 0 empty empty bottom 0 -8 0 10 +-262144 -1 -1 0 256; +#X obj 111 96 nbx 5 14 -1e+37 1e+37 0 0 empty empty top 0 -8 0 10 -262144 +-1 -1 0 256; +#X symbolatom 16 261 30 0 0 2 label - -; +#X obj 78 436 bng 40 250 50 0 empty empty OK 10 20 0 20 -204800 -1 +-1; +#X symbolatom 76 141 20 0 0 2 send-name - -; +#X symbolatom 76 191 20 0 0 2 receive-name - -; +#X obj 13 141 tgl 15 0 empty empty $ 17 7 0 12 -262144 -1 -1 0 1; +#X obj 39 141 nbx 1 15 0 9 0 0 empty empty empty 0 -8 0 10 -262144 +-1 -1 0 256; +#X obj 13 191 tgl 15 0 empty empty $ 17 7 0 12 -262144 -1 -1 0 1; +#X obj 39 191 nbx 1 15 0 9 0 0 empty empty empty 0 -8 0 10 -262144 +-1 -1 0 256; +#X obj 71 304 color.rgbset; +#X restore 198 316 pd \$0.properties; +#X obj 203 248 s pd-\$0.properties; +#X obj 345 91 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144 +-1 -1 0 1; +#X connect 0 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X coords 0 -1 1 1 33 213 2 100 100; Added: trunk/abstractions/ds-gui/gswitch-help.pd =================================================================== --- trunk/abstractions/ds-gui/gswitch-help.pd (rev 0) +++ trunk/abstractions/ds-gui/gswitch-help.pd 2009-01-10 18:40:27 UTC (rev 10503) @@ -0,0 +1,18 @@ +#N struct 1010-gswitch float a; +#N canvas 0 22 267 242 12; +#X obj 57 81 gswitch; +#X obj 27 27 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X floatatom 75 25 5 0 0 0 - - -; +#X floatatom 128 25 5 0 0 0 - - -; +#X floatatom 57 126 5 0 0 0 - - -; +#X floatatom 57 153 5 0 0 0 - - -; +#X msg 139 61 set 42; +#X text 123 90 <-- click me; +#X text 42 202 2009 Jonathan Wilkes; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 0 2; +#X connect 4 0 5 0; +#X connect 6 0 0 2; Property changes on: trunk/abstractions/ds-gui/gswitch-help.pd ___________________________________________________________________ Added: svn:executable + * Added: trunk/abstractions/ds-gui/gswitch.pd =================================================================== --- trunk/abstractions/ds-gui/gswitch.pd (rev 0) +++ trunk/abstractions/ds-gui/gswitch.pd 2009-01-10 18:40:27 UTC (rev 10503) @@ -0,0 +1,78 @@ +#N struct 1029-gswitch float a float b float c; +#N canvas 0 0 450 300 12; +#N canvas 185 101 812 463 gswitch 1; +#X obj 75 35 route click; +#X obj 75 61 unpack p; +#X obj 75 91 t b a; +#X obj 75 150 == 0; +#X obj 8 7 inlet; +#X obj 8 234 outlet; +#X obj 349 416 pointer; +#X obj 303 276 loadbang; +#X obj 303 301 list prepend pd- \$0; +#X obj 303 326 t a b a a; +#X msg 349 391 traverse \$1\$2-gop \, bang; +#X msg 372 350 \; \$1\$2-gop clear; +#X msg 303 466 \; \$1\$2-gop donecanvasdialog 0 -1 2 0 0 44 35 44 35 +0 0 \;; +#X obj 75 123 f 1; +#X obj 75 178 sel 0 1; +#X msg 200 415 0; +#X msg 75 204 14; +#X msg 129 203 0; +#X obj 75 5 struct \$0-gswitch float a; +#X obj 200 441 append \$0-gswitch a; +#X obj 75 234 set \$0-gswitch a; +#X obj 225 110 filledpolygon 555 555 7 5 5 39 5 39 30 5 30; +#X obj 226 60 filledcurve 999 999 1 34 6 38 6 38 10 34 10; +#X obj 226 85 filledcurve 999 999 1 20 6 24 6 24 10 20 10; +#X obj 225 135 drawpolygon 0 2 8 34 8 2 8 18 23 18 a(0:14)(23:37) 18 +a(0:14)(23:37) 11; +#X obj 226 35 filledcurve 999 999 1 6 25 10 25 10 29 6 29; +#X obj 225 201 drawpolygon 0 2 37 6 37 2; +#X obj 225 176 drawpolygon 0 2 23 6 23 2; +#X obj 225 226 drawpolygon 555 2 7 5 11 5 11 9 5 9 5 13 11 13; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 13 0; +#X connect 3 0 5 0; +#X connect 3 0 13 1; +#X connect 3 0 14 0; +#X connect 4 0 13 0; +#X connect 6 0 19 1; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 12 0; +#X connect 9 1 15 0; +#X connect 9 2 10 0; +#X connect 9 3 11 0; +#X connect 10 0 6 0; +#X connect 13 0 3 0; +#X connect 14 0 16 0; +#X connect 14 1 17 0; +#X connect 15 0 19 0; +#X connect 16 0 20 0; +#X connect 17 0 20 0; +#X connect 18 0 0 0; +#X connect 19 0 20 1; +#X restore 80 54 pd gswitch; +#X obj 80 12 inlet; +#N canvas 532 8 450 300 \$0-gop 0; +#X scalar 1029-gswitch 0 0 0 \;; +#X coords 0 0 44 35 44 35 1; +#X restore 0 0 pd \$0-gop; +#X obj 213 54 inlet; +#X obj 309 54 inlet; +#X obj 213 218 outlet; +#X obj 309 142 spigot; +#X obj 354 113 == 0; +#X obj 213 142 spigot 1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 1 0 0 0; +#X connect 3 0 8 0; +#X connect 4 0 6 0; +#X connect 6 0 5 0; +#X connect 7 0 6 1; +#X connect 8 0 5 0; +#X coords 0 0 1 1 44 35 2 0 0; Property changes on: trunk/abstractions/ds-gui/gswitch.pd ___________________________________________________________________ Added: svn:executable + * This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10502] trunk/externals/iem/iemmatrix
by fzotter@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10502
http://pure-data.svn.sourceforge.net/pure-data/?rev=10502&view=rev
Author: fzotter Date: 2009-01-10 18:33:39 +0000 (Sat, 10 Jan 2009) Log Message: ----------- added [mtx_eig] to compute eigenvalues and eigenvectors using GSL. Something seems to be wrong with the eigenvectors: result differs from GNU octave result. Modified Paths: -------------- trunk/externals/iem/iemmatrix/src/mtx_svd.c Added Paths: ----------- trunk/externals/iem/iemmatrix/doc/mtx_eig-help.pd trunk/externals/iem/iemmatrix/src/mtx_eig.c Added: trunk/externals/iem/iemmatrix/doc/mtx_eig-help.pd =================================================================== --- trunk/externals/iem/iemmatrix/doc/mtx_eig-help.pd (rev 0) +++ trunk/externals/iem/iemmatrix/doc/mtx_eig-help.pd 2009-01-10 18:33:39 UTC (rev 10502) @@ -0,0 +1,35 @@ +#N canvas 0 0 710 531 10; +#X obj 82 93 mtx_eig; +#X obj 82 66 mtx_rand; +#X obj 82 146 print l_re; +#X obj 128 124 print l_im; +#X msg 82 38 3; +#X obj 221 61 mtx_rand; +#X msg 221 33 3; +#X obj 230 119 mtx_eig v; +#X obj 230 192 print l_re; +#X obj 250 171 print l_im; +#X obj 314 193 mtx_print Q_re; +#X obj 335 171 mtx_print Q_im; +#X obj 230 98 t a a; +#X obj 375 123 mtx_print A; +#X msg 350 56 matrix 2 2 1 1 -1 2; +#X text 61 -33 [mtx_eig] computes (complex valued) eigenvalues \, and +if desired eigenvectors of a matrix.; +#X text 425 21 requires GSL; +#X text 212 276 Franz Zotter \, 2009; +#X text 98 238 Attention: eigenvectors seem to be wrong. Don't know +why!; +#X connect 0 0 2 0; +#X connect 0 1 3 0; +#X connect 1 0 0 0; +#X connect 4 0 1 0; +#X connect 5 0 12 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 7 2 10 0; +#X connect 7 3 11 0; +#X connect 12 0 7 0; +#X connect 12 1 13 0; +#X connect 14 0 12 0; Added: trunk/externals/iem/iemmatrix/src/mtx_eig.c =================================================================== --- trunk/externals/iem/iemmatrix/src/mtx_eig.c (rev 0) +++ trunk/externals/iem/iemmatrix/src/mtx_eig.c 2009-01-10 18:33:39 UTC (rev 10502) @@ -0,0 +1,227 @@ +/* + * iemmatrix + * + * objects for manipulating simple matrices + * mostly refering to matlab/octave matrix functions + * this functions depends on the GNU scientific library + * + * Copyright (c) 2009, Franz Zotter + * IEM, Graz, Austria + * + * For information on usage and redistribution, and for a DISCLAIMER OF ALL + * WARRANTIES, see the file, "LICENSE.txt," in this distribution. + * + */ + +#include "iemmatrix.h" +#include <stdlib.h> + +#ifdef HAVE_LIBGSL +#include <gsl/gsl_eigen.h> +#endif + +static t_class *mtx_eig_class; +enum WithEigenVectors {WITHEVS=1, WITHOUTEVS=0}; +typedef struct _MTXEig_ MTXEig; +struct _MTXEig_ +{ + t_object x_obj; +#ifdef HAVE_LIBGSL + gsl_matrix *a; + gsl_matrix_complex *q; + gsl_vector_complex *l; + gsl_eigen_nonsymm_workspace *w; + gsl_eigen_nonsymmv_workspace *wv; +#endif + t_outlet *list_q_out_re; + t_outlet *list_q_out_im; + t_outlet *list_l_out_re; + t_outlet *list_l_out_im; + t_atom *list_q_re; + t_atom *list_q_im; + t_atom *list_l_re; + t_atom *list_l_im; + int size; + enum WithEigenVectors withevs; +}; + +#ifdef HAVE_LIBGSL +static void allocMTXqlw (MTXEig *x) +{ + x->a=(gsl_matrix*)gsl_matrix_alloc(x->size,x->size); + x->l=(gsl_vector_complex*)gsl_vector_complex_alloc(x->size); + + switch (x->withevs) { + case WITHEVS: + x->wv=(gsl_eigen_nonsymmv_workspace*)gsl_eigen_nonsymmv_alloc(x->size); + x->q=(gsl_matrix_complex*)gsl_matrix_complex_alloc(x->size,x->size); + break; + case WITHOUTEVS: + x->w=(gsl_eigen_nonsymm_workspace*)gsl_eigen_nonsymm_alloc(x->size); + } + + x->list_q_re=(t_atom*)calloc(sizeof(t_atom),x->size*x->size+2); + x->list_q_im=(t_atom*)calloc(sizeof(t_atom),x->size*x->size+2); + x->list_l_re=(t_atom*)calloc(sizeof(t_atom),x->size); + x->list_l_im=(t_atom*)calloc(sizeof(t_atom),x->size); +} + +static void deleteMTXqlw (MTXEig *x) +{ + if (x->list_q_re!=0) + free(x->list_q_re); + if (x->list_q_im!=0) + free(x->list_q_im); + if (x->list_l_re!=0) + free(x->list_l_re); + if (x->list_l_im!=0) + free(x->list_l_im); + + x->list_q_re = 0; + x->list_q_im = 0; + x->list_l_re = 0; + x->list_l_im = 0; + + if (x->a!=0) + gsl_matrix_free(x->a); + if (x->q!=0) + gsl_matrix_complex_free(x->q); + if (x->l!=0) + gsl_vector_complex_free(x->l); + if (x->w!=0) + gsl_eigen_nonsymm_free(x->w); + if (x->wv!=0) + gsl_eigen_nonsymmv_free(x->wv); + + x->a = 0; + x->q = 0; + x->l = 0; + x->w = 0; + x->wv = 0; +} +#endif + +static void deleteMTXEig (MTXEig *x) +{ +#ifdef HAVE_LIBGSL + deleteMTXqlw(x); +#endif +} + +static void *newMTXEig (t_symbol *s, int argc, t_atom *argv) +{ + MTXEig *x = (MTXEig *) pd_new (mtx_eig_class); + + x->list_l_out_re = outlet_new (&x->x_obj, gensym("list")); + x->list_l_out_im = outlet_new (&x->x_obj, gensym("list")); + if (atom_getsymbol(argv)==gensym("v")) { + x->withevs=1; + x->list_q_out_re = outlet_new (&x->x_obj, gensym("matrix")); + x->list_q_out_im = outlet_new (&x->x_obj, gensym("matrix")); + } + + x->list_l_re = 0; + x->list_l_im = 0; + x->list_q_re = 0; + x->list_q_im = 0; +#ifdef HAVE_LIBGSL + x->a=0; + x->q=0; + x->l=0; + x->w=0; + x->wv=0; +#endif + + return ((void *) x); +} + +static void mTXEigBang (MTXEig *x) +{ + if (x->list_l_re) { + switch (x->withevs) { + case WITHEVS: + outlet_anything(x->list_q_out_im, gensym("matrix"), x->size*x->size+2, x->list_q_im); + outlet_anything(x->list_q_out_re, gensym("matrix"), x->size*x->size+2, x->list_q_re); + case WITHOUTEVS: + outlet_anything(x->list_l_out_im, gensym("list"), x->size, x->list_l_im); + outlet_anything(x->list_l_out_re, gensym("list"), x->size, x->list_l_re); + } + } +} + +static void mTXEigMatrix (MTXEig *x, t_symbol *s, + int argc, t_atom *argv) +{ + int rows = atom_getint (argv++); + int columns = atom_getint (argv++); + int size = rows * columns; + int in_size = argc-2; + int n,m; + float f; + +#ifdef HAVE_LIBGSL + gsl_complex c; + /* size check */ + if (!size) + post("mtx_eig: invalid dimensions"); + else if (in_size<size) + post("mtx_eig: sparse matrix not yet supported: use \"mtx_check\""); + else if (rows!=columns) + post("mtx_eig: Eigendecomposition works for square matrices only!"); + else { + size=rows; + x->size=size; + + deleteMTXqlw(x); + allocMTXqlw(x); + + for (n=0;n<in_size;n++) + x->a->data[n]=(double) atom_getfloat(argv++); + + switch (x->withevs) { + case WITHOUTEVS: + gsl_eigen_nonsymm(x->a,x->l,x->w); + break; + case WITHEVS: + gsl_eigen_nonsymmv(x->a,x->l,x->q,x->wv); + SETFLOAT((x->list_q_re),(float) x->size); + SETFLOAT((x->list_q_im),(float) x->size); + SETFLOAT((x->list_q_re+1),(float) x->size); + SETFLOAT((x->list_q_im+1),(float) x->size); + for (n=0;n<in_size;n++) { + SETFLOAT((x->list_q_im+2+n), (float) x->q->data[2*n+1]); + SETFLOAT((x->list_q_re+2+n), (float) x->q->data[2*n]); + } + break; + } + + for (n=0;n<x->size;n++) { + f=(float) GSL_VECTOR_IMAG(x->l, n); + SETFLOAT((x->list_l_im+n), f); + f=(float) GSL_VECTOR_REAL(x->l, n); + SETFLOAT((x->list_l_re+n), f); + } + + mTXEigBang(x); + } +#else + post("mtx_eig: implementation requires gsl"); +#endif + +} + +void mtx_eig_setup (void) +{ + mtx_eig_class = class_new + (gensym("mtx_eig"), + (t_newmethod) newMTXEig, + (t_method) deleteMTXEig, + sizeof (MTXEig), + CLASS_DEFAULT, A_GIMME, 0); + class_addbang (mtx_eig_class, (t_method) mTXEigBang); + class_addmethod (mtx_eig_class, (t_method) mTXEigMatrix, gensym("matrix"), A_GIMME,0); +} + +void iemtx_eig_setup(void){ + mtx_eig_setup(); +} Modified: trunk/externals/iem/iemmatrix/src/mtx_svd.c =================================================================== --- trunk/externals/iem/iemmatrix/src/mtx_svd.c 2009-01-10 17:23:46 UTC (rev 10501) +++ trunk/externals/iem/iemmatrix/src/mtx_svd.c 2009-01-10 18:33:39 UTC (rev 10502) @@ -3,8 +3,9 @@ * * objects for manipulating simple matrices * mostly refering to matlab/octave matrix functions + * this functions depends on the GNU scientific library * - * Copyright (c) 2008, Franz Zotter + * Copyright (c) 2009, Franz Zotter * IEM, Graz, Austria * * For information on usage and redistribution, and for a DISCLAIMER OF ALL @@ -149,16 +150,16 @@ SETFLOAT((x->list_u),(float) x->rows); SETFLOAT((x->list_u+1),(float) x->columns); for (n=0;n<in_size;n++) - SETFLOAT((x->list_u+2+n), x->u->data[n]); + SETFLOAT((x->list_u+2+n), (float) x->u->data[n]); for (n=0;n<x->columns;n++) - SETFLOAT((x->list_s+n), x->s->data[n]); + SETFLOAT((x->list_s+n),(float) x->s->data[n]); SETFLOAT((x->list_v),(float) x->columns); SETFLOAT((x->list_v+1),(float) x->columns); in_size=x->columns*x->columns; for (n=0;n<in_size;n++) - SETFLOAT((x->list_v+n+2), x->v->data[n]); + SETFLOAT((x->list_v+n+2), (float) x->v->data[n]); mTXSvdBang(x); } This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10501] branches/pd-devel/0.41.4/src/s_inter.c
by federico__@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10501
http://pure-data.svn.sourceforge.net/pure-data/?rev=10501&view=rev
Author: federico__ Date: 2009-01-10 17:23:46 +0000 (Sat, 10 Jan 2009) Log Message: ----------- fix launch of pd gui (pd.tk) on Linux Modified Paths: -------------- branches/pd-devel/0.41.4/src/s_inter.c Modified: branches/pd-devel/0.41.4/src/s_inter.c =================================================================== --- branches/pd-devel/0.41.4/src/s_inter.c 2009-01-10 17:02:36 UTC (rev 10500) +++ branches/pd-devel/0.41.4/src/s_inter.c 2009-01-10 17:23:46 UTC (rev 10501) @@ -1079,7 +1079,7 @@ #else sprintf(cmdbuf, "TCL_LIBRARY=\"%s/tcl/library\" TK_LIBRARY=\"%s/tk/library\" \ - \"%s/pd-gui\" %d\n", + wish \"%s/pd.tk\" %d\n", sys_libdir->s_name, sys_libdir->s_name, guidir, portno); #endif sys_guicmd = cmdbuf; This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10500] branches/pd-devel/0.41.4/src
by eighthave@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10500
http://pure-data.svn.sourceforge.net/pure-data/?rev=10500&view=rev
Author: eighthave Date: 2009-01-10 17:02:36 +0000 (Sat, 10 Jan 2009) Log Message: ----------- - if Tcl < 8.4.14, then create the preferences on the .apple menu on 8.4.14 or later, it is created automatically and tied to ::tk::mac::ShowPreferences Modified Paths: -------------- branches/pd-devel/0.41.4/src/pd.tk branches/pd-devel/0.41.4/src/pd_menucommands.tcl branches/pd-devel/0.41.4/src/pd_menus.tcl branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl Modified: branches/pd-devel/0.41.4/src/pd.tk =================================================================== --- branches/pd-devel/0.41.4/src/pd.tk 2009-01-10 05:47:05 UTC (rev 10499) +++ branches/pd-devel/0.41.4/src/pd.tk 2009-01-10 17:02:36 UTC (rev 10500) @@ -121,10 +121,9 @@ # the popup menu for the canvas menu $name.popup -tearoff false - $name.popup add command -label "Properties" -command {popup_action $name 0} - $name.popup add command -label "Open" -command {popup_action $name 1} - $name.popup add command -label "Help" -command {popup_action $name 2} - + $name.popup add command -label "Properties" -command "popup_action $name 0" + $name.popup add command -label "Open" -command "popup_action $name 1" + $name.popup add command -label "Help" -command "popup_action $name 2" } # ------------------------------------------------------------------------------ Modified: branches/pd-devel/0.41.4/src/pd_menucommands.tcl =================================================================== --- branches/pd-devel/0.41.4/src/pd_menucommands.tcl 2009-01-10 05:47:05 UTC (rev 10499) +++ branches/pd-devel/0.41.4/src/pd_menucommands.tcl 2009-01-10 17:02:36 UTC (rev 10500) @@ -8,6 +8,7 @@ variable untitled_directory [pwd] namespace export menu_* + } # ------------------------------------------------------------------------------ Modified: branches/pd-devel/0.41.4/src/pd_menus.tcl =================================================================== --- branches/pd-devel/0.41.4/src/pd_menus.tcl 2009-01-10 05:47:05 UTC (rev 10499) +++ branches/pd-devel/0.41.4/src/pd_menus.tcl 2009-01-10 17:02:36 UTC (rev 10500) @@ -289,11 +289,16 @@ proc ::pd_menus::make_apple_menu {rootmenu} { puts stderr CREATE_APPLE_MENU # TODO this should open a Pd patch called about.pd - menu .menubar.apple - .menubar.apple add command -label [say "About Pd"] -command \ - "menu_doc_open doc/1.manual 1.introduction.txt" - .menubar add cascade -label "Apple" -menu .menubar.apple - # TODO WTF?!? the preferences menu never shows up! + menu $rootmenu.apple + $rootmenu.apple add command -label [say "About Pd"] \ + -command "menu_doc_open doc/1.manual 1.introduction.txt" + $rootmenu add cascade -label "Apple" -menu $rootmenu.apple + # starting in 8.4.14, this is created automatically + if {[regsub -- {[0-9]\.[0-9]\.([0-9][0-9]*)} [info patchlevel] {\1}] < 14} { + $rootmenu.apple add separator + $rootmenu.apple add command -label [say "Preferences..."] \ + -command "menu_preferences" -accelerator "Cmd+," + } } # for Windows only Modified: branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl =================================================================== --- branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl 2009-01-10 05:47:05 UTC (rev 10499) +++ branches/pd-devel/0.41.4/src/wheredoesthisgo.tcl 2009-01-10 17:02:36 UTC (rev 10500) @@ -21,7 +21,18 @@ } +set pd_opendir [pwd] +proc open_file {filename} { + global pd_opendir + set directory [string range $filename 0 [expr [string last / $filename] - 1]] + set pd_opendir $directory + set basename [string range $filename [expr [string last / $filename] + 1] end] + if {[string last .pd $filename] >= 0} { + pd "pd open [pdtk_enquote $basename] [pdtk_enquote $directory] ;" + } +} + # ------------------------------------------------------------------------------ # kludges to avoid changing C code This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10499] trunk/packages/patches/ fix_absolute_paths_for_declare-0.41.4.patch
by eighthave@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10499
http://pure-data.svn.sourceforge.net/pure-data/?rev=10499&view=rev
Author: eighthave Date: 2009-01-10 05:47:05 +0000 (Sat, 10 Jan 2009) Log Message: ----------- /partially/ accepted into 0.42... sigh Removed Paths: ------------- trunk/packages/patches/fix_absolute_paths_for_declare-0.41.4.patch Deleted: trunk/packages/patches/fix_absolute_paths_for_declare-0.41.4.patch =================================================================== --- trunk/packages/patches/fix_absolute_paths_for_declare-0.41.4.patch 2009-01-10 04:52:15 UTC (rev 10498) +++ trunk/packages/patches/fix_absolute_paths_for_declare-0.41.4.patch 2009-01-10 05:47:05 UTC (rev 10499) @@ -1,174 +0,0 @@ -Index: m_pd.h -=================================================================== ---- m_pd.h (revision 9862) -+++ m_pd.h (working copy) -@@ -457,6 +457,7 @@ - - /* ------------ system interface routines ------------------- */ - EXTERN int sys_isreadablefile(const char *name); -+EXTERN int sys_isabsolutepath(const char *dir); - EXTERN void sys_bashfilename(const char *from, char *to); - EXTERN void sys_unbashfilename(const char *from, char *to); - EXTERN int open_via_path(const char *name, const char *ext, const char *dir, -Index: s_main.c -=================================================================== ---- s_main.c (revision 9862) -+++ s_main.c (working copy) -@@ -491,28 +491,29 @@ - sys_libdir = gensym(sbuf2); - sys_guidir = &s_; /* in MSW the guipath just depends on the libdir */ - #else -- strncpy(sbuf, sbuf2, MAXPDSTRING-30); -+ realpath(sbuf2, sbuf); -+ strncpy(sbuf2, sbuf, MAXPDSTRING-30); - sbuf[MAXPDSTRING-30] = 0; -- strcat(sbuf, "/lib/pd"); -- if (stat(sbuf, &statbuf) >= 0) -+ strcat(sbuf2, "/lib/pd"); -+ if (stat(sbuf2, &statbuf) >= 0) - { - /* complicated layout: lib dir is the one we just stat-ed above */ -- sys_libdir = gensym(sbuf); -+ sys_libdir = gensym(sbuf2); - /* gui lives in .../lib/pd/bin */ -- strncpy(sbuf, sbuf2, MAXPDSTRING-30); -+ strncpy(sbuf2, sbuf, MAXPDSTRING-30); - sbuf[MAXPDSTRING-30] = 0; -- strcat(sbuf, "/lib/pd/bin"); -- sys_guidir = gensym(sbuf); -+ strcat(sbuf2, "/lib/pd/bin"); -+ sys_guidir = gensym(sbuf2); - } - else - { - /* simple layout: lib dir is the parent */ -- sys_libdir = gensym(sbuf2); -+ sys_libdir = gensym(sbuf); - /* gui lives in .../bin */ -- strncpy(sbuf, sbuf2, MAXPDSTRING-30); -+ strncpy(sbuf2, sbuf, MAXPDSTRING-30); - sbuf[MAXPDSTRING-30] = 0; -- strcat(sbuf, "/bin"); -- sys_guidir = gensym(sbuf); -+ strcat(sbuf2, "/bin"); -+ sys_guidir = gensym(sbuf2); - } - #endif - } -Index: s_path.c -=================================================================== ---- s_path.c (revision 9862) -+++ s_path.c (working copy) -@@ -69,6 +69,24 @@ - *to = 0; - } - -+/* test if path is absolute or relative, based on leading /, env vars, ~, etc */ -+int sys_isabsolutepath(const char *dir) -+{ -+ if (dir[0] == '/' || dir[0] == '~' -+#ifdef MSW -+ || dir[0] == '%' || (dir[1] == ':' && dir[2] == '/') -+#endif -+ ) -+ { -+ return 1; -+ } -+ else -+ { -+ return 0; -+ } -+} -+ -+ - /******************* Utility functions used below ******************/ - - /*! -@@ -250,11 +268,7 @@ - int sys_open_absolute(const char *name, const char* ext, - char *dirresult, char **nameresult, unsigned int size, int bin, int *fdp) - { -- if (name[0] == '/' --#ifdef MSW -- || (name[1] == ':' && name[2] == '/') --#endif -- ) -+ if (sys_isabsolutepath(name)) - { - char dirbuf[MAXPDSTRING]; - int dirlen = (strrchr(name, '/') - name); -Index: g_canvas.c -=================================================================== ---- g_canvas.c (revision 9862) -+++ g_canvas.c (working copy) -@@ -1475,6 +1479,22 @@ - } - } - -+static void canvas_completepath(char *from, char *to) -+{ -+ if (sys_isabsolutepath(from)) -+ { -+ to[0] = '\0'; -+ } -+ else -+ { // if not absolute path, append Pd lib dir -+ strncpy(to, sys_libdir->s_name, FILENAME_MAX-4); -+ to[FILENAME_MAX-3] = '\0'; -+ strcat(to, "/"); -+ } -+ strncat(to, from, FILENAME_MAX-strlen(to)); -+ to[FILENAME_MAX-1] = '\0'; -+} -+ - static void canvas_declare(t_canvas *x, t_symbol *s, int argc, t_atom *argv) - { - int i; -@@ -1496,12 +1516,7 @@ - } - else if ((argc > i+1) && !strcmp(flag, "-stdpath")) - { -- strncpy(strbuf, sys_libdir->s_name, MAXPDSTRING-3); -- strbuf[MAXPDSTRING-4] = 0; -- strcat(strbuf, "/"); -- strncpy(strbuf, atom_getsymbolarg(i+1, argc, argv)->s_name, -- MAXPDSTRING-strlen(strbuf)); -- strbuf[MAXPDSTRING-1] = 0; -+ canvas_completepath(atom_getsymbolarg(i+1, argc, argv)->s_name, strbuf); - e->ce_path = namelist_append(e->ce_path, strbuf, 0); - i++; - } -@@ -1512,12 +1527,7 @@ - } - else if ((argc > i+1) && !strcmp(flag, "-stdlib")) - { -- strncpy(strbuf, sys_libdir->s_name, MAXPDSTRING-3); -- strbuf[MAXPDSTRING-4] = 0; -- strcat(strbuf, "/"); -- strncpy(strbuf, atom_getsymbolarg(i+1, argc, argv)->s_name, -- MAXPDSTRING-strlen(strbuf)); -- strbuf[MAXPDSTRING-1] = 0; -+ canvas_completepath(atom_getsymbolarg(i+1, argc, argv)->s_name, strbuf); - sys_load_lib(0, strbuf); - i++; - } -@@ -1564,9 +1574,16 @@ - for (nl = y->gl_env->ce_path; nl; nl = nl->nl_next) - { - char realname[MAXPDSTRING]; -- strncpy(realname, dir, MAXPDSTRING); -- realname[MAXPDSTRING-3] = 0; -- strcat(realname, "/"); -+ if (sys_isabsolutepath(nl->nl_string)) -+ { -+ realname[0] = '\0'; -+ } -+ else -+ { /* if not absolute path, append Pd lib dir */ -+ strncpy(realname, dir, MAXPDSTRING); -+ realname[MAXPDSTRING-3] = 0; -+ strcat(realname, "/"); -+ } - strncat(realname, nl->nl_string, MAXPDSTRING-strlen(realname)); - realname[MAXPDSTRING-1] = 0; - if ((fd = sys_trytoopenone(realname, name, ext, This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
SF.net SVN: pure-data:[10498] trunk/packages/patches/64bit_arrays-0.40.1. patch
by eighthave@users.sourceforge.net
10 Jan '09
10 Jan '09
Revision: 10498
http://pure-data.svn.sourceforge.net/pure-data/?rev=10498&view=rev
Author: eighthave Date: 2009-01-10 04:52:15 +0000 (Sat, 10 Jan 2009) Log Message: ----------- removed obsolete patch, 64-bit support for arrays was fixed differntly in the end Removed Paths: ------------- trunk/packages/patches/64bit_arrays-0.40.1.patch Deleted: trunk/packages/patches/64bit_arrays-0.40.1.patch =================================================================== --- trunk/packages/patches/64bit_arrays-0.40.1.patch 2009-01-10 02:20:22 UTC (rev 10497) +++ trunk/packages/patches/64bit_arrays-0.40.1.patch 2009-01-10 04:52:15 UTC (rev 10498) @@ -1,336 +0,0 @@ -diff -ur pd/src/d_array.c pd.new/src/d_array.c ---- d_array.c 2006-08-01 15:40:59.000000000 +0200 -+++ d_array.c 2006-08-01 13:23:42.000000000 +0200 -@@ -8,6 +8,7 @@ - - #include "m_pd.h" - -+#define ASTRIDE (sizeof(union word)/sizeof(t_sample)) - - /* ------------------------- tabwrite~ -------------------------- */ - -@@ -52,15 +53,16 @@ - if (endphase > phase) - { - int nxfer = endphase - phase; -- float *fp = x->x_vec + phase; -+ float *fp = x->x_vec + phase*ASTRIDE; - if (nxfer > n) nxfer = n; -- phase += nxfer; -+ phase += nxfer*ASTRIDE; - while (nxfer--) - { - float f = *in++; - if (PD_BIGORSMALL(f)) - f = 0; -- *fp++ = f; -+ *fp = f; -+ fp += ASTRIDE; - } - if (phase >= endphase) - { -@@ -176,13 +178,15 @@ - goto zero; - - nxfer = endphase - phase; -- fp = x->x_vec + phase; -+ fp = x->x_vec + phase*ASTRIDE; - if (nxfer > n) - nxfer = n; - n3 = n - nxfer; - phase += nxfer; -- while (nxfer--) -- *out++ = *fp++; -+ while (nxfer--) { -+ *out++ = *fp; -+ fp += ASTRIDE; -+ } - if (phase >= endphase) - { - clock_delay(x->x_clock, 0); -@@ -308,7 +312,7 @@ - index = 0; - else if (index > maxindex) - index = maxindex; -- *out++ = buf[index]; -+ *out++ = buf[index* ASTRIDE]; - } - return (w+5); - zero: -@@ -425,11 +429,11 @@ - else if (index > maxindex) - index = maxindex, frac = 1; - else frac = findex - index; -- fp = buf + index; -- a = fp[-1]; -+ fp = buf + index* ASTRIDE; -+ a = fp[-1* ASTRIDE]; - b = fp[0]; -- c = fp[1]; -- d = fp[2]; -+ c = fp[1* ASTRIDE]; -+ d = fp[2* ASTRIDE]; - /* if (!i && !(count++ & 1023)) - post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */ - cminusb = c-b; -@@ -609,13 +613,13 @@ - float frac, a, b, c, d, cminusb; - tf.tf_d = dphase; - dphase += *in++ * conv; -- addr = tab + (tf.tf_i[HIOFFSET] & mask); -+ addr = tab + (tf.tf_i[HIOFFSET] & mask)* ASTRIDE; - tf.tf_i[HIOFFSET] = normhipart; - frac = tf.tf_d - UNITBIT32; - a = addr[0]; -- b = addr[1]; -- c = addr[2]; -- d = addr[3]; -+ b = addr[1* ASTRIDE]; -+ c = addr[2* ASTRIDE]; -+ d = addr[3* ASTRIDE]; - cminusb = c-b; - *out++ = b + frac * ( - cminusb - 0.1666667f * (1.-frac) * ( -@@ -736,7 +740,8 @@ - float f = *in++; - if (PD_BIGORSMALL(f)) - f = 0; -- *dest++ = f; -+ *dest = f; -+ dest += ASTRIDE; - } - if (!i--) - { -@@ -805,8 +810,10 @@ - if (from) - { - int vecsize = x->x_vecsize; -- while (vecsize--) -- *out++ = *from++; -+ while (vecsize--){ -+ *out++ = *from; -+ from += ASTRIDE; -+ } - vecsize = n - x->x_vecsize; - while (vecsize--) - *out++ = 0; -@@ -876,7 +883,7 @@ - int n = f; - if (n < 0) n = 0; - else if (n >= npoints) n = npoints - 1; -- outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n] : 0)); -+ outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n*ASTRIDE] : 0)); - } - } - -@@ -925,21 +932,21 @@ - else if (npoints < 4) - outlet_float(x->x_obj.ob_outlet, 0); - else if (f <= 1) -- outlet_float(x->x_obj.ob_outlet, vec[1]); -+ outlet_float(x->x_obj.ob_outlet, vec[ 1*ASTRIDE]); - else if (f >= npoints - 2) -- outlet_float(x->x_obj.ob_outlet, vec[npoints - 2]); -+ outlet_float(x->x_obj.ob_outlet, vec[(npoints - 2)* ASTRIDE]); - else - { - int n = f; - float a, b, c, d, cminusb, frac, *fp; - if (n >= npoints - 2) - n = npoints - 3; -- fp = vec + n; -+ fp = vec + n* ASTRIDE; - frac = f - n; -- a = fp[-1]; -- b = fp[0]; -- c = fp[1]; -- d = fp[2]; -+ a = fp[-1*ASTRIDE]; -+ b = fp[0*ASTRIDE]; -+ c = fp[1*ASTRIDE]; -+ d = fp[2*ASTRIDE]; - cminusb = c-b; - outlet_float(x->x_obj.ob_outlet, b + frac * ( - cminusb - 0.1666667f * (1.-frac) * ( -@@ -997,7 +1004,7 @@ - n = 0; - else if (n >= vecsize) - n = vecsize-1; -- vec[n] = f; -+ vec[n*ASTRIDE] = f; - garray_redraw(a); - } - } -diff -ur pd/src/d_soundfile.c pd.new/src/d_soundfile.c ---- d_soundfile.c 2006-08-01 15:41:00.000000000 +0200 -+++ d_soundfile.c 2006-08-01 13:23:53.000000000 +0200 -@@ -27,6 +27,8 @@ - - #define MAXSFCHANS 64 - -+#define ASTRIDE (sizeof(union word)/sizeof(t_sample)) -+ - #ifdef _LARGEFILE64_SOURCE - # define open open64 - # define lseek lseek64 -@@ -407,14 +409,14 @@ - { - if (bigendian) - { -- for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)); - } - else - { -- for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16)); - } - } -@@ -422,15 +424,15 @@ - { - if (bigendian) - { -- for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16) - | (sp2[2] << 8)); - } - else - { -- for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16) - | (sp2[0] << 8)); - } -@@ -439,15 +441,15 @@ - { - if (bigendian) - { -- for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16) - | (sp2[2] << 8) | sp2[3]); - } - else - { -- for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16) - | (sp2[1] << 8) | sp2[0]); - } -@@ -455,8 +457,8 @@ - } - /* zero out other outputs */ - for (i = sfchannels; i < nvecs; i++) -- for (j = nitems, fp = vecs[i]; j--; ) -- *fp++ = 0; -+ for (j = nitems, fp = vecs[i*ASTRIDE]; j--; ) -+ *fp = 0,fp += ASTRIDE; - - } - -@@ -810,8 +812,8 @@ - float ff = normalfactor * 32768.; - if (bigendian) - { -- for (j = 0, sp2 = sp, fp = vecs[i] + onset; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp = vecs[i] + onset*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - { - int xx = 32768. + (*fp * ff); - xx -= 32768; -@@ -825,8 +827,8 @@ - } - else - { -- for (j = 0, sp2 = sp, fp=vecs[i] + onset; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - { - int xx = 32768. + (*fp * ff); - xx -= 32768; -@@ -844,8 +846,8 @@ - float ff = normalfactor * 8388608.; - if (bigendian) - { -- for (j = 0, sp2 = sp, fp=vecs[i] + onset; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - { - int xx = 8388608. + (*fp * ff); - xx -= 8388608; -@@ -860,8 +862,8 @@ - } - else - { -- for (j = 0, sp2 = sp, fp=vecs[i] + onset; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - { - int xx = 8388608. + (*fp * ff); - xx -= 8388608; -@@ -879,8 +881,8 @@ - { - if (bigendian) - { -- for (j = 0, sp2 = sp, fp=vecs[i] + onset; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - { - float f2 = *fp * normalfactor; - xx = *(long *)&f2; -@@ -890,8 +892,8 @@ - } - else - { -- for (j = 0, sp2 = sp, fp=vecs[i] + onset; -- j < nitems; j++, sp2 += bytesperframe, fp++) -+ for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; -+ j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) - { - float f2 = *fp * normalfactor; - xx = *(long *)&f2; -diff -ur pd/src/g_graph.c pd.new/src/g_graph.c ---- g_graph.c 2006-08-01 15:41:00.000000000 +0200 -+++ g_graph.c 2006-07-31 13:01:31.000000000 +0200 -@@ -1019,16 +1019,16 @@ - if (oldx < newx - 1) - { - for (i = oldx + 1; i <= newx; i++) -- vec[i] = newy + (oldy - newy) * -+ vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) * - ((float)(newx - i))/(float)(newx - oldx); - } - else if (oldx > newx + 1) - { - for (i = oldx - 1; i >= newx; i--) -- vec[i] = newy + (oldy - newy) * -+ vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) * - ((float)(newx - i))/(float)(newx - oldx); - } -- else vec[newx] = newy; -+ else vec[newx*sizeof(union word)/sizeof(t_sample)] = newy; - garray_redraw(a); - } - - - This was sent by the
SourceForge.net
collaborative development platform, the world's largest Open Source development site.
1
0
0
0
← Newer
1
...
30
31
32
33
34
35
36
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Results per page:
10
25
50
100
200