Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5132
Modified Files: Tag: desiredata s_stuff.h s_audio.c Log Message: introducing t_audiodevs
Index: s_audio.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v retrieving revision 1.5.4.16.2.20.2.18 retrieving revision 1.5.4.16.2.20.2.19 diff -C2 -d -r1.5.4.16.2.20.2.18 -r1.5.4.16.2.20.2.19 *** s_audio.c 10 Jul 2007 07:05:59 -0000 1.5.4.16.2.20.2.18 --- s_audio.c 10 Jul 2007 15:39:40 -0000 1.5.4.16.2.20.2.19 *************** *** 93,103 **** static int audio_state;
! /* last requested parameters */ ! static int audio_nindev = -1; ! static int audio_indev[MAXAUDIOINDEV]; ! static int audio_chindev[MAXAUDIOINDEV]; ! static int audio_noutdev = -1; ! static int audio_outdev[MAXAUDIOOUTDEV]; ! static int audio_choutdev[MAXAUDIOOUTDEV]; static int audio_rate; static int audio_dacblocksize; --- 93,99 ---- static int audio_state;
! /* last requested parameters */ ! static t_audiodevs audio_in; ! static t_audiodevs audio_out; static int audio_rate; static int audio_dacblocksize; *************** *** 112,117 **** static int audio_isopen() { return audio_state ! && ((audio_nindev > 0 && audio_chindev[0] > 0) ! || (audio_noutdev > 0 && audio_choutdev[0] > 0)); }
--- 108,113 ---- static int audio_isopen() { return audio_state ! && ((audio_in.ndev > 0 && audio_in.chdev[0] > 0) ! || (audio_out.ndev > 0 && audio_out.chdev[0] > 0)); }
*************** *** 120,127 **** int *pnoutdev, int *poutdev, int *choutdev, int *prate, int *pdacblocksize, int *padvance, int *pscheduler) { ! *pnindev = audio_nindev; ! *pnoutdev = audio_noutdev; ! for (int i=0; i<MAXAUDIOINDEV; i++) {pindev[i] = audio_indev[i]; chindev[i] = audio_chindev[i]; } ! for (int i=0; i<MAXAUDIOOUTDEV; i++) {poutdev[i] = audio_outdev[i]; choutdev[i] = audio_choutdev[i];} *prate = audio_rate; *pdacblocksize = audio_dacblocksize; --- 116,123 ---- 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; *************** *** 134,141 **** int noutdev, int *outdev, int *choutdev, int rate, int dacblocksize, int advance, int scheduler) { ! audio_nindev = nindev; ! audio_noutdev = noutdev; ! for (int i=0; i<MAXAUDIOINDEV; i++) {audio_indev[i] = indev[i]; audio_chindev[i] = chindev[i];} ! for (int i=0; i<MAXAUDIOOUTDEV; i++) {audio_outdev[i] = outdev[i]; audio_choutdev[i] = choutdev[i];} audio_rate = rate; audio_dacblocksize = dacblocksize; --- 130,137 ---- int noutdev, int *outdev, int *choutdev, int rate, int dacblocksize, int advance, int scheduler) { ! audio_in.ndev = nindev; ! audio_out.ndev = noutdev; ! for (int i=0; i<MAXAUDIOINDEV; i++) {audio_in.dev[i] = indev[i]; audio_in.chdev[i] = chindev[i];} ! for (int i=0; i<MAXAUDIOOUTDEV; i++) {audio_out.dev[i] = outdev[i]; audio_out.chdev[i] = choutdev[i];} audio_rate = rate; audio_dacblocksize = dacblocksize; *************** *** 144,149 **** }
! /* 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 void oss_init(); --- 140,144 ---- }
! /* 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 void oss_init(); *************** *** 190,207 **** /* ----------------------- public routines ----------------------- */
! /* open audio devices (after cleaning up the specified device and channel ! vectors). The audio devices are "zero based" (i.e. "0" means the first ! one.) We also save the cleaned-up device specification so that we can later re-open audio and/or show the settings on a dialog window. */ ! ! extern int sgi_open_audio(int nindev, int *indev, int nchin, ! int *chin, int noutdev, int *outdev, int nchout, int *chout, int rate); ! void sys_open_audio(int nindev, int *indev, int nchindev, ! int *chindev, int noutdev, int *outdev, int nchoutdev, ! int *choutdev, int rate, int dacblocksize, int advance, int schedmode, int enable) ! { int defaultchannels = SYS_DEFAULTCH; int realinchans[MAXAUDIOINDEV], realoutchans[MAXAUDIOOUTDEV]; - char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE]; int indevs = 0, outdevs = 0, canmulti = 0; --- 185,195 ---- /* ----------------------- public routines ----------------------- */
! /* open audio devices (after cleaning up the specified device and channel vectors). The audio devices are "zero based" ! (i.e. "0" means the first one.) We also save the cleaned-up device specification so that we can later re-open audio and/or show the settings on a dialog window. */ ! void sys_open_audio(int nindev, int *indev, int nchindev, int *chindev, int noutdev, int *outdev, int nchoutdev, ! int *choutdev, int rate, int dacblocksize, int advance, int schedmode, int enable) { int defaultchannels = SYS_DEFAULTCH; int realinchans[MAXAUDIOINDEV], realoutchans[MAXAUDIOOUTDEV]; char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE]; int indevs = 0, outdevs = 0, canmulti = 0; *************** *** 509,515 **** sys_audioapi = newapi; /* bash device params back to default */ ! audio_nindev = audio_noutdev = 1; ! audio_indev[0] = audio_outdev[0] = DEFAULTAUDIODEV; ! audio_chindev[0] = audio_choutdev[0] = SYS_DEFAULTCH; } sched_set_using_dacs(0); --- 497,503 ---- sys_audioapi = newapi; /* bash device params back to default */ ! audio_in.ndev = audio_out.ndev = 1; ! audio_in.dev[0] = audio_out.dev[0] = DEFAULTAUDIODEV; ! audio_in.chdev[0] = audio_out.chdev[0] = SYS_DEFAULTCH; } sched_set_using_dacs(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.10 retrieving revision 1.5.4.10.2.8.2.11 diff -C2 -d -r1.5.4.10.2.8.2.10 -r1.5.4.10.2.8.2.11 *** s_stuff.h 9 Jul 2007 19:50:19 -0000 1.5.4.10.2.8.2.10 --- s_stuff.h 10 Jul 2007 15:39:40 -0000 1.5.4.10.2.8.2.11 *************** *** 381,384 **** --- 381,393 ---- void inmidi_polyaftertouch(int portno, int channel, int pitch, int value);
+ struct t_audiodevs { + int ndev; + int dev[MAXAUDIOINDEV]; + int chdev[MAXAUDIOINDEV]; + #ifdef __cplusplus + t_audiodevs() : ndev(-1) {} + #endif + }; + #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) }