[PD-cvs] pd/src d_soundfile.c,1.2,1.3 g_editor.c,1.2,1.3 g_mycanvas.c,1.2,1.3 g_text.c,1.2,1.3 m_glob.c,1.2,1.3 m_sched.c,1.2,1.3 makefile,1.4,1.5 notes.txt,1.2,1.3 s_audio.c,1.2,1.3 s_audio_alsa.c,1.2,1.3 s_audio_jack.c,1.2,1.3 s_audio_mmio.c,1.2,1.3 s_audio_oss.c,1.3,1.4 s_inter.c,1.2,1.3 s_main.c,1.2,1.3 build.bat,1.2,NONE makefile.irix,1.1.1.1,NONE

ggeiger at projects.sourceforge.net ggeiger at projects.sourceforge.net
Mon Feb 2 15:31:37 CET 2004


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

Modified Files:
	d_soundfile.c g_editor.c g_mycanvas.c g_text.c m_glob.c 
	m_sched.c makefile notes.txt s_audio.c s_audio_alsa.c 
	s_audio_jack.c s_audio_mmio.c s_audio_oss.c s_inter.c s_main.c 
Removed Files:
	build.bat makefile.irix 
Log Message:
merged with version_0_37_1test6

Index: d_soundfile.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_soundfile.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** d_soundfile.c	23 Sep 2003 00:18:13 -0000	1.2
--- d_soundfile.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 541,545 ****
  	else if (!strcmp(flag, "little"))
  	{
! 	    endianness = 1;
  	    argc -= 1; argv += 1;
  	}
--- 541,545 ----
  	else if (!strcmp(flag, "little"))
  	{
! 	    endianness = 0;
  	    argc -= 1; argv += 1;
  	}
***************
*** 671,675 ****
      	wavehdr->w_navgbytespersec =
  	    swap4((int)(samplerate * nchannels * bytespersamp), swap);
!     	wavehdr->w_nblockalign = swap2(bytespersamp, swap);
      	wavehdr->w_nbitspersample = swap2(8 * bytespersamp, swap);
      	strncpy(wavehdr->w_datachunkid, "data", 4);
--- 671,675 ----
      	wavehdr->w_navgbytespersec =
  	    swap4((int)(samplerate * nchannels * bytespersamp), swap);
!     	wavehdr->w_nblockalign = swap2(nchannels * bytespersamp, swap);
      	wavehdr->w_nbitspersample = swap2(8 * bytespersamp, swap);
      	strncpy(wavehdr->w_datachunkid, "data", 4);
***************
*** 730,733 ****
--- 730,746 ----
      	    	goto baddonewrite;
  	}
+ 	if (filetype == FORMAT_NEXT)
+ 	{
+ 	    /* do it the lazy way: just set the size field to 'unknown size'*/
+ 	    uint32 nextsize = 0xffffffff;
+ 	    if (lseek(fd, 8, SEEK_SET) == 0)
+ 	    {
+ 	        goto baddonewrite;
+ 	    }
+ 	    if (write(fd, &nextsize, 4) < 4)
+ 	    {
+ 	        goto baddonewrite;
+ 	    }
+ 	}
      }
      return;

Index: g_editor.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** g_editor.c	23 Sep 2003 00:18:13 -0000	1.2
--- g_editor.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 1435,1438 ****
--- 1435,1440 ----
  	pd_list(keynamesym->s_thing, 0, 2, at);
      }
