[PD-cvs] pd/src notes.txt, 1.21, 1.22 s_audio.c, 1.7, 1.8 s_file.c, 1.7, 1.8 s_inter.c, 1.13, 1.14 s_main.c, 1.18, 1.19 s_path.c, 1.6, 1.7 t_tkcmd.c, 1.5, 1.6 u_main.tk, 1.16, 1.17 x_gui.c, 1.3, 1.4

Miller Puckette millerpuckette at users.sourceforge.net
Sun Oct 16 01:14:30 CEST 2005


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8128/pd/src

Modified Files:
	notes.txt s_audio.c s_file.c s_inter.c s_main.c s_path.c 
	t_tkcmd.c u_main.tk x_gui.c 
Log Message:
Bug fixes, notably for mac if no audio input device is available; also
worked around a problem in ASIO support on MSW (but need to fix it better.)




Index: s_main.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** s_main.c	15 Sep 2005 03:17:27 -0000	1.18
--- s_main.c	15 Oct 2005 23:14:28 -0000	1.19
***************
*** 3,7 ****
  * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
  
! char pd_version[] = "Pd version 0.39-1test1\n";
  char pd_compiletime[] = __TIME__;
  char pd_compiledate[] = __DATE__;
--- 3,7 ----
  * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
  
! char pd_version[] = "Pd version 0.39-1\n";
  char pd_compiletime[] = __TIME__;
  char pd_compiledate[] = __DATE__;

Index: u_main.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** u_main.tk	19 Aug 2005 23:28:03 -0000	1.16
--- u_main.tk	15 Oct 2005 23:14:28 -0000	1.17
***************
*** 70,75 ****
              if {$pd_macready != 0} {
                  pd [concat pd open [pdtk_enquote [file tail $file]] \
! 		    [pdtk_enquote  [file dirname $file]] \;]
! 		    menu_doc_open [file dirname $file] [file tail $file]
              } else {
                  set pd_macdropped $args
--- 70,75 ----
              if {$pd_macready != 0} {
                  pd [concat pd open [pdtk_enquote [file tail $file]] \
!                     [pdtk_enquote  [file dirname $file]] \;]
[...3518 lines suppressed...]
      pack $id.nortframe -side bottom -fill x -pady 2m
      if {$pd_nt != 1} {
!         checkbutton $id.nortframe.nort -text {defeat real-time scheduling} \
!             -variable pd_nort -anchor w
      }
      button $id.nortframe.save -text {Save all settings}\
!         -command "startup_apply $id \; pd pd save-preferences \\;"
      if {$pd_nt != 1} {
!         pack $id.nortframe.nort $id.nortframe.save -side left -expand 1
      } else {
!         pack $id.nortframe.save -side left -expand 1
      }
  
      for {set x 0} {$x < 10} {incr x} {
!         entry $id.f$x -textvariable pd_startup$x -width 80
!         bind $id.f$x <KeyPress-Return> [concat startup_ok $id]
!         pdtk_standardkeybindings $id.f$x
!         pack $id.f$x -side top
      }
  

Index: s_path.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_path.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** s_path.c	18 May 2005 04:28:51 -0000	1.6
--- s_path.c	15 Oct 2005 23:14:28 -0000	1.7
***************
*** 376,379 ****
--- 376,385 ----
      char* buffer;
      char  fname[MAXPDSTRING], buf[1000], *home = getenv("HOME");
+     int retval = 1; /* that's what we will return at the end; for now, let's think it'll be an error */
+  
+     /* initialize rc-arg-array so we can safely clean up at the end */
+     for (i = 1; i < NUMARGS-1; i++)
+       rcargv[i]=0;
+ 
  
      /* parse a startup file */
***************
*** 399,403 ****
          buf[1000] = 0;
          if (!(rcargv[i] = malloc(strlen(buf) + 1)))
!             return (1);
          strcpy(rcargv[i], buf);
      }
--- 405,409 ----
          buf[1000] = 0;
          if (!(rcargv[i] = malloc(strlen(buf) + 1)))
!             goto cleanup;
          strcpy(rcargv[i], buf);
      }
***************
*** 424,430 ****
      {
          post("error parsing RC arguments");
!         return (1);
      }
!     return (0);
  }
  #endif /* MSW */
--- 430,444 ----
      {
          post("error parsing RC arguments");
!         goto cleanup;
      }
! 
!     retval=0; /* we made it without an error */
! 
! 
!  cleanup: /* prevent memleak */
!     for (i = 1; i < NUMARGS-1; i++)
!       if(rcargv[i])free(rcargv[i]);
!     
!     return(retval);
  }
  #endif /* MSW */

Index: s_inter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** s_inter.c	19 Aug 2005 23:28:03 -0000	1.13
--- s_inter.c	15 Oct 2005 23:14:28 -0000	1.14
***************
*** 285,288 ****
--- 285,289 ----
  #endif
  
