[PD-cvs] pd/src d_array.c, 1.6, 1.7 d_soundfile.c, 1.12, 1.13 g_array.c, 1.11, 1.12 g_graph.c, 1.10, 1.11 g_readwrite.c, 1.7, 1.8 m_pd.h, 1.16, 1.17 makefile.in, 1.14, 1.15 notes.txt, 1.32, 1.33 s_path.c, 1.11, 1.12 makefile.irix, 1.3, NONE s_audio_sgi.c, 1.1, NONE s_midi_sgi.c, 1.2, NONE

Miller Puckette millerpuckette at users.sourceforge.net
Sun Oct 22 23:46:13 CEST 2006


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);
      }





More information about the Pd-cvs mailing list