[PD-cvs] pd/src s_audio.c, 1.5.4.16.2.20.2.19, 1.5.4.16.2.20.2.20 s_stuff.h, 1.5.4.10.2.8.2.12, 1.5.4.10.2.8.2.13 s_main.c, 1.7.4.17.2.22.2.21, 1.7.4.17.2.22.2.22
Mathieu Bouchard
matju at users.sourceforge.net
Tue Jul 10 18:36:05 CEST 2007
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 */
More information about the Pd-cvs
mailing list