Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14470
Modified Files: Tag: devel_0_37 d_soundfile.c g_editor.c g_mycanvas.c g_text.c m_glob.c m_sched.c s_audio.c s_audio_alsa.c s_audio_mmio.c s_inter.c s_main.c Log Message: merged in version 0.37-1test6
Index: d_soundfile.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/d_soundfile.c,v retrieving revision 1.1.1.2.2.1 retrieving revision 1.1.1.2.2.2 diff -C2 -d -r1.1.1.2.2.1 -r1.1.1.2.2.2 *** d_soundfile.c 8 Jul 2003 09:48:57 -0000 1.1.1.2.2.1 --- d_soundfile.c 22 Feb 2004 17:36:50 -0000 1.1.1.2.2.2 *************** *** 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.1.1.4.2.3 retrieving revision 1.1.1.4.2.4 diff -C2 -d -r1.1.1.4.2.3 -r1.1.1.4.2.4 *** g_editor.c 25 Nov 2003 19:19:57 -0000 1.1.1.4.2.3 --- g_editor.c 22 Feb 2004 17:36:50 -0000 1.1.1.4.2.4 *************** *** 1472,1475 **** --- 1472,1477 ---- 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.1.1.3.2.2 retrieving revision 1.1.1.3.2.3 diff -C2 -d -r1.1.1.3.2.2 -r1.1.1.3.2.3 *** g_mycanvas.c 18 Nov 2003 10:34:10 -0000 1.1.1.3.2.2 --- g_mycanvas.c 22 Feb 2004 17:36:50 -0000 1.1.1.3.2.3 *************** *** 299,303 **** the slot x_labelbindex) and initialize it specially here. */ iemgui_new_dogetname(&x->x_gui, i+3, argv); ! x->x_gui.x_labelbindex = i+3; ldx = (int)atom_getintarg(i+4, argc, argv); ldy = (int)atom_getintarg(i+5, argc, argv); --- 299,303 ---- 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.1.1.4.2.2 retrieving revision 1.1.1.4.2.3 diff -C2 -d -r1.1.1.4.2.2 -r1.1.1.4.2.3 *** g_text.c 12 Sep 2003 20:55:31 -0000 1.1.1.4.2.2 --- g_text.c 22 Feb 2004 17:36:50 -0000 1.1.1.4.2.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.1.1.2.2.5 retrieving revision 1.1.1.2.2.6 diff -C2 -d -r1.1.1.2.2.5 -r1.1.1.2.2.6 *** m_glob.c 22 Feb 2004 05:52:16 -0000 1.1.1.2.2.5 --- m_glob.c 22 Feb 2004 17:36:51 -0000 1.1.1.2.2.6 *************** *** 101,105 **** class_addmethod(glob_pdobject, (t_method)glob_tooltips, gensym("tooltips"), A_DEFFLOAT, 0); ! #ifdef UNIX class_addmethod(glob_pdobject, (t_method)glob_ping, gensym("ping"), 0); #endif --- 101,105 ---- class_addmethod(glob_pdobject, (t_method)glob_tooltips, gensym("tooltips"), A_DEFFLOAT, 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.1.1.2.2.7 retrieving revision 1.1.1.2.2.8 diff -C2 -d -r1.1.1.2.2.7 -r1.1.1.2.2.8 *** m_sched.c 14 Jan 2004 15:50:28 -0000 1.1.1.2.2.7 --- m_sched.c 22 Feb 2004 17:36:51 -0000 1.1.1.2.2.8 *************** *** 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: s_audio.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v retrieving revision 1.1.1.1.2.7 retrieving revision 1.1.1.1.2.8 diff -C2 -d -r1.1.1.1.2.7 -r1.1.1.1.2.8 *** s_audio.c 14 Jan 2004 15:50:28 -0000 1.1.1.1.2.7 --- s_audio.c 22 Feb 2004 17:36:51 -0000 1.1.1.1.2.8 *************** *** 43,47 **** --- 43,53 ---- 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;
Index: s_audio_alsa.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_audio_alsa.c,v retrieving revision 1.1.1.1.2.6 retrieving revision 1.1.1.1.2.7 diff -C2 -d -r1.1.1.1.2.6 -r1.1.1.1.2.7 *** s_audio_alsa.c 22 Feb 2004 16:40:40 -0000 1.1.1.1.2.6 --- s_audio_alsa.c 22 Feb 2004 17:36:51 -0000 1.1.1.1.2.7 *************** *** 843,847 **** } defect = indelay + outdelay - alsa_buf_samps; ! if (defect < -DEFDACBLKSIZE) { checkit = 1; --- 843,847 ---- } defect = indelay + outdelay - alsa_buf_samps; ! if (defect < -(3 * DEFDACBLKSIZE / 2) ) { checkit = 1; *************** *** 861,868 **** }
- void alsa_listdevs( void) - { - post("device listing not implemented in ALSA yet\n"); - }
static int alsa_nnames = 0; --- 861,864 ----
Index: s_audio_mmio.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_audio_mmio.c,v retrieving revision 1.1.1.1.2.2 retrieving revision 1.1.1.1.2.3 diff -C2 -d -r1.1.1.1.2.2 -r1.1.1.1.2.3 *** s_audio_mmio.c 12 Sep 2003 21:02:15 -0000 1.1.1.1.2.2 --- s_audio_mmio.c 22 Feb 2004 17:36:51 -0000 1.1.1.1.2.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_inter.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v retrieving revision 1.1.1.3.2.9 retrieving revision 1.1.1.3.2.10 diff -C2 -d -r1.1.1.3.2.9 -r1.1.1.3.2.10 *** s_inter.c 21 Jan 2004 19:53:04 -0000 1.1.1.3.2.9 --- s_inter.c 22 Feb 2004 17:36:51 -0000 1.1.1.3.2.10 *************** *** 530,533 **** --- 530,534 ---- static int sys_watchfd;
+ #ifdef __linux__ void glob_ping(t_pd *dummy) { *************** *** 538,541 **** --- 539,543 ---- } } + #endif
static int defaultfontshit[] = { *************** *** 636,640 **** if (setsockopt(xsock, IPPROTO_TCP, TCP_NODELAY, &intarg, sizeof(intarg)) < 0) ! post("setsockopt (TCP_NODELAY) failed\n"); --- 638,645 ---- if (setsockopt(xsock, IPPROTO_TCP, TCP_NODELAY, &intarg, sizeof(intarg)) < 0) ! #ifndef MSW ! post("setsockopt (TCP_NODELAY) failed\n") ! #endif ! ; *************** *** 743,747 **** /* in MSW land "guipath" is unused; we just do everything from the libdir. */ ! fprintf(stderr, "%s\n", sys_libdir->s_name); strcpy(scriptbuf, """); --- 748,752 ---- /* in MSW land "guipath" is unused; we just do everything from the libdir. */ ! /* fprintf(stderr, "%s\n", sys_libdir->s_name); */ strcpy(scriptbuf, """); *************** *** 842,845 **** --- 847,851 ---- #endif #ifdef MACOSX + if (sys_hipriority) { struct sched_param param; *************** *** 873,878 **** --- 879,886 ----
/* 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);
Index: s_main.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_main.c,v retrieving revision 1.1.1.4.2.10 retrieving revision 1.1.1.4.2.11 diff -C2 -d -r1.1.1.4.2.10 -r1.1.1.4.2.11 *** s_main.c 21 Feb 2004 22:05:20 -0000 1.1.1.4.2.10 --- s_main.c 22 Feb 2004 17:36:51 -0000 1.1.1.4.2.11 *************** *** 233,238 **** }
! static void sys_addextrapath(void); ! static void sys_addreferencepath(void);
/* this is called from main() in s_entry.c */ --- 233,237 ---- }
! static void sys_afterargparse(void);
/* this is called from main() in s_entry.c */ *************** *** 248,254 **** 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); --- 247,253 ---- 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); *************** *** 355,360 **** "-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 }; --- 354,360 ---- "-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 }; *************** *** 485,497 **** }
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 == '-') --- 485,498 ---- }
+ #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 == '-') *************** *** 620,624 **** { sys_set_audio_api(API_PORTAUDIO); ! mmio = 0; argc--; argv++; } --- 621,625 ---- { sys_set_audio_api(API_PORTAUDIO); ! sys_mmio = 0; argc--; argv++; } *************** *** 628,632 **** { sys_set_audio_api(API_MMIO); ! mmio = 1; argc--; argv++; } --- 629,633 ---- { sys_set_audio_api(API_MMIO); ! sys_mmio = 1; argc--; argv++; } *************** *** 746,749 **** --- 747,755 ---- argc--; argv++; } + else if (!strcmp(*argv, "-nrt")) + { + sys_hipriority = 0; + argc--; argv++; + } #endif else if (!strcmp(*argv, "-soundindev") || *************** *** 802,820 **** 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); --- 808,811 ---- *************** *** 826,832 **** }
! static void sys_addextrapath(void) { char sbuf[MAXPDSTRING]; /* add "extra" library to path */ strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30); --- 817,826 ---- }
! /* 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); *************** *** 834,842 **** 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); --- 828,831 ---- *************** *** 844,846 **** --- 833,855 ---- 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]; }