示例#1
0
static void audio_getdevs(char *indevlist, int *nindevs,
    char *outdevlist, int *noutdevs, int *canmulti, int *cancallback,
        int maxndev, int devdescsize)
{
    audio_init();
    *cancallback = 0;   /* may be overridden by specific API implementation */
#ifdef USEAPI_PORTAUDIO
    if (sys_audioapi == API_PORTAUDIO)
    {
        pa_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
            maxndev, devdescsize);
        *cancallback = 1;
    }
    else
#endif
#ifdef USEAPI_JACK
    if (sys_audioapi == API_JACK)
    {
        jack_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
            maxndev, devdescsize);
        *cancallback = 1;
    }
    else
#endif
#ifdef USEAPI_OSS
    if (sys_audioapi == API_OSS)
    {
        oss_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
            maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_ALSA
    if (sys_audioapi == API_ALSA)
    {
        alsa_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
            maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_MMIO
    if (sys_audioapi == API_MMIO)
    {
        mmio_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
            maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_AUDIOUNIT
    if (sys_audioapi == API_AUDIOUNIT)
    {
    }
    else
#endif
#ifdef USEAPI_ESD
    if (sys_audioapi == API_ESD)
    {
        esd_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
            maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_DUMMY
    if (sys_audioapi == API_DUMMY)
    {
        dummy_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
            maxndev, devdescsize);
    }
    else
#endif
    {
            /* this shouldn't happen once all the above get filled in. */
        int i;
        *nindevs = *noutdevs = 3;
        for (i = 0; i < 3; i++)
        {
            sprintf(indevlist + i * devdescsize, "input device #%d", i+1);
            sprintf(outdevlist + i * devdescsize, "output device #%d", i+1);
        }
        *canmulti = 0;
    }
}
示例#2
0
文件: s_audio.c 项目: 4nykey/rockbox
static void audio_getdevs(char *indevlist, int *nindevs,
    char *outdevlist, int *noutdevs, int *canmulti, 
    	int maxndev, int devdescsize)
{
#ifdef ROCKBOX
    (void) maxndev;
    pd_audio_init();
#else
    audio_init();
#endif /* ROCKBOX */
#ifdef USEAPI_OSS
    if (sys_audioapi == API_OSS)
    {
    	oss_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
	    maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_ALSA
    if (sys_audioapi == API_ALSA)
    {
    	alsa_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
	    maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_PORTAUDIO
    if (sys_audioapi == API_PORTAUDIO)
    {
    	pa_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
	    maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_MMIO
    if (sys_audioapi == API_MMIO)
    {
    	mmio_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti,
	    maxndev, devdescsize);
    }
    else
#endif
#ifdef USEAPI_ROCKBOX
    if (sys_audioapi == API_ROCKBOX)
    {
        /* Rockbox devices are known in advance. (?) */
    }
    else
#endif
    {
    	    /* this shouldn't happen once all the above get filled in. */
    	int i;
    	*nindevs = *noutdevs = 3;
	for (i = 0; i < 3; i++)
	{
    	    sprintf(indevlist + i * devdescsize, "input device #%d", i+1);
    	    sprintf(outdevlist + i * devdescsize, "output device #%d", i+1);
	}
	*canmulti = 0;
    }
}