Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26193
Modified Files: Tag: desiredata s_audio.c s_stuff.h s_main.c Log Message: use t_audiodevs in practice
Index: s_audio.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v retrieving revision 1.5.4.16.2.20.2.19 retrieving revision 1.5.4.16.2.20.2.20 diff -C2 -d -r1.5.4.16.2.20.2.19 -r1.5.4.16.2.20.2.20 *** s_audio.c 10 Jul 2007 15:39:40 -0000 1.5.4.16.2.20.2.19 --- s_audio.c 10 Jul 2007 16:36:03 -0000 1.5.4.16.2.20.2.20 *************** *** 112,123 **** }
! void sys_get_audio_params( ! int *pnindev, int *pindev, int *chindev, ! int *pnoutdev, int *poutdev, int *choutdev, ! int *prate, int *pdacblocksize, int *padvance, int *pscheduler) { ! *pnindev = audio_in.ndev; ! *pnoutdev = audio_out.ndev; ! for (int i=0; i<MAXAUDIOINDEV; i++) {pindev[i] = audio_in.dev[i]; chindev[i] = audio_in.chdev[i]; } ! for (int i=0; i<MAXAUDIOOUTDEV; i++) {poutdev[i] = audio_out.dev[i]; choutdev[i] = audio_out.chdev[i];} *prate = audio_rate; *pdacblocksize = audio_dacblocksize; --- 112,120 ---- }
! extern "C" void sys_get_audio_params(t_audiodevs *in, t_audiodevs *out, int *prate, int *pdacblocksize, int *padvance, int *pscheduler) { ! in->ndev = audio_in.ndev; ! out->ndev = audio_out.ndev; ! for (int i=0; i<MAXAUDIOINDEV; i++) {in ->dev[i] = audio_in.dev[i]; in->chdev[i] = audio_in.chdev[i];} ! for (int i=0; i<MAXAUDIOOUTDEV; i++) {out->dev[i] = audio_out.dev[i]; out->chdev[i] = audio_out.chdev[i];} *prate = audio_rate; *pdacblocksize = audio_dacblocksize; *************** *** 140,143 **** --- 137,145 ---- }
+ extern "C" void sys_open_audio2(t_audiodevs *in, t_audiodevs *out, int rate, int dacblocksize, int advance, int scheduler) { + sys_open_audio(in->ndev, in->dev, in->ndev, in->chdev, + out->ndev, out->dev, out->ndev, out->chdev, rate, dacblocksize, advance, scheduler, 1); + } + /* init routines for any API which needs to set stuff up before any other API gets used. This is only true of OSS so far. */ #ifdef USEAPI_OSS *************** *** 324,333 **** /* open audio using whatever parameters were last used */ void sys_reopen_audio() { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; sys_close_audio(); ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, rate, dacblocksize, advance, scheduler, 1); }
--- 326,334 ---- /* open audio using whatever parameters were last used */ void sys_reopen_audio() { ! t_audiodevs in, out; int rate, dacblocksize, advance, scheduler; sys_close_audio(); ! sys_get_audio_params(&in,&out,&rate, &dacblocksize, &advance, &scheduler); ! sys_open_audio2(&in,&out, rate, dacblocksize, advance, scheduler); }
*************** *** 407,412 **** void glob_audio_properties(t_pd *dummy, t_floatarg flongform) { /* these are the devices you're using: */ ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; /* these are all the devices on your system: */ --- 408,412 ---- void glob_audio_properties(t_pd *dummy, t_floatarg flongform) { /* these are the devices you're using: */ ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; /* these are all the devices on your system: */ *************** *** 416,425 **** ostringstream indevliststring; for (int i=0; i<nindevs; i++) indevliststring << " {" << (indevlist + i*DEVDESCSIZE) << "}"; ostringstream outdevliststring; for (int i=0; i<noutdevs; i++) outdevliststring << " {" << (outdevlist + i*DEVDESCSIZE) << "}"; ! sys_get_audio_params(&nindev,indev,chindev,&noutdev,outdev,choutdev,&rate,&dacblocksize,&advance,&scheduler); ! if (nindev > 1 || noutdev > 1) flongform = 1; ! ostringstream indevs; for (int i=0; i<nindev; i++) indevs << " " << indev [i]; ! ostringstream outdevs; for (int i=0; i<noutdev; i++) outdevs << " " << outdev[i]; ! ostringstream inchans; for (int i=0; i<nindev; i++) inchans << " " << chindev [i]; ! ostringstream outchans; for (int i=0; i<noutdev; i++) outchans << " " << choutdev [i]; sys_vgui("pdtk_audio_dialog {%s} {%s} {%s} {%s} {%s} {%s} %d %d %d %d %d\n", indevliststring .str().data()+1, indevs.str().data()+1, inchans.str().data()+1, --- 416,425 ---- ostringstream indevliststring; for (int i=0; i<nindevs; i++) indevliststring << " {" << (indevlist + i*DEVDESCSIZE) << "}"; ostringstream outdevliststring; for (int i=0; i<noutdevs; i++) outdevliststring << " {" << (outdevlist + i*DEVDESCSIZE) << "}"; ! sys_get_audio_params(&in,&out,&rate,&dacblocksize,&advance,&scheduler); ! if (in.ndev > 1 || out.ndev > 1) flongform = 1; ! ostringstream indevs; for (int i=0; i< in.ndev; i++) indevs << " " << in.dev [i]; ! ostringstream outdevs; for (int i=0; i<out.ndev; i++) outdevs << " " << out.dev[i]; ! ostringstream inchans; for (int i=0; i< in.ndev; i++) inchans << " " << in.chdev[i]; ! ostringstream outchans; for (int i=0; i<out.ndev; i++) outchans << " " << out.chdev[i]; sys_vgui("pdtk_audio_dialog {%s} {%s} {%s} {%s} {%s} {%s} %d %d %d %d %d\n", indevliststring .str().data()+1, indevs.str().data()+1, inchans.str().data()+1, *************** *** 570,580 **** * supported by vibrez.net { */ void glob_audio_samplerate(t_pd * dummy, t_float f) { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; if (f == sys_getsr()) return; ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, (int)f, dacblocksize, advance, scheduler, 1); }
--- 570,580 ---- * supported by vibrez.net { */ void glob_audio_samplerate(t_pd * dummy, t_float f) { ! t_audiodevs in, out; int rate, dacblocksize, advance, scheduler; if (f == sys_getsr()) return; ! sys_get_audio_params(&in,&out,&rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio(in.ndev, in.dev, in.ndev, in.chdev, out.ndev, out.dev, out.ndev, out.chdev, ! (int)f, dacblocksize, advance, scheduler, 1); }
*************** *** 586,617 ****
void glob_audio_delay(t_pd *dummy, t_float f) { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; if ((int)f == audio_advance) return; ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, rate, dacblocksize, (int) f, scheduler, 1); }
void glob_audio_dacblocksize(t_pd * dummy, t_float f) { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; if ((int)f == audio_dacblocksize) return; ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, rate, (int)f, advance, scheduler, 1); }
void glob_audio_scheduler(t_pd * dummy, t_float f) { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; if ((int)f == sys_callbackscheduler) return; scheduler = f!=0; ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, rate, dacblocksize, advance, scheduler, 1); if (scheduler != sys_callbackscheduler) { if (scheduler == 1) { --- 586,615 ----
void glob_audio_delay(t_pd *dummy, t_float f) { ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; if ((int)f == audio_advance) return; ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio(in.ndev, in.dev, in.ndev, in.chdev, out.ndev, out.dev, out.ndev, out.chdev, ! rate, dacblocksize, (int) f, scheduler, 1); }
void glob_audio_dacblocksize(t_pd * dummy, t_float f) { ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; if ((int)f == audio_dacblocksize) return; ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio2(&in,&out, rate, (int)f, advance, scheduler); }
void glob_audio_scheduler(t_pd * dummy, t_float f) { ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; if ((int)f == sys_callbackscheduler) return; scheduler = f!=0; ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); sys_close_audio(); ! sys_open_audio2(&in,&out, rate, dacblocksize, advance, scheduler); if (scheduler != sys_callbackscheduler) { if (scheduler == 1) { *************** *** 624,667 ****
void glob_audio_device(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); ! noutdev = nindev = (int)atom_getfloatarg(0, argc, argv); for (int i=0; i<MAXAUDIOINDEV; i++) { ! outdev [i] = indev [i] = int(atom_getfloatarg(i*2+1, argc, argv)); ! choutdev[i] = chindev[i] = int(atom_getfloatarg(i*2+2, argc, argv)); } sys_close_audio(); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, rate, dacblocksize, advance, scheduler, 1); }
void glob_audio_device_in(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); ! nindev = (int)atom_getfloatarg(0, argc, argv); for (int i=0; i<MAXAUDIOINDEV; i=i+2) { ! indev [i] = atom_getintarg(i+1, argc, argv); ! chindev[i] = atom_getintarg(i+2, argc, argv); } sys_close_audio(); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, rate, dacblocksize, advance, scheduler, 1); }
! void glob_audio_device_out(t_pd * dummy, t_symbol *s, int argc, t_atom *argv) { ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); ! noutdev = (int)atom_getfloatarg(0, argc, argv); /* i+=2 ? isn't that a bug??? */ for (int i=0; i<MAXAUDIOOUTDEV; i+=2) { ! outdev [i] = atom_getintarg(i+1, argc, argv); ! choutdev[i] = atom_getintarg(i+2, argc, argv); } sys_close_audio(); ! sys_open_audio(nindev, indev, nindev, chindev, noutdev, outdev, noutdev, choutdev, rate, dacblocksize, advance, scheduler, 1); }
--- 622,662 ----
void glob_audio_device(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); ! out.ndev = in.ndev = (int)atom_getfloatarg(0, argc, argv); for (int i=0; i<MAXAUDIOINDEV; i++) { ! out.dev [i] = in.dev [i] = int(atom_getfloatarg(i*2+1, argc, argv)); ! out.chdev[i] = in.chdev[i] = int(atom_getfloatarg(i*2+2, argc, argv)); } sys_close_audio(); ! sys_open_audio2(&in,&out, rate, dacblocksize, advance, scheduler); }
void glob_audio_device_in(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); ! in.ndev = (int)atom_getfloatarg(0, argc, argv); for (int i=0; i<MAXAUDIOINDEV; i=i+2) { ! in.dev [i] = atom_getintarg(i+1, argc, argv); ! in.chdev[i] = atom_getintarg(i+2, argc, argv); } sys_close_audio(); ! sys_open_audio2(&in,&out,rate, dacblocksize, advance, scheduler); }
! void glob_audio_device_out(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); ! out.ndev = (int)atom_getfloatarg(0, argc, argv); /* i+=2 ? isn't that a bug??? */ for (int i=0; i<MAXAUDIOOUTDEV; i+=2) { ! out.dev [i] = atom_getintarg(i+1, argc, argv); ! out.chdev[i] = atom_getintarg(i+2, argc, argv); } sys_close_audio(); ! sys_open_audio2(&in,&out, rate, dacblocksize, advance, scheduler); }
*************** *** 675,680 **** void glob_audio_getaudioindevices(t_pd * dummy, t_symbol *s, int ac, t_atom *av) { /* these are the devices you're using: */ ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; /* these are all the devices on your system: */ --- 670,674 ---- void glob_audio_getaudioindevices(t_pd * dummy, t_symbol *s, int ac, t_atom *av) { /* these are the devices you're using: */ ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; /* these are all the devices on your system: */ *************** *** 686,690 **** t_symbol *pd = gensym("pd"); audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); if (f < 0) { for (int i=0; i<nindevs ;++i) SETSTRING(argv+i,indevlist + i * DEVDESCSIZE); --- 680,684 ---- t_symbol *pd = gensym("pd"); audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); if (f < 0) { for (int i=0; i<nindevs ;++i) SETSTRING(argv+i,indevlist + i * DEVDESCSIZE); *************** *** 698,703 **** void glob_audio_getaudiooutdevices(t_pd * dummy, t_symbol *s, int ac, t_atom *av) { /* these are the devices you're using: */ ! int nindev, indev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int noutdev, outdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int rate, dacblocksize, advance, scheduler; /* these are all the devices on your system: */ --- 692,696 ---- void glob_audio_getaudiooutdevices(t_pd * dummy, t_symbol *s, int ac, t_atom *av) { /* these are the devices you're using: */ ! t_audiodevs in,out; int rate, dacblocksize, advance, scheduler; /* these are all the devices on your system: */ *************** *** 706,713 **** t_atom argv[MAXNDEV]; int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1; ! t_symbol * selector = gensym("audiooutdev"); ! t_symbol * pd = gensym("pd"); audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); ! sys_get_audio_params(&nindev, indev, chindev, &noutdev, outdev, choutdev, &rate, &dacblocksize, &advance, &scheduler); if (f < 0) { int i; --- 699,706 ---- t_atom argv[MAXNDEV]; int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1; ! t_symbol *selector = gensym("audiooutdev"); ! t_symbol *pd = gensym("pd"); audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); ! sys_get_audio_params(&in,&out, &rate, &dacblocksize, &advance, &scheduler); if (f < 0) { int i;
Index: s_main.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_main.c,v retrieving revision 1.7.4.17.2.22.2.21 retrieving revision 1.7.4.17.2.22.2.22 diff -C2 -d -r1.7.4.17.2.22.2.21 -r1.7.4.17.2.22.2.22 *** s_main.c 9 Jul 2007 17:51:14 -0000 1.7.4.17.2.22.2.21 --- s_main.c 10 Jul 2007 16:36:03 -0000 1.7.4.17.2.22.2.22 *************** *** 634,648 **** char sbuf[MAXPDSTRING]; int i; ! int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV]; ! int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV]; int nchindev, nchoutdev, rate, dacblksize, advance, scheduler; int nmidiindev = 0, midiindev[MAXMIDIINDEV]; int nmidioutdev = 0, midioutdev[MAXMIDIOUTDEV]; ! /* add "extra" library to path */ strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30); sbuf[MAXPDSTRING-30] = 0; strcat(sbuf, "/extra"); sys_setextrapath(sbuf); ! /* add "doc/5.reference" library to helppath */ strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30); sbuf[MAXPDSTRING-30] = 0; --- 634,647 ---- char sbuf[MAXPDSTRING]; int i; ! t_audiodevs audio_in, audio_out; int nchindev, nchoutdev, rate, dacblksize, advance, scheduler; int nmidiindev = 0, midiindev[MAXMIDIINDEV]; int nmidioutdev = 0, midioutdev[MAXMIDIOUTDEV]; ! /* add "extra" library to path */ strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30); sbuf[MAXPDSTRING-30] = 0; strcat(sbuf, "/extra"); sys_setextrapath(sbuf); ! /* add "doc/5.reference" library to helppath */ strncpy(sbuf, sys_libdir->s_name, MAXPDSTRING-30); sbuf[MAXPDSTRING-30] = 0; *************** *** 654,692 **** 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]--; if (sys_listplease) sys_listdevs();
/* get the current audio parameters. These are set by the preferences mechanism (sys_loadpreferences()) or else are the default. Overwrite them with any results of argument parsing, and store them again. */ ! sys_get_audio_params(&naudioindev, audioindev, chindev, ! &naudiooutdev, audiooutdev, choutdev, &rate, &dacblksize, &advance, &scheduler); ! if (sys_nchin >= 0) { ! nchindev = sys_nchin; for (i=0; i< nchindev; i++) chindev[i] = sys_chinlist[i]; ! } else nchindev = naudioindev; ! if (sys_nsoundin >= 0) { ! naudioindev = sys_nsoundin; for (i=0; i< naudioindev; i++) audioindev[i] = sys_soundindevlist[i]; ! } ! if (sys_nchout >= 0) { ! nchoutdev = sys_nchout; for (i=0; i< nchoutdev; i++) choutdev[i] = sys_choutlist[i]; ! } else nchoutdev = naudiooutdev; ! if (sys_nsoundout >= 0) { ! naudiooutdev = sys_nsoundout;for (i=0; i<naudiooutdev; i++) audiooutdev[i] = sys_soundoutdevlist[i]; ! } ! if (sys_nmidiin >= 0) { ! nmidiindev = sys_nmidiin; for (i=0; i< nmidiindev; i++) midiindev[i] = sys_midiindevlist[i]; ! } ! if (sys_nmidiout >= 0) { ! nmidioutdev = sys_nmidiout; for (i=0; i< nmidioutdev; i++) midioutdev[i] = sys_midioutdevlist[i]; ! } if (sys_main_advance) advance = sys_main_advance; if (sys_main_srate) rate = sys_main_srate; if (sys_main_dacblocksize) dacblksize = sys_main_dacblocksize; ! sys_open_audio(naudioindev, audioindev, nchindev, chindev, ! naudiooutdev, audiooutdev, nchoutdev, choutdev, ! rate, dacblksize, advance, scheduler, 0); sys_open_midi(nmidiindev, midiindev, nmidioutdev, midioutdev, 0); } --- 653,679 ---- set up, so we leave it that way for compatibility. */ if (!sys_mmio) { ! for (int i=0; i<sys_nsoundin ; i++) sys_soundindevlist[i]--; ! for (int i=0; i<sys_nsoundout; i++) sys_soundoutdevlist[i]--; } ! for (int i=0; i<sys_nmidiin; i++) sys_midiindevlist[i]--; ! for (int i=0; i<sys_nmidiout; i++) sys_midioutdevlist[i]--; if (sys_listplease) sys_listdevs();
/* get the current audio parameters. These are set by the preferences mechanism (sys_loadpreferences()) or else are the default. Overwrite them with any results of argument parsing, and store them again. */ ! sys_get_audio_params(&audio_in, &audio_out, &rate, &dacblksize, &advance, &scheduler); ! nchindev = sys_nchin>=0 ? sys_nchin : audio_in.ndev; ! nchoutdev = sys_nchout>=0 ? sys_nchout : audio_out.ndev; ! if (sys_nchin >=0) {for (i=0; i< nchindev; i++) audio_in.chdev[i] = sys_chinlist[i];} ! if (sys_nchout>=0) {for (i=0; i< nchoutdev; i++) audio_out.chdev[i] = sys_choutlist[i];} ! if (sys_nsoundin>=0) {audio_in.ndev = sys_nsoundin; for (i=0; i< audio_in.ndev; i++) audio_in.dev[i] = sys_soundindevlist[i];} ! if (sys_nsoundout>=0) {audio_out.ndev = sys_nsoundout;for (i=0; i<audio_out.ndev; i++) audio_out.dev[i] = sys_soundoutdevlist[i];} ! if (sys_nmidiin >=0) {nmidiindev = sys_nmidiin; for (i=0; i< nmidiindev; i++) midiindev[i] = sys_midiindevlist[i];} ! if (sys_nmidiout>=0) {nmidioutdev = sys_nmidiout; for (i=0; i< nmidioutdev; i++) midioutdev[i] = sys_midioutdevlist[i];} if (sys_main_advance) advance = sys_main_advance; if (sys_main_srate) rate = sys_main_srate; if (sys_main_dacblocksize) dacblksize = sys_main_dacblocksize; ! sys_open_audio(audio_in.ndev, audio_in.dev, nchindev, audio_in.chdev, ! audio_out.ndev, audio_out.dev, nchoutdev, audio_out.chdev, rate, dacblksize, advance, scheduler, 0); sys_open_midi(nmidiindev, midiindev, nmidioutdev, midioutdev, 0); }
Index: s_stuff.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v retrieving revision 1.5.4.10.2.8.2.12 retrieving revision 1.5.4.10.2.8.2.13 diff -C2 -d -r1.5.4.10.2.8.2.12 -r1.5.4.10.2.8.2.13 *** s_stuff.h 10 Jul 2007 15:48:57 -0000 1.5.4.10.2.8.2.12 --- s_stuff.h 10 Jul 2007 16:36:03 -0000 1.5.4.10.2.8.2.13 *************** *** 308,319 **** void linux_alsa_devname(char *devname);
! void sys_get_audio_params( ! int *pnaudioindev, int *paudioindev, int *chindev, ! int *pnaudiooutdev, int *paudiooutdev, int *choutdev, ! int *prate, int *dacblocksize, int *padvance, int *pscheduler); ! void sys_save_audio_params( ! int naudioindev, int *audioindev, int *chindev, ! int naudiooutdev, int *audiooutdev, int *choutdev, ! int rate, int dacblocksize, int advance, int scheduler);
/* s_file.c */ --- 308,313 ---- void linux_alsa_devname(char *devname);
! void sys_get_audio_params(t_audiodevs *in, t_audiodevs *out, int *prate, int *dacblocksize, int *padvance, int *pscheduler); ! void sys_save_audio_params(t_audiodevs *in, t_audiodevs *out, int rate, int dacblocksize, int advance, int scheduler);
/* s_file.c */