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.