+     if (!x->gl_editor)	/* if that 'invis'ed the window, we'd better stop. */
+     	return;
      if (x && down)
      {

Index: g_mycanvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** g_mycanvas.c	23 Sep 2003 00:18:14 -0000	1.2
--- g_mycanvas.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 317,327 ****
         &&IS_A_FLOAT(argv,i+9))
      {
! 	if(IS_A_SYMBOL(argv,i+3))
! 	    srl[2] = atom_getsymbolarg(i+3, argc, argv);
! 	else if(IS_A_FLOAT(argv,i+3))
! 	{
! 	    sprintf(str, "%d", (int)atom_getintarg(i+3, argc, argv));
! 	    srl[2] = gensym(str);
! 	}
  	ldx = (int)atom_getintarg(i+4, argc, argv);
  	ldy = (int)atom_getintarg(i+5, argc, argv);
--- 317,325 ----
         &&IS_A_FLOAT(argv,i+9))
      {
!     	    /* disastrously, the "label" sits in a different part of the
! 	    message.  So we have to track its location separately (in
! 	    the slot x_labelbindex) and initialize it specially here. */
!     	iemgui_new_dogetname(&x->x_gui, i+3, argv);
! 	x->x_gui.x_labelbindex = i+4;
  	ldx = (int)atom_getintarg(i+4, argc, argv);
  	ldy = (int)atom_getintarg(i+5, argc, argv);

Index: g_text.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_text.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** g_text.c	23 Sep 2003 00:18:14 -0000	1.2
--- g_text.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 493,497 ****
      	if (x->a_text.te_outlet)
      	    outlet_symbol(x->a_text.te_outlet, x->a_atom.a_w.w_symbol);
! 	if (*x->a_symto->s_name && x->a_symto->s_thing)
  	{
  	    if (x->a_symto == x->a_symfrom)
--- 493,497 ----
      	if (x->a_text.te_outlet)
      	    outlet_symbol(x->a_text.te_outlet, x->a_atom.a_w.w_symbol);
! 	if (*x->a_symto->s_name && x->a_expanded_to->s_thing)
  	{
  	    if (x->a_symto == x->a_symfrom)

Index: m_glob.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_glob.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** m_glob.c	23 Sep 2003 00:18:14 -0000	1.2
--- m_glob.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 98,102 ****
      class_addmethod(glob_pdobject, (t_method)glob_path_dialog,
      	gensym("path-dialog"), A_GIMME, 0);
! #ifdef UNIX
      class_addmethod(glob_pdobject, (t_method)glob_ping, gensym("ping"), 0);
  #endif
--- 98,102 ----
      class_addmethod(glob_pdobject, (t_method)glob_path_dialog,
      	gensym("path-dialog"), A_GIMME, 0);
! #ifdef __linux__
      class_addmethod(glob_pdobject, (t_method)glob_ping, gensym("ping"), 0);
  #endif

Index: m_sched.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_sched.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** m_sched.c	23 Sep 2003 00:18:14 -0000	1.2
--- m_sched.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 266,270 ****
      	/* if there's no GUI but we're running in "realtime", here is
  	where we arrange to ping the watchdog every 2 seconds. */
! #ifdef UNIX
      if (sys_nogui && sys_hipriority && (sched_diddsp - sched_nextpingtime > 0))
      {
--- 266,270 ----
      	/* if there's no GUI but we're running in "realtime", here is
  	where we arrange to ping the watchdog every 2 seconds. */
! #ifdef __linux__
      if (sys_nogui && sys_hipriority && (sched_diddsp - sched_nextpingtime > 0))
      {

Index: makefile
===================================================================
RCS file: /cvsroot/pure-data/pd/src/makefile,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** makefile	20 Nov 2003 19:28:52 -0000	1.4
--- makefile	2 Feb 2004 14:31:34 -0000	1.5
***************
*** 15,29 ****
  # ALSA compilation
  
! SOUND_ALSA = 
  
  DEFINES = 
! MORECFLAGS = -DDL_OPEN  -DUSEAPI_OSS
  
  INCLUDE = -I.
! GINCLUDE = $(INCLUDE)  -I/usr/local/include/tcl8.4 -I/usr/local/include/tk8.4 -I/usr/X11R6/include -I/usr/local/include
! GLIB =  -lX11 -L/usr/X11R6/lib -L/usr/local/lib -ltcl84 -ltk84
  
! LDFLAGS = -Wl,-export-dynamic -L/usr/local/lib/pth -lpthread
! LIB =   -lm
  
  #select either the DBG and OPT compiler flags below:
--- 15,29 ----
  # ALSA compilation
  
! SOUND_ALSA = yes
  
  DEFINES = 
! MORECFLAGS = -DDL_OPEN -DUSEAPI_PORTAUDIO -DPA_USE_OSS -DPA_LITTLE_ENDIAN     	 -DUSEAPI_OSS         -I../portaudio/pa_common         -I../portaudio/pablio -I../portaudio/portmidi-macosx -Werror
  
  INCLUDE = -I.
! GINCLUDE = $(INCLUDE)  -I/usr/include/tcl8.4
! GLIB = -ltk8.4 -ltcl8.4  -lX11 -L/usr/X11R6/lib -L/usr/local/lib
  
! LDFLAGS = -Wl,-export-dynamic
! LIB =   -ldl -lm -lpthread -lasound
  
  #select either the DBG and OPT compiler flags below:
***************
*** 64,68 ****
  # the sources
  
! SYSSRC += s_midi_oss.c s_audio_oss.c 
  
  SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \
--- 64,68 ----
  # the sources
  
! SYSSRC += s_midi_oss.c s_audio_pa.c s_audio_oss.c 	../portaudio/pa_common/pa_allocation.c  	../portaudio/pa_common/pa_converters.c  	../portaudio/pa_common/pa_cpuload.c     	../portaudio/pa_common/pa_dither.c      	../portaudio/pa_common/pa_front.c       	../portaudio/pa_common/pa_process.c     	../portaudio/pa_common/pa_skeleton.c    	../portaudio/pa_common/pa_stream.c      	../portaudio/pa_common/pa_trace.c           	../portaudio/pablio/pablio_pd.c         	../portaudio/pablio/ringbuffer_pd.c     	../portaudio/pa_unix/pa_unix_hostapis.c 	../portaudio/pa_unix/pa_unix_util.c     	../portaudio/pa_unix_oss/pa_unix_oss.c 
  
  SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \

Index: notes.txt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/notes.txt,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** notes.txt	23 Sep 2003 00:18:14 -0000	1.2
--- notes.txt	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 2,13 ****
  
  fix for 0.37:
! don't prepend help- if sethalpname is called
! Tom schouten: $HOME undefined crashes Pd
! update 'getting pd to run' to start in with dialog panels
! MIDI on windows?
  
  0.38:
! message dialog not to disappear
! sprout inlets/outlets on objects whose creation failed.
  portaudio_pd files into src
  GOP bounding box object
--- 2,16 ----
  
  fix for 0.37:
! read xx.txt in "bad" gives warnings
! mess with RME ALSA some more; ALSA readn doesn't work yet.
! test MIDI I/O on all platforms, inc. sysex...
! windows quit doesn't confirm on Windows?
! check Pd in OSX 10.3
  
  0.38:
! document env~ second argument (and why is it no less than 1/10 of first???)
! make watchdog work for MACOSX
! %x to %lx in all "tags" to make 64-bit safe
! plug-in support
  portaudio_pd files into src
  GOP bounding box object

Index: s_audio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** s_audio.c	23 Sep 2003 00:18:14 -0000	1.2
--- s_audio.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 41,45 ****
--- 41,51 ----
  int sys_schedadvance; 	/* scheduler advance in microseconds */
  float sys_dacsr;
+ 
+ #ifdef MACOSX
+ int sys_hipriority = 1;
+ #else
  int sys_hipriority = 0;
+ #endif
+ 
  t_sample *sys_soundout;
  t_sample *sys_soundin;
***************
*** 327,330 ****
--- 333,338 ----
      sys_save_audio_params(naudioindev, audioindev, chindev,
      	naudiooutdev, audiooutdev, choutdev, rate, advance);
+     if (sys_inchannels == 0 && sys_outchannels == 0)
+     	enable = 0;
      audio_state = enable;
      sys_vgui("set pd_whichapi %d\n",  (audio_isopen() ? sys_audioapi : 0));

Index: s_audio_alsa.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_alsa.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** s_audio_alsa.c	23 Sep 2003 00:18:14 -0000	1.2
--- s_audio_alsa.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 664,667 ****
--- 664,668 ----
  #endif
      }
+     /* post ("putzeros %d", n); */
  }
  
***************
*** 677,680 ****
--- 678,682 ----
  #endif
      }
+     /* post ("getzeros %d", n); */
  }
  
***************
*** 714,718 ****
  	    }
  	    defect = indelay + outdelay - alsa_buf_samps;
