From 7da672e15231bffeb61923325367e46edadff2a7 Mon Sep 17 00:00:00 2001 From: "N.N." Date: Sat, 30 May 2009 04:39:05 +0000 Subject: reformat; remove API_SGI svn path=/trunk/; revision=11579 --- desiredata/src/s_audio.c | 195 ++++++++++++++++++----------------------------- 1 file changed, 76 insertions(+), 119 deletions(-) (limited to 'desiredata/src') diff --git a/desiredata/src/s_audio.c b/desiredata/src/s_audio.c index bc62e449..62be168f 100644 --- a/desiredata/src/s_audio.c +++ b/desiredata/src/s_audio.c @@ -7,7 +7,7 @@ */ #define PD_PLUSPLUS_FACE -#include "m_pd.h" +#include "desire.h" #include "s_stuff.h" #include "m_simd.h" #include @@ -20,7 +20,7 @@ #include #include #include - +#define max std::max /* resolve "ambiguous" shit. */ #define SYS_DEFAULTCH 2 #define SYS_MAXCH 100 typedef long t_pa_sample; @@ -30,6 +30,7 @@ typedef long t_pa_sample; #define SYS_XFERSIZE (SYS_SAMPLEWIDTH * SYS_XFERSAMPS) #define MAXNDEV 100 #define DEVDESCSIZE 80 +#define INTARG(i) atom_getintarg(i,argc,argv) extern t_audioapi pa_api, jack_api, oss_api, alsa_api, sgi_api, mmio_api, asio_api; @@ -52,9 +53,6 @@ static t_audioapi *sys_audio() { #ifdef USEAPI_ALSA if (sys_audioapi == API_ALSA) return &alsa_api; #endif -#ifdef USEAPI_SGI - if (sys_audioapi == API_SGI) return &sgi_api; -#endif #ifdef USEAPI_MMIO if (sys_audioapi == API_MMIO) return &mmio_api; #endif @@ -67,7 +65,7 @@ static t_audioapi *sys_audio() { return 0; } -static void audio_getdevs(char *indevlist, int *nindevs, char *outdevlist, int *noutdevs, int *canmulti, int maxndev, int devdescsize); +static void audio_getdevs(char *idevlist, int *nidev, char *odevlist, int *nodev, int *canmulti, int maxndev, int devdescsize); /* these are set in this file when opening audio, but then may be reduced, even to zero, in the system dependent open_audio routines. */ @@ -116,8 +114,7 @@ extern "C" void sys_get_audio_params(t_audiodevs *ai, t_audiodevs *ao, int *prat void sys_save_audio_params( int nindev, int *indev, int *chindev, -int noutdev, int *outdev, int *choutdev, -int rate, int dacblocksize, int advance, int scheduler) { +int noutdev, int *outdev, int *choutdev, int rate, int dacblocksize, int advance, int scheduler) { audi.ndev = nindev; audo.ndev = noutdev; for (int i=0; i= 1) { - nchindev=1; - chindev[0] = defaultchannels; - nindev = 1; - indev[0] = DEFAULTAUDIODEV; + nchindev=1; chindev[0]=defaultchannels; + nindev=1; indev[0]=DEFAULTAUDIODEV; } else nindev = nchindev = 0; } else { for (int i=0; i nindev) { - for (int i=nindev; i= 1) { - nchoutdev=1; - choutdev[0]=defaultchannels; - noutdev=1; - outdev[0] = DEFAULTAUDIODEV; + nchoutdev=1; choutdev[0]=defaultchannels; + noutdev=1; outdev[0]=DEFAULTAUDIODEV; } else nchoutdev = noutdev = 0; } else { for (int i=0; i noutdev) { - for (int i=noutdev; i 0 ? chindev[i] : 0)); + for (int i=0; i < nindev; i++) inchans += (realinchans[i] = (chindev[i] > 0 ? chindev[i] : 0)); for (int i=0; i < noutdev; i++) outchans += (realoutchans[i] = (choutdev[i] > 0 ? choutdev[i] : 0)); /* if no input or output devices seem to have been specified, this really means just disable audio, which we now do. */ if (!inchans && !outchans) enable = 0; @@ -277,8 +262,6 @@ int *choutdev, int rate, int dacblocksize, int advance, int schedmode, int enabl #endif if (sys_audioapi == API_OSS || sys_audioapi == API_ALSA || sys_audioapi == API_MMIO) sys_audio()->open_audio(nindev, indev, nchindev, realinchans, noutdev, outdev, nchoutdev, realoutchans, rate, -42); - else if (sys_audioapi == API_SGI) - sys_audio()->open_audio(nindev, indev, nchindev, chindev, noutdev, outdev, nchoutdev, choutdev, rate, -42); else if (sys_audioapi == API_ASIO) sys_audio()->open_audio(nindev, indev, nchindev, chindev, noutdev, outdev, nchoutdev, choutdev, rate, schedmode); else post("unknown audio API specified"); @@ -354,34 +337,31 @@ void sys_getmeters(float *inmax, float *outmax) { sys_inmax = sys_outmax = 0; } -static void audio_getdevs(char *indevlist, int *nindevs, char *outdevlist, int *noutdevs, int *canmulti, int maxndev, int devdescsize) { +static void audio_getdevs(char *idevlist, int *nidev, char *odevlist, int *nodev, int *canmulti, int maxndev, int devdescsize) { audio_init(); - if (sys_audio()) sys_audio()->getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti, maxndev, devdescsize); - else {*nindevs = *noutdevs = 0;} + if (sys_audio()) sys_audio()->getdevs(idevlist, nidev, odevlist, nodev, canmulti, maxndev, devdescsize); + else {*nidev = *nodev = 0;} } void sys_listdevs() { #ifdef USEAPI_JACK if (sys_audioapi == API_JACK) return jack_listdevs(); #endif -#ifdef USEAPI_SGI - if (sys_audioapi == API_SGI) return sgi_listaudiodevs(); -#endif - char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE]; - int nindevs = 0, noutdevs = 0, canmulti = 0; - audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); + char idevlist[MAXNDEV*DEVDESCSIZE], odevlist[MAXNDEV*DEVDESCSIZE]; + int nidev = 0, nodev = 0, canmulti = 0; + audio_getdevs(idevlist, &nidev, odevlist, &nodev, &canmulti, MAXNDEV, DEVDESCSIZE); /* To agree with command line flags, normally start at 1; but microsoft "MMIO" device list starts at 0 (the "mapper"). */ /* (see also sys_mmio variable in s_main.c) */ - if (!nindevs) post("no audio input devices found"); else post("audio input devices:"); - for (int i=0; i 5000) sys_sleepgrain = 5000; -} +void sys_update_sleepgrain() {sys_sleepgrain = clip(sys_schedadvance/4,1000,5000);} /* t_audiodevs are the ones you're using; char[] are all the devices available. */ -void glob_audio_getaudioindevices(t_pd * dummy, t_symbol *s, int ac, t_atom *av) { - t_audiodevs ai,ao; - int rate, dacblocksize, advance, scheduler; - int nindevs = 0, noutdevs = 0, canmulti = 0; - t_atom argv[MAXNDEV]; - int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1; - t_symbol *selector = gensym("audioindev"); - t_symbol *pd = gensym("pd"); - char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE]; - audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); +void glob_audio_getaudioindevices(t_pd *, t_symbol *s, int ac, t_atom *av) { + t_audiodevs ai,ao; int rate, dacblocksize, advance, scheduler; + int nidev=0, nodev=0, canmulti=0; t_atom argv[MAXNDEV]; int f = ac ? atom_getintarg(0,ac,av) : -1; + t_symbol *selector = gensym("audioindev"), *pd = gensym("pd"); + char idevlist[MAXNDEV*DEVDESCSIZE], odevlist[MAXNDEV*DEVDESCSIZE]; + audio_getdevs(idevlist, &nidev, odevlist, &nodev, &canmulti, MAXNDEV, DEVDESCSIZE); sys_get_audio_params(&ai,&ao, &rate, &dacblocksize, &advance, &scheduler); - if (f < 0) { - for (int i=0; is_thing, selector, nindevs, argv); - } else if (f < nindevs) { - SETSTRING(argv, indevlist + f * DEVDESCSIZE); + if (f<0) { + for (int i=0; is_thing, selector, nidev, argv); + } else if (f < nidev) { + SETSTRING(argv, idevlist + f*DEVDESCSIZE); typedmess(pd->s_thing, selector, 1, argv); } } -void glob_audio_getaudiooutdevices(t_pd * dummy, t_symbol *s, int ac, t_atom *av) { - t_audiodevs ai,ao; - int rate, dacblocksize, advance, scheduler; - int nindevs = 0, noutdevs = 0, canmulti = 0; - t_atom argv[MAXNDEV]; - int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1; - t_symbol *selector = gensym("audiooutdev"); - t_symbol *pd = gensym("pd"); - char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE]; - audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); +void glob_audio_getaudiooutdevices(t_pd *, t_symbol *s, int ac, t_atom *av) { + t_audiodevs ai,ao; int rate, dacblocksize, advance, scheduler; + int nidev=0, nodev=0, canmulti=0; t_atom argv[MAXNDEV]; int f = ac ? atom_getintarg(0,ac,av) : -1; + t_symbol *selector = gensym("audiooutdev"), *pd = gensym("pd"); + char idevlist[MAXNDEV*DEVDESCSIZE], odevlist[MAXNDEV*DEVDESCSIZE]; + audio_getdevs(idevlist, &nidev, odevlist, &nodev, &canmulti, MAXNDEV, DEVDESCSIZE); sys_get_audio_params(&ai,&ao, &rate, &dacblocksize, &advance, &scheduler); - if (f < 0) { - for (int i=0; is_thing, selector, noutdevs, argv); - } else if (f < noutdevs) { - SETSTRING(argv, outdevlist + f * DEVDESCSIZE); + if (f<0) { + for (int i=0; is_thing, selector, nodev, argv); + } else if (f < nodev) { + SETSTRING(argv, odevlist + f*DEVDESCSIZE); typedmess(pd->s_thing, selector, 1, argv); } } @@ -650,17 +607,17 @@ extern void pa_getaudiooutinfo(t_float f); extern void pa_test_setting (int ac, t_atom *av); extern void pa_get_asio_latencies(t_float f); -void glob_audio_getaudioininfo(t_pd * dummy, t_float f) { +void glob_audio_getaudioininfo(t_pd *, t_float f) { #if defined(USEAPI_PORTAUDIO) && !defined(PABLIO) if (sys_audioapi == API_PORTAUDIO) pa_getaudioininfo(f); #endif } -void glob_audio_getaudiooutinfo(t_pd * dummy, t_float f) { +void glob_audio_getaudiooutinfo(t_pd *, t_float f) { #if defined(USEAPI_PORTAUDIO) && !defined(PABLIO) if (sys_audioapi == API_PORTAUDIO) pa_getaudiooutinfo(f); #endif } -void glob_audio_testaudiosetting(t_pd * dummy, t_symbol *s, int ac, t_atom *av) { +void glob_audio_testaudiosetting(t_pd *, t_symbol *s, int ac, t_atom *av) { #if defined(USEAPI_PORTAUDIO) && !defined(PABLIO) if (sys_audioapi == API_PORTAUDIO) pa_test_setting (ac, av); #endif @@ -670,7 +627,7 @@ void glob_audio_getcurrent_devices() { if (sys_audioapi == API_PORTAUDIO) pa_getcurrent_devices(); #endif } -void glob_audio_asio_latencies(t_pd * dummy, t_float f) { +void glob_audio_asio_latencies(t_pd *, t_float f) { #if defined(USEAPI_PORTAUDIO) && !defined(PABLIO) if (sys_audioapi == API_PORTAUDIO) pa_get_asio_latencies(f); #endif -- cgit v1.2.1