+ #ifdef REALLY_POSIX_MEMLOCK /* this doesn't work on Fedora 4, for example. */
  #ifdef _POSIX_MEMLOCK
      /* tb: force memlock to physical memory { */
***************
*** 297,301 ****
          fprintf(stderr, "memory locking enabled.\n");
  #endif
! 
  }
  
--- 298,302 ----
          fprintf(stderr, "memory locking enabled.\n");
  #endif
! #endif
  }
  

Index: notes.txt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/notes.txt,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** notes.txt	21 Aug 2005 17:46:52 -0000	1.21
--- notes.txt	15 Oct 2005 23:14:28 -0000	1.22
***************
*** 66,69 ****
--- 66,70 ----
  expr to parse exponential notation
  pipe to handle symbols&pointers (just takes floats now???)
+ use snd_pcm_poll_descriptors_count, etc., to set alsa FDs CLOEXEC?
  editing:
      "enter" into object box to create new one (also, change border? forking?)

Index: t_tkcmd.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/t_tkcmd.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** t_tkcmd.c	19 Aug 2005 23:28:03 -0000	1.5
--- t_tkcmd.c	15 Oct 2005 23:14:28 -0000	1.6
***************
*** 480,490 ****
  static void pdgui_setupsocket(void)
  {
- #ifdef DEBUGCONNECT
-         debugfd = fopen("/Users/msp/bratwurst", "w");
-         fprintf(debugfd, "turning stderr back on\n");
-         fflush(debugfd);
-         dup2(fileno(debugfd), 2);
-         fprintf(stderr, "duped to stderr?\n");
- #endif
  #ifdef MSW
          pdgui_connecttosocket();
--- 480,483 ----
***************
*** 625,630 ****
--- 618,641 ----
      const char *argv = Tcl_GetVar(interp, "argv", 0);
      int portno, argno = 0;
+         /* argument passing seems to be different in MSW as opposed to
+         unix-likes.  Here we check if we got sent a "port number" as an
+         argument.  If so. we're to connect to a previously running pd (i.e.,
+         pd got started first).  If not, we start Pd from here. */
+ #ifdef MSW
      if (argv && (portno = atoi(argv)) > 1)
+ #else
+     char *firstspace;
+     if (argv && (firstspace = strchr(argv, ' ')) && (portno = atoi(firstspace)) > 1)
+ #endif
          pdgui_setsock(portno);
+ #ifdef DEBUGCONNECT
+     debugfd = fopen("/Users/msp/bratwurst", "w");
+     fprintf(debugfd, "turning stderr back on\n");
+     fflush(debugfd);
+     dup2(fileno(debugfd), 2);
+     fprintf(stderr, "duped to stderr?\n");
+     fprintf(stderr, "portno %d\n", pd_portno);
+     fprintf(stderr, "argv %s\n", argv);
+ #endif
      tk_pdinterp = interp;
      pdgui_startup(interp);

Index: s_audio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** s_audio.c	28 Nov 2004 21:20:42 -0000	1.7
--- s_audio.c	15 Oct 2005 23:14:28 -0000	1.8
***************
*** 26,29 ****
--- 26,35 ----
  #define SYS_XFERSAMPS (SYS_DEFAULTCH*DEFDACBLKSIZE)
  #define SYS_XFERSIZE (SYS_SAMPLEWIDTH * SYS_XFERSAMPS)
+ #define MAXNDEV 20
+ #define DEVDESCSIZE 80
+ 
+ static void audio_getdevs(char *indevlist, int *nindevs,
+     char *outdevlist, int *noutdevs, int *canmulti, 
+         int maxndev, int devdescsize);
  
      /* these are set in this file when opening audio, but then may be reduced,
***************
*** 168,171 ****
--- 174,182 ----
      int realinchans[MAXAUDIOINDEV], realoutchans[MAXAUDIOOUTDEV];
  
+     char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE];
+     int indevs = 0, outdevs = 0, canmulti = 0;
+     audio_getdevs(indevlist, &indevs, outdevlist, &outdevs, &canmulti,
+         MAXNDEV, DEVDESCSIZE);
+ 
      if (sys_externalschedlib)
      {
***************
*** 189,196 ****
          if (nchindev == -1)
          {
!             nchindev=1;
!             chindev[0] = defaultchannels;
!             naudioindev = 1;
!             audioindev[0] = DEFAULTAUDIODEV;
          }
          else
--- 200,211 ----
          if (nchindev == -1)
          {
!             if (indevs >= 1)
!             {
!                 nchindev=1;
!                 chindev[0] = defaultchannels;
!                 naudioindev = 1;
!                 audioindev[0] = DEFAULTAUDIODEV;
!             }
!             else naudioindev = nchindev = 0;
          }
          else
***************
*** 235,242 ****
          if (nchoutdev == -1)
          {
!             nchoutdev=1;
!             choutdev[0]=defaultchannels;
!             naudiooutdev=1;
!             audiooutdev[0] = DEFAULTAUDIODEV;
          }
          else
--- 250,261 ----
          if (nchoutdev == -1)
          {
!             if (outdevs >= 1)
!             {
!                 nchoutdev=1;
!                 choutdev[0]=defaultchannels;
!                 naudiooutdev=1;
!                 audiooutdev[0] = DEFAULTAUDIODEV;
!             }
!             else nchoutdev = naudiooutdev = 0;
          }
          else
***************
*** 501,507 ****
  }
  
- #define MAXNDEV 20
- #define DEVDESCSIZE 80
- 
  static void audio_getdevs(char *indevlist, int *nindevs,
      char *outdevlist, int *noutdevs, int *canmulti, 
--- 520,523 ----
***************
*** 606,609 ****
--- 622,626 ----
  }
  
+ 
      /* start an audio settings dialog window */
  void glob_audio_properties(t_pd *dummy, t_floatarg flongform)

Index: x_gui.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_gui.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** x_gui.c	6 Sep 2004 20:20:36 -0000	1.3
--- x_gui.c	15 Oct 2005 23:14:28 -0000	1.4
***************
*** 45,49 ****
  void gfxstub_new(t_pd *owner, void *key, const char *cmd)
  {
!     char buf[MAXPDSTRING];
      char namebuf[80];
      t_gfxstub *x;
--- 45,49 ----
  void gfxstub_new(t_pd *owner, void *key, const char *cmd)
  {
!     char buf[4*MAXPDSTRING];
      char namebuf[80];
      t_gfxstub *x;
***************
*** 53,59 ****
          if (x->x_key == key)
              gfxstub_deleteforkey(key);
!     if (strlen(cmd) + 50 > MAXPDSTRING)
      {
          bug("audio dialog too long");
          return;
      }
--- 53,60 ----
          if (x->x_key == key)
              gfxstub_deleteforkey(key);
!     if (strlen(cmd) + 50 > 4*MAXPDSTRING)
      {
          bug("audio dialog too long");
+         bug("%x", cmd);
          return;
      }

Index: s_file.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_file.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** s_file.c	29 Jul 2005 19:01:21 -0000	1.7
--- s_file.c	15 Oct 2005 23:14:28 -0000	1.8
***************
*** 258,261 ****
--- 258,262 ----
  #endif /* MACOSX */
  
+ 
  void sys_loadpreferences( void)
  {
***************
*** 266,269 ****
--- 267,271 ----
      int i, rate = 0, advance = 0, api, nolib, maxi;
      char prefbuf[MAXPDSTRING], keybuf[80];
+ 
      sys_initloadpreferences();
          /* load audio preferences */
***************
*** 272,276 ****
              sys_set_audio_api(api);
      if (sys_getpreference("noaudioin", prefbuf, MAXPDSTRING) &&
!         !strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))
              naudioindev = 0;
      else
--- 274,278 ----
              sys_set_audio_api(api);
      if (sys_getpreference("noaudioin", prefbuf, MAXPDSTRING) &&
!         (!strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))) /* JMZ/MB: brackets for initializing */
              naudioindev = 0;
      else
***************
*** 290,294 ****
      }
      if (sys_getpreference("noaudioout", prefbuf, MAXPDSTRING) &&
!         !strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))
              naudiooutdev = 0;
      else
