aboutsummaryrefslogtreecommitdiff
path: root/pd
diff options
context:
space:
mode:
authorMiller Puckette <millerpuckette@users.sourceforge.net>2006-12-07 16:19:05 +0000
committerMiller Puckette <millerpuckette@users.sourceforge.net>2006-12-07 16:19:05 +0000
commitfe1be78e384c11f7f15a712f116cdeb9e914957b (patch)
treef3573f404f09e47cb13008c48abbc7775b90cf4b /pd
parente40e15b5844bc49174d4798d710e264b97cdeaf4 (diff)
More 64 bit fixes, notably confusion about file extensions and taking
garray_getfloatarray out of expr svn path=/trunk/; revision=6685
Diffstat (limited to 'pd')
-rw-r--r--pd/extra/expr~/makefile2
-rw-r--r--pd/extra/expr~/vexp_if.c26
-rw-r--r--pd/extra/makefile2
-rw-r--r--pd/portaudio/pa_win_wdmks/pa_win_wdmks.c2
-rw-r--r--pd/portaudio/pablio/ringbuffer.c2
-rw-r--r--pd/portaudio/pablio/ringbuffer.h2
-rw-r--r--pd/portmidi/pm_mac/pmmacosxcm.c2
-rw-r--r--pd/src/configure.in3
-rw-r--r--pd/src/d_array.c37
-rw-r--r--pd/src/d_osc.c7
-rw-r--r--pd/src/notes.txt7
-rw-r--r--pd/src/s_loader.c8
-rw-r--r--pd/src/x_list.c2
13 files changed, 39 insertions, 63 deletions
diff --git a/pd/extra/expr~/makefile b/pd/extra/expr~/makefile
index 2b4cdc58..4889afe5 100644
--- a/pd/extra/expr~/makefile
+++ b/pd/extra/expr~/makefile
@@ -78,7 +78,7 @@ LINUXOBJ = vexp.pd_linux_o vexp_fun.pd_linux_o vexp_if.pd_linux_o
.SUFFIXES: .pd_linux_o
LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \
- -Wall -W -Wshadow -Wstrict-prototypes \
+ -fno-strict-aliasing -Wall -W -Wshadow -Wstrict-prototypes \
-Wno-unused -Wno-parentheses -Wno-switch
LINUXINCLUDE = -I../../src
diff --git a/pd/extra/expr~/vexp_if.c b/pd/extra/expr~/vexp_if.c
index 08dc55c3..648aba73 100644
--- a/pd/extra/expr~/vexp_if.c
+++ b/pd/extra/expr~/vexp_if.c
@@ -895,10 +895,10 @@ max_ex_tab(struct expr *expr, fts_symbol_t s, struct ex_ex *arg,
#ifdef PD
t_garray *garray;
int size, indx;
- t_float *vec;
+ t_word *wvec;
if (!s || !(garray = (t_garray *)pd_findbyclass(s, garray_class)) ||
- !garray_getfloatarray(garray, &size, &vec))
+ !garray_getfloatwords(garray, &size, &wvec))
{
optr->ex_type = ET_FLT;
optr->ex_flt = 0;
@@ -922,7 +922,7 @@ max_ex_tab(struct expr *expr, fts_symbol_t s, struct ex_ex *arg,
}
if (indx < 0) indx = 0;
else if (indx >= size) indx = size - 1;
- optr->ex_flt = vec[indx];
+ optr->ex_flt = wvec[indx].w_float;
#else /* MSP */
/*
* table lookup not done for MSP yet
@@ -952,7 +952,7 @@ max_ex_var(struct expr *expr, fts_symbol_t var, struct ex_ex *optr)
*/
#define ISTABLE(sym, garray, size, vec) \
if (!sym || !(garray = (t_garray *)pd_findbyclass(sym, garray_class)) || \
- !garray_getfloatarray(garray, &size, &vec)) { \
+ !garray_getfloatwords(garray, &size, &vec)) { \
optr->ex_type = ET_FLT; \
optr->ex_int = 0; \
error("no such table '%s'", sym->s_name); \
@@ -968,7 +968,7 @@ ex_size(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr)
t_symbol *s;
t_garray *garray;
int size;
- t_float *vec;
+ t_word *wvec;
if (argv->ex_type != ET_SYM)
{
@@ -980,7 +980,7 @@ ex_size(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr)
s = (fts_symbol_t ) argv->ex_ptr;
- ISTABLE(s, garray, size, vec);
+ ISTABLE(s, garray, size, wvec);
optr->ex_type = ET_INT;
optr->ex_int = size;
@@ -996,7 +996,8 @@ ex_sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr)
t_symbol *s;
t_garray *garray;
int size;
- t_float *vec, sum;
+ t_word *wvec;
+ float sum;
int indx;
if (argv->ex_type != ET_SYM)
@@ -1009,10 +1010,10 @@ ex_sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr)
s = (fts_symbol_t ) argv->ex_ptr;
- ISTABLE(s, garray, size, vec);
+ ISTABLE(s, garray, size, wvec);
for (indx = 0, sum = 0; indx < size; indx++)
- sum += vec[indx];
+ sum += wvec[indx].w_float;
optr->ex_type = ET_FLT;
optr->ex_flt = sum;
@@ -1029,7 +1030,8 @@ ex_Sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr)
t_symbol *s;
t_garray *garray;
int size;
- t_float *vec, sum;
+ t_word *wvec;
+ t_float sum;
int indx, n1, n2;
if (argv->ex_type != ET_SYM)
@@ -1042,7 +1044,7 @@ ex_Sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr)
s = (fts_symbol_t ) argv->ex_ptr;
- ISTABLE(s, garray, size, vec);
+ ISTABLE(s, garray, size, wvec);
if (argv->ex_type != ET_INT || argv[1].ex_type != ET_INT)
{
@@ -1056,7 +1058,7 @@ ex_Sum(t_expr *e, long int argc, struct ex_ex *argv, struct ex_ex *optr)
for (indx = n1, sum = 0; indx < n2; indx++)
if (indx >= 0 && indx < size)
- sum += vec[indx];
+ sum += wvec[indx].w_float;
optr->ex_type = ET_FLT;
optr->ex_flt = sum;
diff --git a/pd/extra/makefile b/pd/extra/makefile
index bc913aca..56e59bed 100644
--- a/pd/extra/makefile
+++ b/pd/extra/makefile
@@ -19,7 +19,7 @@ PDNTLIB = $(PDNTLDIR)\libc.lib \
.c.dll:
cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c
- link /nologo /dll /export:$(CSYM)_setup $*.obj $(PDNTLIB)
+ link /dll /export:$(CSYM)_setup $*.obj $(PDNTLIB)
# ----------------------- IRIX 5.x -----------------------
diff --git a/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c b/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c
index 054197c4..ca385eab 100644
--- a/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c
+++ b/pd/portaudio/pa_win_wdmks/pa_win_wdmks.c
@@ -1,5 +1,5 @@
/*
- * $Id: pa_win_wdmks.c,v 1.16 2006-10-22 21:46:10 millerpuckette Exp $
+ * $Id: pa_win_wdmks.c,v 1.17 2006-12-07 16:19:05 millerpuckette Exp $
* PortAudio Windows WDM-KS interface
*
* Author: Andrew Baldwin
diff --git a/pd/portaudio/pablio/ringbuffer.c b/pd/portaudio/pablio/ringbuffer.c
index ab4b9473..96c2158d 100644
--- a/pd/portaudio/pablio/ringbuffer.c
+++ b/pd/portaudio/pablio/ringbuffer.c
@@ -1,5 +1,5 @@
/*
- * $Id: ringbuffer.c,v 1.15 2006-10-22 21:46:10 millerpuckette Exp $
+ * $Id: ringbuffer.c,v 1.16 2006-12-07 16:19:05 millerpuckette Exp $
* ringbuffer.c
* Ring Buffer utility..
*
diff --git a/pd/portaudio/pablio/ringbuffer.h b/pd/portaudio/pablio/ringbuffer.h
index b26e30b4..cc7db0ad 100644
--- a/pd/portaudio/pablio/ringbuffer.h
+++ b/pd/portaudio/pablio/ringbuffer.h
@@ -6,7 +6,7 @@ extern "C"
#endif /* __cplusplus */
/*
- * $Id: ringbuffer.h,v 1.16 2006-10-22 21:46:10 millerpuckette Exp $
+ * $Id: ringbuffer.h,v 1.17 2006-12-07 16:19:05 millerpuckette Exp $
* ringbuffer.h
* Ring Buffer utility..
*
diff --git a/pd/portmidi/pm_mac/pmmacosxcm.c b/pd/portmidi/pm_mac/pmmacosxcm.c
index 6c9df3c7..a27b915a 100644
--- a/pd/portmidi/pm_mac/pmmacosxcm.c
+++ b/pd/portmidi/pm_mac/pmmacosxcm.c
@@ -5,7 +5,7 @@
* and subsequent work by Andrew Zeldis and Zico Kolter
* and Roger B. Dannenberg
*
- * $Id: pmmacosxcm.c,v 1.16 2006-10-22 21:46:10 millerpuckette Exp $
+ * $Id: pmmacosxcm.c,v 1.17 2006-12-07 16:19:05 millerpuckette Exp $
*/
/* Notes:
diff --git a/pd/src/configure.in b/pd/src/configure.in
index a1ceb48e..a94c70eb 100644
--- a/pd/src/configure.in
+++ b/pd/src/configure.in
@@ -254,7 +254,8 @@ then
MORECFLAGS="-DMACOSX3 -DPA_BIG_ENDIAN -Wno-error"
EXTERNTARGET=d_ppc
else
- MORECFLAGS="-arch i386 -arch ppc -Wno-error"
+ MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
+ -arch i386 -arch ppc -Wno-error"
EXTERNTARGET=d_fat
LDFLAGS=$LDFLAGS" -arch i386 -arch ppc"
fi
diff --git a/pd/src/d_array.c b/pd/src/d_array.c
index de72ef12..e8c034fe 100644
--- a/pd/src/d_array.c
+++ b/pd/src/d_array.c
@@ -503,32 +503,28 @@ static void tabread4_tilde_setup(void)
#define HIOFFSET 0 /* word offset to find MSB */
#define LOWOFFSET 1 /* word offset to find LSB */
#define int32 long /* a data type that has 32 bits */
-#else
+#endif /* IRIX */
+
#ifdef MSW
/* little-endian; most significant byte is at highest address */
#define HIOFFSET 1
#define LOWOFFSET 0
#define int32 long
-#else
-#ifdef __FreeBSD__
+#endif
+
+#if defined(__FreeBSD__) || defined(__APPLE__)
#include <machine/endian.h>
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define HIOFFSET 1
-#define LOWOFFSET 0
-#else
-#define HIOFFSET 0 /* word offset to find MSB */
-#define LOWOFFSET 1 /* word offset to find LSB */
-#endif /* BYTE_ORDER */
-#include <sys/types.h>
-#define int32 int32_t
#endif
-#ifdef __linux__
+#ifdef __linux__
#include <endian.h>
+#endif
+
+#if defined(__unix__) || defined(__APPLE__)
#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN)
#error No byte order defined
#endif
-
+
#if __BYTE_ORDER == __LITTLE_ENDIAN
#define HIOFFSET 1
#define LOWOFFSET 0
@@ -536,20 +532,9 @@ static void tabread4_tilde_setup(void)
#define HIOFFSET 0 /* word offset to find MSB */
#define LOWOFFSET 1 /* word offset to find LSB */
#endif /* __BYTE_ORDER */
-
#include <sys/types.h>
#define int32 int32_t
-
-#else
-#ifdef __APPLE__
-#define HIOFFSET 0 /* word offset to find MSB */
-#define LOWOFFSET 1 /* word offset to find LSB */
-#define int32 int /* a data type that has 32 bits */
-
-#endif /* __APPLE__ */
-#endif /* __linux__ */
-#endif /* MSW */
-#endif /* SGI */
+#endif /* __unix__ or __APPLE__*/
union tabfudge
{
diff --git a/pd/src/d_osc.c b/pd/src/d_osc.c
index 58533165..0f2eb3e9 100644
--- a/pd/src/d_osc.c
+++ b/pd/src/d_osc.c
@@ -30,11 +30,6 @@
#include <machine/endian.h>
#endif
-#ifdef __APPLE__
-#define __BYTE_ORDER BYTE_ORDER
-#define __LITTLE_ENDIAN LITTLE_ENDIAN
-#endif
-
#ifdef __linux__
#include <endian.h>
#endif
@@ -55,14 +50,12 @@
#define int32 int32_t
#endif /* __unix__ or __APPLE__*/
-
union tabfudge
{
double tf_d;
int32 tf_i[2];
};
-
/* -------------------------- phasor~ ------------------------------ */
static t_class *phasor_class, *scalarphasor_class;
diff --git a/pd/src/notes.txt b/pd/src/notes.txt
index 93c9986b..1aa5f8c5 100644
--- a/pd/src/notes.txt
+++ b/pd/src/notes.txt
@@ -1,14 +1,8 @@
---------------- dolist --------------------
0.40-1:
- http "about" broken on MSW?
help browser broke on Panurge
binbuf_read_via_canvas in x_qlist.c
-check bug reports on sourceforge
-double-click fix on mac?
-http://sourceforge.net/tracker/index.php?
-func=detail&aid=1564617&group_id=55736&atid=478072
-
PC device counting problem (first device invoked by -audiodev 0)
test:
@@ -52,6 +46,7 @@ detect adc~ and dac~ reblocking
more demonstration patches:
vibrato using variable delay
+real-time spectrum grapher
features:
sigmund~: sort by pitch; one-shot
diff --git a/pd/src/s_loader.c b/pd/src/s_loader.c
index a10ebab6..d2022146 100644
--- a/pd/src/s_loader.c
+++ b/pd/src/s_loader.c
@@ -35,7 +35,7 @@ a fat binary or an indication of the instruction set. */
static char sys_dllextent[] = ".b_i386", sys_dllextent2[] = ".pd_freebsd";
#endif
#ifdef __linux__
-#ifdef __ia64__
+#ifdef __x86_64__
static char sys_dllextent[] = ".l_ia64", sys_dllextent2[] = ".pd_linux";
#else
static char sys_dllextent[] = ".l_i386", sys_dllextent2[] = ".pd_linux";
@@ -94,9 +94,9 @@ static int sys_do_load_lib(t_canvas *canvas, char *objectname)
if (classname = strrchr(objectname, '/'))
classname++;
else classname = objectname;
- if (sys_onloadlist(classname))
+ if (sys_onloadlist(objectname))
{
- post("%s: already loaded", classname);
+ post("%s: already loaded", objectname);
return (1);
}
for (i = 0, nameptr = classname; i < MAXPDSTRING-7 && *nameptr; nameptr++)
@@ -194,7 +194,7 @@ gotone:
}
(*makeout)();
class_set_extern_dir(&s_);
- sys_putonloadlist(classname);
+ sys_putonloadlist(objectname);
return (1);
}
diff --git a/pd/src/x_list.c b/pd/src/x_list.c
index be37a375..23989585 100644
--- a/pd/src/x_list.c
+++ b/pd/src/x_list.c
@@ -410,7 +410,7 @@ static void list_length_list(t_list_length *x, t_symbol *s,
static void list_length_anything(t_list_length *x, t_symbol *s,
int argc, t_atom *argv)
{
- outlet_float(x->x_obj.ob_outlet, (float)argc);
+ outlet_float(x->x_obj.ob_outlet, (float)argc+1);
}
static void list_length_setup(void)