Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31111/pd/src
Modified Files:
d_array.c d_soundfile.c g_array.c g_graph.c g_readwrite.c
m_pd.h makefile.in notes.txt s_path.c
Removed Files:
makefile.irix s_audio_sgi.c s_midi_sgi.c
Log Message:
test release for 0.41 (bug fixes for IA64).
Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** m_pd.h 9 Oct 2006 04:36:12 -0000 1.16
--- m_pd.h 22 Oct 2006 21:46:11 -0000 1.17
***************
*** 10,16 ****
#define PD_MAJOR_VERSION 0
! #define PD_MINOR_VERSION 40
! #define PD_BUGFIX_VERSION 1
! #define PD_TEST_VERSION ""
/* old name for "MSW" flag -- we have to take it for the sake of many old
--- 10,16 ----
#define PD_MAJOR_VERSION 0
! #define PD_MINOR_VERSION 41
! #define PD_BUGFIX_VERSION 0
! #define PD_TEST_VERSION "test03"
/* old name for "MSW" flag -- we have to take it for the sake of many old
***************
*** 572,575 ****
--- 572,576 ----
EXTERN t_class *garray_class;
EXTERN int garray_getfloatarray(t_garray *x, int *size, t_float **vec);
+ EXTERN int garray_getfloatwords(t_garray *x, int *size, t_word **vec);
EXTERN float garray_get(t_garray *x, t_symbol *s, t_int indx);
EXTERN void garray_redraw(t_garray *x);
Index: s_path.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_path.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** s_path.c 8 Sep 2006 23:45:31 -0000 1.11
--- s_path.c 22 Oct 2006 21:46:11 -0000 1.12
***************
*** 263,267 ****
there is no search and instead we just try to open the file literally. */
! /* see also canvas_openfile() which, in addition, searches down the
canvas-specific path. */
--- 263,267 ----
there is no search and instead we just try to open the file literally. */
! /* see also canvas_open() which, in addition, searches down the
canvas-specific path. */
--- s_audio_sgi.c DELETED ---
Index: makefile.in
===================================================================
RCS file: /cvsroot/pure-data/pd/src/makefile.in,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** makefile.in 8 Sep 2006 23:45:30 -0000 1.14
--- makefile.in 22 Oct 2006 21:46:11 -0000 1.15
***************
*** 111,123 ****
$(PDEXEC): $(OBJ) $(BIN_DIR)
! cd ../obj; $(CC) $(LDFLAGS) $(DBG_CFLAGS) -o $(PDEXEC) $(OBJ) \
! $(LIB)
!
$(BIN_DIR)/pd-gui: $(GOBJ) $(GSRC)
! cd ../obj; $(CC) $(INCLUDE) -o $(BIN_DIR)/$(GUINAME) $(GOBJ) \
! $(GLIB)
! $(BIN_DIR)/pd.tk: u_main.tk
cp u_main.tk $(BIN_DIR)/pd.tk
#this is for Max OSX only...
--- 111,122 ----
$(PDEXEC): $(OBJ) $(BIN_DIR)
! cd ../obj; $(CC) $(LDFLAGS) $(DBG_CFLAGS) -o $(PDEXEC) $(OBJ) $(LIB)
!
$(BIN_DIR)/pd-gui: $(GOBJ) $(GSRC)
! cd ../obj; $(CC) $(INCLUDE) -o $(BIN_DIR)/$(GUINAME) $(GOBJ) $(GLIB)
! $(BIN_DIR)/pd.tk: u_main.tk $(BIN_DIR)
cp u_main.tk $(BIN_DIR)/pd.tk
+ touch -r makefile.dependencies $(BIN_DIR)
#this is for Max OSX only...
--- makefile.irix DELETED ---
Index: d_soundfile.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_soundfile.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** d_soundfile.c 9 Oct 2006 04:36:12 -0000 1.12
--- d_soundfile.c 22 Oct 2006 21:46:10 -0000 1.13
***************
*** 423,427 ****
static void soundfile_xferin(int sfchannels, int nvecs, float **vecs,
long itemsread, unsigned char *buf, int nitems, int bytespersamp,
! int bigendian)
{
int i, j;
--- 423,427 ----
static void soundfile_xferin(int sfchannels, int nvecs, float **vecs,
long itemsread, unsigned char *buf, int nitems, int bytespersamp,
! int bigendian, int spread)
{
int i, j;
***************
*** 436,447 ****
if (bigendian)
{
! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
! j < nitems; j++, sp2 += bytesperframe, fp++)
*fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16));
}
else
{
! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
! j < nitems; j++, sp2 += bytesperframe, fp++)
*fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16));
}
--- 436,447 ----
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));
}
***************
*** 451,456 ****
if (bigendian)
{
! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
! j < nitems; j++, sp2 += bytesperframe, fp++)
*fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)
| (sp2[2] << 8));
--- 451,456 ----
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));
***************
*** 458,463 ****
else
{
! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
! j < nitems; j++, sp2 += bytesperframe, fp++)
*fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16)
| (sp2[0] << 8));
--- 458,463 ----
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));
***************
*** 468,473 ****
if (bigendian)
{
! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
! j < nitems; j++, sp2 += bytesperframe, fp++)
*(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16)
| (sp2[2] << 8) | sp2[3]);
--- 468,473 ----
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]);
***************
*** 475,480 ****
else
{
! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
! j < nitems; j++, sp2 += bytesperframe, fp++)
*(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16)
| (sp2[1] << 8) | sp2[0]);
--- 475,480 ----
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]);
***************
*** 825,829 ****
static void soundfile_xferout(int nchannels, float **vecs,
unsigned char *buf, int nitems, long onset, int bytespersamp,
! int bigendian, float normalfactor)
{
int i, j;
--- 825,829 ----
static void soundfile_xferout(int nchannels, float **vecs,
unsigned char *buf, int nitems, long onset, int bytespersamp,
! int bigendian, float normalfactor, int spread)
{
int i, j;
***************
*** 840,844 ****
{
for (j = 0, sp2 = sp, fp = vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp++)
{
int xx = 32768. + (*fp * ff);
--- 840,844 ----
{
for (j = 0, sp2 = sp, fp = vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp += spread)
{
int xx = 32768. + (*fp * ff);
***************
*** 855,859 ****
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp++)
{
int xx = 32768. + (*fp * ff);
--- 855,859 ----
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp += spread)
{
int xx = 32768. + (*fp * ff);
***************
*** 874,878 ****
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp++)
{
int xx = 8388608. + (*fp * ff);
--- 874,878 ----
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp += spread)
{
int xx = 8388608. + (*fp * ff);
***************
*** 890,894 ****
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp++)
{
int xx = 8388608. + (*fp * ff);
--- 890,894 ----
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp += spread)
{
int xx = 8388608. + (*fp * ff);
***************
*** 909,913 ****
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp++)
{
float f2 = *fp * normalfactor;
--- 909,913 ----
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp += spread)
{
float f2 = *fp * normalfactor;
***************
*** 920,924 ****
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp++)
{
float f2 = *fp * normalfactor;
--- 920,924 ----
{
for (j = 0, sp2 = sp, fp=vecs[i] + onset;
! j < nitems; j++, sp2 += bytesperframe, fp += spread)
{
float f2 = *fp * normalfactor;
***************
*** 976,980 ****
char endianness, *filename;
t_garray *garrays[MAXSFCHANS];
! t_float *vecs[MAXSFCHANS];
char sampbuf[SAMPBUFSIZE];
int bufframes, nitems;
--- 976,980 ----
char endianness, *filename;
t_garray *garrays[MAXSFCHANS];
! t_word *vecs[MAXSFCHANS];
char sampbuf[SAMPBUFSIZE];
int bufframes, nitems;
***************
*** 1052,1056 ****
goto done;
}
! else if (!garray_getfloatarray(garrays[i], &vecsize, &vecs[i]))
error("%s: bad template for tabwrite",
argv[i].a_w.w_symbol->s_name);
--- 1052,1057 ----
goto done;
}
! else if (!garray_getfloatwords(garrays[i], &vecsize,
! &vecs[i]))
error("%s: bad template for tabwrite",
argv[i].a_w.w_symbol->s_name);
***************
*** 1102,1106 ****
/* 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]);
/* if the resize failed, garray_resize reported the error */
if (vecsize != framesinfile)
--- 1103,1108 ----
/* for sanity's sake let's clear the save-in-patch flag here */
garray_setsaveit(garrays[i], 0);
! garray_getfloatwords(garrays[i], &vecsize,
! &vecs[i]);
/* if the resize failed, garray_resize reported the error */
if (vecsize != framesinfile)
***************
*** 1123,1128 ****
nitems = fread(sampbuf, channels * bytespersamp, thisread, fp);
if (nitems <= 0) break;
! soundfile_xferin(channels, argc, vecs, itemsread,
! (unsigned char *)sampbuf, nitems, bytespersamp, bigendian);
itemsread += nitems;
}
--- 1125,1131 ----
nitems = fread(sampbuf, channels * bytespersamp, thisread, fp);
if (nitems <= 0) break;
! soundfile_xferin(channels, argc, (float **)vecs, itemsread,
! (unsigned char *)sampbuf, nitems, bytespersamp, bigendian,
! sizeof(t_word)/sizeof(float));
itemsread += nitems;
}
***************
*** 1132,1138 ****
{
int nzero, vecsize;
! garray_getfloatarray(garrays[i], &vecsize, &vecs[i]);
for (j = itemsread; j < vecsize; j++)
! vecs[i][j] = 0;
}
/* zero out vectors in excess of number of channels */
--- 1135,1141 ----
{
int nzero, vecsize;
! garray_getfloatwords(garrays[i], &vecsize, &vecs[i]);
for (j = itemsread; j < vecsize; j++)
! vecs[i][j].w_float = 0;
}
/* zero out vectors in excess of number of channels */
***************
*** 1140,1147 ****
{
int vecsize;
! float *foo;
! garray_getfloatarray(garrays[i], &vecsize, &foo);
for (j = 0; j < vecsize; j++)
! foo[j] = 0;
}
/* do all graphics updates */
--- 1143,1150 ----
{
int vecsize;
! t_word *foo;
! garray_getfloatwords(garrays[i], &vecsize, &foo);
for (j = 0; j < vecsize; j++)
! foo[j].w_float = 0;
}
/* do all graphics updates */
***************
*** 1172,1176 ****
maxsize = DEFMAXSIZE, itemswritten = 0;
t_garray *garrays[MAXSFCHANS];
! t_float *vecs[MAXSFCHANS];
char sampbuf[SAMPBUFSIZE];
int bufframes, nitems;
--- 1175,1179 ----
maxsize = DEFMAXSIZE, itemswritten = 0;
t_garray *garrays[MAXSFCHANS];
! t_word *vecs[MAXSFCHANS];
char sampbuf[SAMPBUFSIZE];
int bufframes, nitems;
***************
*** 1199,1203 ****
goto fail;
}
! else if (!garray_getfloatarray(garrays[i], &vecsize, &vecs[i]))
error("%s: bad template for tabwrite",
argv[i].a_w.w_symbol->s_name);
--- 1202,1206 ----
goto fail;
}
! else if (!garray_getfloatwords(garrays[i], &vecsize, &vecs[i]))
error("%s: bad template for tabwrite",
argv[i].a_w.w_symbol->s_name);
***************
*** 1207,1214 ****
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];
}
}
--- 1210,1217 ----
for (j = 0; j < vecsize; 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;
}
}
***************
*** 1245,1250 ****
int thiswrite = nframes - itemswritten, nitems, nbytes;
thiswrite = (thiswrite > bufframes ? bufframes : thiswrite);
! soundfile_xferout(argc, vecs, (unsigned char *)sampbuf, thiswrite,
! onset, bytespersamp, bigendian, normfactor);
nbytes = write(fd, sampbuf, nchannels * bytespersamp * thiswrite);
if (nbytes < nchannels * bytespersamp * thiswrite)
--- 1248,1254 ----
int thiswrite = nframes - itemswritten, nitems, nbytes;
thiswrite = (thiswrite > bufframes ? bufframes : thiswrite);
! soundfile_xferout(argc, (t_float **)vecs, (unsigned char *)sampbuf,
! thiswrite, onset, bytespersamp, bigendian, normfactor,
! sizeof(t_word)/sizeof(float));
nbytes = write(fd, sampbuf, nchannels * bytespersamp * thiswrite);
if (nbytes < nchannels * bytespersamp * thiswrite)
***************
*** 1790,1794 ****
soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0,
(unsigned char *)(x->x_buf + x->x_fifotail), xfersize,
! bytespersample, bigendian);
vecsize -= xfersize;
}
--- 1794,1798 ----
soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0,
(unsigned char *)(x->x_buf + x->x_fifotail), xfersize,
! bytespersample, bigendian, 1);
vecsize -= xfersize;
}
***************
*** 1805,1809 ****
soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0,
(unsigned char *)(x->x_buf + x->x_fifotail), vecsize,
! bytespersample, bigendian);
x->x_fifotail += wantbytes;
--- 1809,1813 ----
soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0,
(unsigned char *)(x->x_buf + x->x_fifotail), vecsize,
! bytespersample, bigendian, 1);
x->x_fifotail += wantbytes;
***************
*** 2265,2269 ****
soundfile_xferout(sfchannels, x->x_outvec,
(unsigned char *)(x->x_buf + x->x_fifohead), vecsize, 0,
! bytespersample, bigendian, 1.);
x->x_fifohead += wantbytes;
--- 2269,2273 ----
soundfile_xferout(sfchannels, x->x_outvec,
(unsigned char *)(x->x_buf + x->x_fifohead), vecsize, 0,
! bytespersample, bigendian, 1., 1);
x->x_fifohead += wantbytes;
Index: notes.txt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/notes.txt,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** notes.txt 4 Oct 2006 19:35:06 -0000 1.32
--- notes.txt 22 Oct 2006 21:46:11 -0000 1.33
***************
*** 1,3 ****
--- 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?
***************
*** 50,55 ****
--- 55,64 ----
features:
+ sigmund~: sort by pitch; one-shot
+ add -x flag to drawnumbers....
+ grab new ALSA midi code from devel
externs able to usurp built-ins (+mem alignment for SSE)
replace gatom_escapit with a quoting mechanism (handle '[', spaces, etc.)
+ unicode in filenames??? How does this work? (bug report about windows)
sprout inlet for "route", "sel" if one arg
more list functions (see x_list.c)
Index: g_array.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_array.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** g_array.c 15 Aug 2006 04:54:15 -0000 1.11
--- g_array.c 22 Oct 2006 21:46:10 -0000 1.12
***************
*** 1131,1135 ****
so returns the goods */
! int garray_getfloatarray(t_garray *x, int *size, t_float **vec)
{
int yonset, type, elemsize;
--- 1131,1135 ----
so returns the goods */
! int garray_getfloatwords(t_garray *x, int *size, t_word **vec)
{
int yonset, type, elemsize;
***************
*** 1146,1152 ****
}
*size = garray_npoints(x);
! *vec = (float *)garray_vec(x);
return (1);
}
/* set the "saveit" flag */
--- 1146,1166 ----
}
*size = garray_npoints(x);
! *vec = (t_word *)garray_vec(x);
return (1);
}
+ /* older, non-64-bit safe version, supplied for older externs */
+
+ int garray_getfloatarray(t_garray *x, int *size, t_float **vec)
+ {
+ if (sizeof(t_word) != sizeof(float))
+ {
+ static int warned;
+ if (!warned)
+ post(
+ "warning: extern using garray_getfloatarray() won't work in 64-bit version");
+ warned = 1;
+ }
+ return (garray_getfloatwords(x, size, (t_word **)vec));
+ }
/* set the "saveit" flag */
Index: g_graph.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** g_graph.c 3 Jun 2006 19:13:07 -0000 1.10
--- g_graph.c 22 Oct 2006 21:46:11 -0000 1.11
***************
*** 1000,1004 ****
int oldx = 0.5 + glist_pixelstox(x, graph_lastxpix);
int newx = 0.5 + glist_pixelstox(x, newxpix);
! t_float *vec;
int nelem, i;
float oldy = glist_pixelstoy(x, graph_lastypix);
--- 1000,1004 ----
int oldx = 0.5 + glist_pixelstox(x, graph_lastxpix);
int newx = 0.5 + glist_pixelstox(x, newxpix);
! t_word *vec;
int nelem, i;
float oldy = glist_pixelstoy(x, graph_lastypix);
***************
*** 1009,1013 ****
if (!a || pd_class((t_pd *)a) != garray_class)
return;
! if (!garray_getfloatarray(a, &nelem, &vec))
return;
if (oldx < 0) oldx = 0;
--- 1009,1013 ----
if (!a || pd_class((t_pd *)a) != garray_class)
return;
! if (!garray_getfloatwords(a, &nelem, &vec))
return;
if (oldx < 0) oldx = 0;
***************
*** 1020,1024 ****
{
for (i = oldx + 1; i <= newx; i++)
! vec[i] = newy + (oldy - newy) *
((float)(newx - i))/(float)(newx - oldx);
}
--- 1020,1024 ----
{
for (i = oldx + 1; i <= newx; i++)
! vec[i].w_float = newy + (oldy - newy) *
((float)(newx - i))/(float)(newx - oldx);
}
***************
*** 1026,1033 ****
{
for (i = oldx - 1; i >= newx; i--)
! vec[i] = newy + (oldy - newy) *
((float)(newx - i))/(float)(newx - oldx);
}
! else vec[newx] = newy;
garray_redraw(a);
}
--- 1026,1033 ----
{
for (i = oldx - 1; i >= newx; i--)
! vec[i].w_float = newy + (oldy - newy) *
((float)(newx - i))/(float)(newx - oldx);
}
! else vec[newx].w_float = newy;
garray_redraw(a);
}
Index: g_readwrite.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_readwrite.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** g_readwrite.c 15 Aug 2006 04:54:15 -0000 1.7
--- g_readwrite.c 22 Oct 2006 21:46:11 -0000 1.8
***************
*** 259,264 ****
error("qlist_read: unknown flag: %s", format->s_name);
! if (binbuf_read_via_path(b, filename->s_name,
! canvas_getdir(canvas)->s_name, cr))
{
pd_error(x, "read failed");
--- 259,263 ----
error("qlist_read: unknown flag: %s", format->s_name);
! if (binbuf_read_via_canvas(b, filename->s_name, canvas, cr))
{
pd_error(x, "read failed");
--- s_midi_sgi.c DELETED ---
Index: d_array.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_array.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** d_array.c 31 Dec 2005 20:55:25 -0000 1.6
--- d_array.c 22 Oct 2006 21:46:10 -0000 1.7
***************
*** 19,23 ****
int x_phase;
int x_nsampsintab;
! float *x_vec;
t_symbol *x_arrayname;
float x_f;
--- 19,23 ----
int x_phase;
int x_nsampsintab;
! t_word *x_vec;
t_symbol *x_arrayname;
float x_f;
***************
*** 53,57 ****
{
int nxfer = endphase - phase;
! float *fp = x->x_vec + phase;
if (nxfer > n) nxfer = n;
phase += nxfer;
--- 53,57 ----
{
int nxfer = endphase - phase;
! t_word *wp = x->x_vec + phase;
if (nxfer > n) nxfer = n;
phase += nxfer;
***************
*** 61,65 ****
if (PD_BIGORSMALL(f))
f = 0;
! *fp++ = f;
}
if (phase >= endphase)
--- 61,65 ----
if (PD_BIGORSMALL(f))
f = 0;
! (wp++)->w_float = f;
}
if (phase >= endphase)
***************
*** 86,90 ****
x->x_vec = 0;
}
! else if (!garray_getfloatarray(a, &x->x_nsampsintab, &x->x_vec))
{
pd_error(x, "%s: bad template for tabwrite~", x->x_arrayname->s_name);
--- 86,90 ----
x->x_vec = 0;
}
! else if (!garray_getfloatwords(a, &x->x_nsampsintab, &x->x_vec))
{
pd_error(x, "%s: bad template for tabwrite~", x->x_arrayname->s_name);
***************
*** 147,151 ****
int x_nsampsintab;
int x_limit;
! float *x_vec;
t_symbol *x_arrayname;
t_clock *x_clock;
--- 147,151 ----
int x_nsampsintab;
int x_limit;
! t_word *x_vec;
t_symbol *x_arrayname;
t_clock *x_clock;
***************
*** 169,173 ****
{
t_tabplay_tilde *x = (t_tabplay_tilde *)(w[1]);
! t_float *out = (t_float *)(w[2]), *fp;
int n = (int)(w[3]), phase = x->x_phase,
endphase = (x->x_nsampsintab < x->x_limit ?
--- 169,174 ----
{
t_tabplay_tilde *x = (t_tabplay_tilde *)(w[1]);
! t_float *out = (t_float *)(w[2]);
! t_word *wp;
int n = (int)(w[3]), phase = x->x_phase,
endphase = (x->x_nsampsintab < x->x_limit ?
***************
*** 177,181 ****
nxfer = endphase - phase;
! fp = x->x_vec + phase;
if (nxfer > n)
nxfer = n;
--- 178,182 ----
nxfer = endphase - phase;
! wp = x->x_vec + phase;
if (nxfer > n)
nxfer = n;
***************
*** 183,187 ****
phase += nxfer;
while (nxfer--)
! *out++ = *fp++;
if (phase >= endphase)
{
--- 184,188 ----
phase += nxfer;
while (nxfer--)
! *out++ = (wp++)->w_float;
if (phase >= endphase)
{
***************
*** 210,214 ****
x->x_vec = 0;
}
! else if (!garray_getfloatarray(a, &x->x_nsampsintab, &x->x_vec))
{
pd_error(x, "%s: bad template for tabplay~", x->x_arrayname->s_name);
--- 211,215 ----
x->x_vec = 0;
}
! else if (!garray_getfloatwords(a, &x->x_nsampsintab, &x->x_vec))
{
pd_error(x, "%s: bad template for tabplay~", x->x_arrayname->s_name);
***************
*** 274,278 ****
t_object x_obj;
int x_npoints;
! float *x_vec;
t_symbol *x_arrayname;
float x_f;
--- 275,279 ----
t_object x_obj;
int x_npoints;
! t_word *x_vec;
t_symbol *x_arrayname;
float x_f;
***************
*** 296,300 ****
int n = (int)(w[4]);
int maxindex;
! float *buf = x->x_vec, *fp;
int i;
--- 297,301 ----
int n = (int)(w[4]);
int maxindex;
! t_word *buf = x->x_vec;
int i;
***************
*** 309,313 ****
else if (index > maxindex)
index = maxindex;
! *out++ = buf[index];
}
return (w+5);
--- 310,314 ----
else if (index > maxindex)
index = maxindex;
! *out++ = buf[index].w_float;
}
return (w+5);
***************
*** 329,333 ****
x->x_vec = 0;
}
! else if (!garray_getfloatarray(a, &x->x_npoints, &x->x_vec))
{
pd_error(x, "%s: bad template for tabread~", x->x_arrayname->s_name);
--- 330,334 ----
x->x_vec = 0;
}
! else if (!garray_getfloatwords(a, &x->x_npoints, &x->x_vec))
{
pd_error(x, "%s: bad template for tabread~", x->x_arrayname->s_name);
***************
*** 370,374 ****
t_object x_obj;
int x_npoints;
! float *x_vec;
t_symbol *x_arrayname;
float x_f;
--- 371,375 ----
t_object x_obj;
int x_npoints;
! t_word *x_vec;
t_symbol *x_arrayname;
float x_f;
***************
*** 392,396 ****
int n = (int)(w[4]);
int maxindex;
! float *buf = x->x_vec, *fp;
int i;
--- 393,397 ----
int n = (int)(w[4]);
int maxindex;
! t_word *buf = x->x_vec, *wp;
int i;
***************
*** 426,434 ****
index = maxindex, frac = 1;
else frac = findex - index;
! fp = buf + index;
! a = fp[-1];
! b = fp[0];
! c = fp[1];
! d = fp[2];
/* if (!i && !(count++ & 1023))
post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */
--- 427,435 ----
index = maxindex, frac = 1;
else frac = findex - index;
! wp = buf + index;
! a = wp[-1].w_float;
! b = wp[0].w_float;
! c = wp[1].w_float;
! d = wp[2].w_float;
/* if (!i && !(count++ & 1023))
post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */
***************
*** 458,462 ****
x->x_vec = 0;
}
! else if (!garray_getfloatarray(a, &x->x_npoints, &x->x_vec))
{
pd_error(x, "%s: bad template for tabread4~", x->x_arrayname->s_name);
--- 459,463 ----
x->x_vec = 0;
}
! else if (!garray_getfloatwords(a, &x->x_npoints, &x->x_vec))
{
pd_error(x, "%s: bad template for tabread4~", x->x_arrayname->s_name);
***************
*** 564,568 ****
float x_fnpoints;
float x_finvnpoints;
! float *x_vec;
t_symbol *x_arrayname;
float x_f;
--- 565,569 ----
float x_fnpoints;
float x_finvnpoints;
! t_word *x_vec;
t_symbol *x_arrayname;
float x_f;
***************
*** 596,600 ****
float conv = fnpoints * x->x_conv;
int maxindex;
! float *tab = x->x_vec, *addr;
int i;
double dphase = fnpoints * x->x_phase + UNITBIT32;
--- 597,601 ----
float conv = fnpoints * x->x_conv;
int maxindex;
! t_word *tab = x->x_vec, *addr;
int i;
double dphase = fnpoints * x->x_phase + UNITBIT32;
***************
*** 613,620 ****
tf.tf_i[HIOFFSET] = normhipart;
frac = tf.tf_d - UNITBIT32;
! a = addr[0];
! b = addr[1];
! c = addr[2];
! d = addr[3];
cminusb = c-b;
*out++ = b + frac * (
--- 614,621 ----
tf.tf_i[HIOFFSET] = normhipart;
frac = tf.tf_d - UNITBIT32;
! a = addr[0].w_float;
! b = addr[1].w_float;
! c = addr[2].w_float;
! d = addr[3].w_float;
cminusb = c-b;
*out++ = b + frac * (
***************
*** 650,654 ****
x->x_vec = 0;
}
! else if (!garray_getfloatarray(a, &pointsinarray, &x->x_vec))
{
pd_error(x, "%s: bad template for tabosc4~", x->x_arrayname->s_name);
--- 651,655 ----
x->x_vec = 0;
}
! else if (!garray_getfloatwords(a, &pointsinarray, &x->x_vec))
{
pd_error(x, "%s: bad template for tabosc4~", x->x_arrayname->s_name);
***************
*** 705,709 ****
{
t_object x_obj;
! float *x_vec;
int x_graphperiod;
int x_graphcount;
--- 706,710 ----
{
t_object x_obj;
! t_word *x_vec;
int x_graphperiod;
int x_graphcount;
***************
*** 728,732 ****
t_float *in = (t_float *)(w[2]);
int n = w[3];
! t_float *dest = x->x_vec;
int i = x->x_graphcount;
if (!x->x_vec) goto bad;
--- 729,733 ----
t_float *in = (t_float *)(w[2]);
int n = w[3];
! t_word *dest = x->x_vec;
int i = x->x_graphcount;
if (!x->x_vec) goto bad;
***************
*** 737,741 ****
if (PD_BIGORSMALL(f))
f = 0;
! *dest++ = f;
}
if (!i--)
--- 738,742 ----
if (PD_BIGORSMALL(f))
f = 0;
! (dest++)->w_float = f;
}
if (!i--)
***************
*** 762,766 ****
pd_error(x, "tabsend~: %s: no such array", x->x_arrayname->s_name);
}
! else if (!garray_getfloatarray(a, &vecsize, &x->x_vec))
pd_error(x, "%s: bad template for tabsend~", x->x_arrayname->s_name);
else
--- 763,767 ----
pd_error(x, "tabsend~: %s: no such array", x->x_arrayname->s_name);
}
! else if (!garray_getfloatwords(a, &vecsize, &x->x_vec))
pd_error(x, "%s: bad template for tabsend~", x->x_arrayname->s_name);
else
***************
*** 792,796 ****
{
t_object x_obj;
! float *x_vec;
int x_vecsize;
t_symbol *x_arrayname;
--- 793,797 ----
{
t_object x_obj;
! t_word *x_vec;
int x_vecsize;
t_symbol *x_arrayname;
***************
*** 802,811 ****
t_float *out = (t_float *)(w[2]);
int n = w[3];
! t_float *from = x->x_vec;
if (from)
{
int vecsize = x->x_vecsize;
while (vecsize--)
! *out++ = *from++;
vecsize = n - x->x_vecsize;
while (vecsize--)
--- 803,812 ----
t_float *out = (t_float *)(w[2]);
int n = w[3];
! t_word *from = x->x_vec;
if (from)
{
int vecsize = x->x_vecsize;
while (vecsize--)
! *out++ = (from++)->w_float;
vecsize = n - x->x_vecsize;
while (vecsize--)
***************
*** 824,828 ****
pd_error(x, "tabsend~: %s: no such array", x->x_arrayname->s_name);
}
! else if (!garray_getfloatarray(a, &x->x_vecsize, &x->x_vec))
pd_error(x, "%s: bad template for tabreceive~", x->x_arrayname->s_name);
else
--- 825,829 ----
pd_error(x, "tabsend~: %s: no such array", x->x_arrayname->s_name);
}
! else if (!garray_getfloatwords(a, &x->x_vecsize, &x->x_vec))
pd_error(x, "%s: bad template for tabreceive~", x->x_arrayname->s_name);
else
***************
*** 866,874 ****
t_garray *a;
int npoints;
! t_float *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
! else if (!garray_getfloatarray(a, &npoints, &vec))
pd_error(x, "%s: bad template for tabread", x->x_arrayname->s_name);
else
--- 867,875 ----
t_garray *a;
int npoints;
! t_word *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
! else if (!garray_getfloatwords(a, &npoints, &vec))
pd_error(x, "%s: bad template for tabread", x->x_arrayname->s_name);
else
***************
*** 877,881 ****
if (n < 0) n = 0;
else if (n >= npoints) n = npoints - 1;
! outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n] : 0));
}
}
--- 878,882 ----
if (n < 0) n = 0;
else if (n >= npoints) n = npoints - 1;
! outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n].w_float : 0));
}
}
***************
*** 917,944 ****
t_garray *a;
int npoints;
! t_float *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
! else if (!garray_getfloatarray(a, &npoints, &vec))
pd_error(x, "%s: bad template for tabread4", x->x_arrayname->s_name);
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]);
else if (f >= npoints - 2)
! 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;
frac = f - n;
! a = fp[-1];
! b = fp[0];
! c = fp[1];
! d = fp[2];
cminusb = c-b;
outlet_float(x->x_obj.ob_outlet, b + frac * (
--- 918,946 ----
t_garray *a;
int npoints;
! t_word *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
! else if (!garray_getfloatwords(a, &npoints, &vec))
pd_error(x, "%s: bad template for tabread4", x->x_arrayname->s_name);
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].w_float);
else if (f >= npoints - 2)
! outlet_float(x->x_obj.ob_outlet, vec[npoints - 2].w_float);
else
{
int n = f;
! float a, b, c, d, cminusb, frac;
! t_word *wp;
if (n >= npoints - 2)
n = npoints - 3;
! wp = vec + n;
frac = f - n;
! a = wp[-1].w_float;
! b = wp[0].w_float;
! c = wp[1].w_float;
! d = wp[2].w_float;
cminusb = c-b;
outlet_float(x->x_obj.ob_outlet, b + frac * (
***************
*** 985,993 ****
int i, vecsize;
t_garray *a;
! t_float *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
! else if (!garray_getfloatarray(a, &vecsize, &vec))
pd_error(x, "%s: bad template for tabwrite", x->x_arrayname->s_name);
else
--- 987,995 ----
int i, vecsize;
t_garray *a;
! t_word *vec;
if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
pd_error(x, "%s: no such array", x->x_arrayname->s_name);
! else if (!garray_getfloatwords(a, &vecsize, &vec))
pd_error(x, "%s: bad template for tabwrite", x->x_arrayname->s_name);
else
***************
*** 998,1002 ****
else if (n >= vecsize)
n = vecsize-1;
! vec[n] = f;
garray_redraw(a);
}
--- 1000,1004 ----
else if (n >= vecsize)
n = vecsize-1;
! vec[n].w_float = f;
garray_redraw(a);
}