! 	    if (defect < -DEFDACBLKSIZE)
      	    {
  		checkit = 1;
--- 716,720 ----
  	    }
  	    defect = indelay + outdelay - alsa_buf_samps;
! 	    if (defect < -(3 * DEFDACBLKSIZE / 2) )
      	    {
  		checkit = 1;
***************
*** 728,738 ****
  	    	    sys_log_error(ERR_RESYNC), alreadylogged = 1;
  	    }
      	}
      }
  }
  
! void alsa_listdevs( void)
  {
!     post("device listing not implemented in ALSA yet\n");
  }
  
--- 730,767 ----
  	    	    sys_log_error(ERR_RESYNC), alreadylogged = 1;
  	    }
+ 	    /* if (alreadylogged)
+ 	    	post("in %d out %d defect %d", indelay, outdelay, defect); */
      	}
      }
  }
  
! static int alsa_nnames = 0;
! static char **alsa_names = 0;
! 
! void alsa_adddev(char *name)
  {
!     if (alsa_nnames)
!     	alsa_names = (char **)t_resizebytes(alsa_names,
! 	    alsa_nnames * sizeof(char *),
! 	    (alsa_nnames+1) * sizeof(char *));
!     else alsa_names = (char **)t_getbytes(sizeof(char *));
!     alsa_names[alsa_nnames] = gensym(name)->s_name;
!     alsa_nnames++;
! }
! 
! static void alsa_numbertoname(int devno, char *devname, int nchar)
! {
!     int ndev = 0, cardno = -1;
!     while (!snd_card_next(&cardno) && cardno >= 0)
!     	ndev++;
!     if (devno < 2*ndev)
!     {
!     	if (devno & 1)
!     	    snprintf(devname, nchar, "plughw:%d", devno/2);
!     	else snprintf(devname, nchar, "hw:%d", devno/2);
!     }
!     else if (devno <2*ndev + alsa_nnames)
!     	snprintf(devname, nchar, "%s", alsa_names[devno - 2*ndev]);
!     else snprintf(devname, nchar, "???");
  }
  