--- 292,296 ----
      }
      if (sys_getpreference("noaudioout", prefbuf, MAXPDSTRING) &&
!         (!strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))) /* JMZ/MB: brackets for initializing */
              naudiooutdev = 0;
      else
***************
*** 315,319 ****
          /* load MIDI preferences */
      if (sys_getpreference("nomidiin", prefbuf, MAXPDSTRING) &&
!         !strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))
              nmidiindev = 0;
      else for (i = 0, nmidiindev = 0; i < MAXMIDIINDEV; i++)
--- 317,321 ----
          /* load MIDI preferences */
      if (sys_getpreference("nomidiin", prefbuf, MAXPDSTRING) &&
!         (!strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))) /* JMZ/MB: brackets for initializing */
              nmidiindev = 0;
      else for (i = 0, nmidiindev = 0; i < MAXMIDIINDEV; i++)
***************
*** 327,331 ****
      }
      if (sys_getpreference("nomidiout", prefbuf, MAXPDSTRING) &&
!         !strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))
              nmidioutdev = 0;
      else for (i = 0, nmidioutdev = 0; i < MAXMIDIOUTDEV; i++)
--- 329,333 ----
      }
      if (sys_getpreference("nomidiout", prefbuf, MAXPDSTRING) &&
!         (!strcmp(prefbuf, ".") || !strcmp(prefbuf, "True"))) /* JMZ/MB: brackets for initializing */
              nmidioutdev = 0;
      else for (i = 0, nmidioutdev = 0; i < MAXMIDIOUTDEV; i++)





More information about the Pd-cvs mailing list