Index: s_audio_jack.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_jack.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** s_audio_jack.c	23 Sep 2003 00:18:14 -0000	1.2
--- s_audio_jack.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 55,65 ****
  		jack_filled -= nframes;
  	} else { /* PD could not keep up ! */
! 	  if (jack_started) sys_log_error(ERR_RESYNC);
! 		for (j = 0; j < sys_outchannels;  j++) {
! 			out = jack_port_get_buffer (output_port[j], nframes);
! 			memset(out, 0, sizeof (float) * nframes); 
! 		}
! 		memset(jack_outbuf,0,sizeof(jack_outbuf));
! 		jack_filled = 0;
  	}
  	pthread_cond_broadcast(&jack_sem);
--- 55,65 ----
  		jack_filled -= nframes;
  	} else { /* PD could not keep up ! */
! 	     if (jack_started) sys_log_error(ERR_RESYNC);
! 	     for (j = 0; j < outport_count;  j++) {
! 		  out = jack_port_get_buffer (output_port[j], nframes);
! 		  memset(out, 0, sizeof (float) * nframes); 
! 	     }
! 	     memset(jack_outbuf,0,sizeof(jack_outbuf));
! 	     jack_filled = 0;
  	}
  	pthread_cond_broadcast(&jack_sem);

Index: s_audio_mmio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_mmio.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** s_audio_mmio.c	23 Sep 2003 00:18:14 -0000	1.2
--- s_audio_mmio.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 33,37 ****
  #define DEFBUFFER 30	/* default is about 30x6 = 180 msec! */
  static int nt_naudiobuffer = DEFBUFFER;
- 
  float sys_dacsr = DEFAULTSRATE;
  
--- 33,36 ----
***************
*** 114,118 ****
  }
  
- static int nt_inalloc[NAPORTS], nt_outalloc[NAPORTS];
  static UINT nt_whichdac = WAVE_MAPPER, nt_whichadc = WAVE_MAPPER;
  
--- 113,116 ----
***************
*** 120,127 ****
  { 
      PCMWAVEFORMAT  form; 
!     int i;
      UINT mmresult;
      int nad, nda;
! 
      if (sys_verbose)
      	post("%d devices in, %d devices out",
--- 118,125 ----
  { 
      PCMWAVEFORMAT  form; 
!     int i, j;
      UINT mmresult;
      int nad, nda;
!     static int naudioprepped = 0, nindevsprepped = 0, noutdevsprepped = 0;
      if (sys_verbose)
      	post("%d devices in, %d devices out",
***************
*** 137,140 ****
--- 135,164 ----
      if (nt_nwavein <= 1 && nt_nwaveout <= 1)
      	nt_noresync();
+ 
+     if (nindevsprepped < nt_nwavein)
+     {
+     	for (i = nindevsprepped; i < nt_nwavein; i++)
+     	    for (j = 0; j < nt_naudiobuffer; j++)
+ 	    	wave_prep(&ntsnd_invec[i][j]);
+     	nindevsprepped = nt_nwavein;
+     }
+     if (noutdevsprepped < nt_nwaveout)
+     {
+     	for (i = noutdevsprepped; i < nt_nwaveout; i++)
+     	    for (j = 0; j < nt_naudiobuffer; j++)
+ 	    	wave_prep(&ntsnd_outvec[i][j]);
+     	noutdevsprepped = nt_nwaveout;
+     }
+     if (naudioprepped < nt_naudiobuffer)
+     {
+     	for (j = naudioprepped; j < nt_naudiobuffer; j++)
+ 	{
+     	    for (i = 0; i < nt_nwavein; i++)
+ 	    	wave_prep(&ntsnd_invec[i][j]);
+     	    for (i = 0; i < nt_nwaveout; i++)
+ 	    	wave_prep(&ntsnd_outvec[i][j]);
+     	}
+ 	naudioprepped = nt_naudiobuffer;
+     }
      for (nad=0; nad < nt_nwavein; nad++)
      {
***************
*** 155,164 ****
  	else 
  	{
- 	    if (!nt_inalloc[nad])
- 	    {
- 		for (i = 0; i < nt_naudiobuffer; i++)
- 	    	    wave_prep(&ntsnd_invec[nad][i]);
- 		nt_inalloc[nad] = 1;
- 	    }
  	    for (i = 0; i < nt_naudiobuffer; i++)
  	    {
--- 179,182 ----
***************
*** 175,184 ****
      }
      	/* quickly start them all together */
!     for(nad=0; nad < nt_nwavein; nad++)
      	waveInStart(ntsnd_indev[nad]);
  
!     for(nda=0; nda < nt_nwaveout; nda++)
!     {
!     	
      	    /* Open a waveform device for output in sucessiv device numbering*/
      	mmresult = waveOutOpen(&ntsnd_outdev[nda], nt_whichdac + nda,
--- 193,201 ----
      }
      	/* quickly start them all together */
!     for (nad = 0; nad < nt_nwavein; nad++)
      	waveInStart(ntsnd_indev[nad]);
  
!     for (nda = 0; nda < nt_nwaveout; nda++)
!     {	
      	    /* Open a waveform device for output in sucessiv device numbering*/
      	mmresult = waveOutOpen(&ntsnd_outdev[nda], nt_whichdac + nda,
***************
*** 195,211 ****
              nt_nwaveout = nda;
      	}
- 	else
- 	{
- 	    if (!(nt_outalloc[nda]))
- 	    {
- 	    	for (i = 0; i < nt_naudiobuffer; i++)
- 	    	{
-     	    	    wave_prep(&ntsnd_outvec[nda][i]);
- 	    	    	    /* set DONE flag as if we had queued them */
-     	    	    ntsnd_outvec[nda][i].lpWaveHdr->dwFlags = WHDR_DONE;
-     	    	}
-     	    	nt_outalloc[nda] = 1;
- 	    }
-     	}
      }
  
--- 212,215 ----

Index: s_audio_oss.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_oss.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** s_audio_oss.c	10 Nov 2003 16:13:11 -0000	1.3
--- s_audio_oss.c	2 Feb 2004 14:31:34 -0000	1.4
***************
*** 477,480 ****
--- 477,482 ----
      }
      sys_setalarm(0);
+     sys_inchannels = inchannels;
+     sys_outchannels = outchannels;
      return (0);
  }

Index: s_inter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** s_inter.c	23 Sep 2003 00:18:14 -0000	1.2
--- s_inter.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 521,524 ****
--- 521,525 ----
  static int sys_watchfd;
  
+ #ifdef __linux__
  void glob_ping(t_pd *dummy)
  {
***************
*** 529,532 ****
--- 530,534 ----
      }
  }
+ #endif
  
  static int defaultfontshit[] = {
***************
*** 626,630 ****
  	if (setsockopt(xsock, IPPROTO_TCP, TCP_NODELAY,
      	    &intarg, sizeof(intarg)) < 0)
!     		post("setsockopt (TCP_NODELAY) failed\n");
  	
  	
--- 628,635 ----
  	if (setsockopt(xsock, IPPROTO_TCP, TCP_NODELAY,
      	    &intarg, sizeof(intarg)) < 0)
! #ifndef MSW
!     		post("setsockopt (TCP_NODELAY) failed\n")
! #endif
!     	    	    ;
  	
  	
***************
*** 733,737 ****
      	    /* in MSW land "guipath" is unused; we just do everything from
  	    the libdir. */
!     	fprintf(stderr, "%s\n", sys_libdir->s_name);
      	
      	strcpy(scriptbuf, "\"");
--- 738,742 ----
      	    /* in MSW land "guipath" is unused; we just do everything from
  	    the libdir. */
!     	/* fprintf(stderr, "%s\n", sys_libdir->s_name); */
      	
      	strcpy(scriptbuf, "\"");
***************
*** 832,835 ****
--- 837,841 ----
  #endif
  #ifdef MACOSX
+     if (sys_hipriority)
      {
  	struct sched_param param;
***************
*** 863,868 ****
--- 869,876 ----
  
  	    /* here is where we start the pinging. */
+ #ifdef __linux__
  	if (sys_hipriority)
      	    sys_gui("pdtk_watchdog\n");
+ #endif
      	sys_get_audio_apis(buf);
  	sys_vgui("pdtk_pd_startup {%s} %s\n", pd_version, buf); 
***************
*** 884,888 ****
  }
  
! /* LATER try to save dirty documents */
  void sys_bail(int n)
  {
--- 892,902 ----
  }
  
! /* T.Grill - import clean quit function */
! extern void sys_exit(void);
! 
! /* This is called when something bad has happened, like a segfault.
! Call glob_quit() below to exit cleanly.
! LATER try to save dirty documents even in the bad case. */
! 
  void sys_bail(int n)
  {
***************
*** 898,902 ****
  	fprintf(stderr, "... done.\n");
  #endif
! 	exit(1);
      }
      else _exit(n);
--- 912,916 ----
  	fprintf(stderr, "... done.\n");
  #endif
!     	exit(1);
      }
      else _exit(n);
***************
*** 907,911 ****
--- 921,928 ----
      sys_vgui("exit\n");
      if (!sys_nogui)
+     {
      	close(sys_guisock);
+ 	sys_rmpollfn(sys_guisock);
+     }
      sys_bail(0); 
  }

Index: s_main.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** s_main.c	23 Sep 2003 00:18:14 -0000	1.2
--- s_main.c	2 Feb 2004 14:31:34 -0000	1.3
***************
*** 8,12 ****
   */
  
! char pd_version[] = "Pd version 0.37.0\n";
  char pd_compiletime[] = __TIME__;
  char pd_compiledate[] = __DATE__;
--- 8,12 ----
   */
  
! char pd_version[] = "Pd version 0.37.1 TEST6 devel\n";
  char pd_compiletime[] = __TIME__;
  char pd_compiledate[] = __DATE__;
***************
*** 39,42 ****
--- 39,43 ----
  int m_scheduler(void);
  void sys_addhelppath(char *p);
+ void alsa_adddev(char *name);
  
  int sys_debuglevel;
***************
*** 228,233 ****
  }
  
! static void sys_addextrapath(void);
! static void sys_addreferencepath(void);
  
  /* this is called from main() in s_entry.c */
--- 229,233 ----
  }
  
! static void sys_afterargparse(void);
  
  /* this is called from main() in s_entry.c */
***************
*** 242,248 ****
      sys_rcfile();                               /* parse the startup file */
  #endif
!     if (sys_argparse(argc, argv)) return (1);	/* parse cmd line */
!     sys_addextrapath();
!     sys_addreferencepath();
      if (sys_verbose || sys_version) fprintf(stderr, "%scompiled %s %s\n",
      	pd_version, pd_compiletime, pd_compiledate);
--- 242,248 ----
      sys_rcfile();                               /* parse the startup file */
  #endif
!     if (sys_argparse(argc, argv))   	    /* parse cmd line */
!     	return (1);
!     sys_afterargparse();    	    	    /* post-argparse settings */
      if (sys_verbose || sys_version) fprintf(stderr, "%scompiled %s %s\n",
      	pd_version, pd_compiletime, pd_compiledate);
***************
*** 287,290 ****
--- 287,291 ----
  #ifdef USEAPI_ALSA
  "-alsa            -- use ALSA audio API\n",
+ "-alsaadd <name>  -- add an ALSA device name to list\n",
  "-alsadev <n>     ----- obsolete: use -audiodev\n",
  #endif
***************
*** 329,334 ****
  "-guicmd \"cmd...\" -- substitute another GUI program (e.g., rsh)\n",
  "-send \"msg...\"   -- send a message at startup (after patches are loaded)\n",
! #ifdef __linux__
! "-rt or -realtime -- use real-time priority (needs root privilege)\n",
  #endif
  };
--- 330,336 ----
  "-guicmd \"cmd...\" -- substitute another GUI program (e.g., rsh)\n",
  "-send \"msg...\"   -- send a message at startup (after patches are loaded)\n",
! #ifdef UNIX
! "-rt or -realtime -- use real-time priority\n",
! "-nrt             -- don't use real-time priority\n",
  #endif
  };
***************
*** 459,471 ****
  }
  
  int sys_argparse(int argc, char **argv)
  {
      char sbuf[MAXPDSTRING];
      int i;
- #ifdef MSW
-     int mmio = 1;
- #else
-     int mmio = 0;
- #endif
      argc--; argv++;
      while ((argc > 0) && **argv == '-')
--- 461,474 ----
  }
  
+ #ifdef MSW
+ static int sys_mmio = 1;
+ #else
+ static int sys_mmio = 0;
+ #endif
+ 
  int sys_argparse(int argc, char **argv)
  {
      char sbuf[MAXPDSTRING];
      int i;
      argc--; argv++;
      while ((argc > 0) && **argv == '-')
***************
*** 561,564 ****
--- 564,574 ----
      	    argc--; argv++;
      	}
+     	else if (!strcmp(*argv, "-alsaadd"))
+     	{
+ 	    if (argc > 1)
+ 	    	alsa_adddev(argv[1]);
+ 	    else goto usage;
+ 	    argc -= 2; argv +=2;
+     	}
  	    /* obsolete flag for setting ALSA device number or name */
  	else if (!strcmp(*argv, "-alsadev"))
***************
*** 594,598 ****
      	{
      	    sys_set_audio_api(API_PORTAUDIO);
! 	    mmio = 0;
      	    argc--; argv++;
      	}
--- 604,608 ----
      	{
      	    sys_set_audio_api(API_PORTAUDIO);
! 	    sys_mmio = 0;
      	    argc--; argv++;
      	}
***************
*** 602,606 ****
      	{
      	    sys_set_audio_api(API_MMIO);
! 	    mmio = 1;
      	    argc--; argv++;
      	}
--- 612,616 ----
      	{
      	    sys_set_audio_api(API_MMIO);
! 	    sys_mmio = 1;
      	    argc--; argv++;
      	}
***************
*** 720,723 ****
--- 730,738 ----
      	    argc--; argv++;
      	}
+     	else if (!strcmp(*argv, "-nrt"))
+     	{
+     	    sys_hipriority = 0;
+     	    argc--; argv++;
+     	}
  #endif
      	else if (!strcmp(*argv, "-soundindev") ||
***************
*** 763,781 ****
      	sys_openlist = namelist_append(sys_openlist, *argv);
  
-     	/* correct to make audio and MIDI device lists zero based.  On
- 	MMIO, however, "1" really means the second device (the first one
- 	is "mapper" which is was not included when the command args were
- 	set up, so we leave it that way for compatibility. */
-     if (!mmio)
-     {
-     	for (i = 0; i < sys_nsoundin; i++)
-     	    sys_soundindevlist[i]--;
-     	for (i = 0; i < sys_nsoundout; i++)
-     	    sys_soundoutdevlist[i]--;
-     }
-     for (i = 0; i < sys_nmidiin; i++)
-     	sys_midiindevlist[i]--;
-     for (i = 0; i < sys_nmidiout; i++)
-     	sys_midioutdevlist[i]--;
  
      return (0);
--- 778,781 ----
***************
*** 787,793 ****
  }
  
! static void sys_addextrapath(void)
  {
      char sbuf[MAXPDSTRING];
  	    /* add "extra" library to path */
      strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30);
--- 787,796 ----
  }
  
!     /* stuff to do, once, after calling sys_argparse() -- which may itself
!     be called twice because of the .pdrc hack. */
! static void sys_afterargparse(void)
  {
      char sbuf[MAXPDSTRING];
+     int i;
  	    /* add "extra" library to path */
      strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30);
***************
*** 795,803 ****
      strcat(sbuf, "/extra");
      sys_addpath(sbuf);
- }
- 
- static void sys_addreferencepath(void)
- {
-     char sbuf[MAXPDSTRING];
  	    /* add "doc/5.reference" library to helppath */
      strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30);
--- 798,801 ----
***************
*** 805,807 ****
--- 803,825 ----
      strcat(sbuf, "/doc/5.reference");
      sys_addhelppath(sbuf);
+     	/* correct to make audio and MIDI device lists zero based.  On
+ 	MMIO, however, "1" really means the second device (the first one
+ 	is "mapper" which is was not included when the command args were
+ 	set up, so we leave it that way for compatibility. */
+     if (!sys_mmio)
+     {
+     	for (i = 0; i < sys_nsoundin; i++)
+     	    sys_soundindevlist[i]--;
+     	for (i = 0; i < sys_nsoundout; i++)
+     	    sys_soundoutdevlist[i]--;
+     }
+     for (i = 0; i < sys_nmidiin; i++)
+     	sys_midiindevlist[i]--;
+     for (i = 0; i < sys_nmidiout; i++)
+     	sys_midioutdevlist[i]--;
+ }
+ 
+ static void sys_addreferencepath(void)
+ {
+     char sbuf[MAXPDSTRING];
  }

--- build.bat DELETED ---

--- makefile.irix DELETED ---





More information about the Pd-cvs mailing list