Wiki Page Content

Differences between revisions 14 and 15
Revision 14 as of 2016-05-14 21:54:02
Size: 2171
Comment: Fixed typo.
Revision 15 as of 2016-05-14 22:17:17
Size: 2168
Comment: Changed wording of description.
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Use this function to return the number of built-in audio devices. Use this function to get the number of built-in audio devices.

SDL_GetNumAudioDevices

Use this function to get the number of built-in audio devices.

Syntax

int SDL_GetNumAudioDevices(int iscapture)

Function Parameters

iscapture

zero to request playback devices, non-zero to request recording devices

Return Value

Returns the number of available devices exposed by the current driver or -1 if an explicit list of devices can't be determined. A return value of -1 does not necessarily mean an error condition. See Remarks for details.

Code Examples

int i, count = SDL_GetNumAudioDevices(0);
for (i = 0; i < count; ++i) {
    printf("Audio device %d: %s\n", i, SDL_GetAudioDeviceName(i, 0));
}

Remarks

This function is only valid after successfully initializing the audio subsystem.

Note that audio capture support is not implemented as of SDL 2.0.4, so the iscapture parameter is for future expansion and should always be zero for now.

This function will return -1 if an explicit list of devices can't be determined. Returning -1 is not an error. For example, if SDL is set up to talk to a remote audio server, it can't list every one available on the Internet, but it will still allow a specific host to be specified in SDL_OpenAudioDevice().

In many common cases, when this function returns a value <= 0, it can still successfully open the default device (NULL for first argument of SDL_OpenAudioDevice()).

This function may trigger a complete redetect of available hardware. It should not be called for each iteration of a loop, but rather once at the start of a loop:

// Don't do this: for (int i = 0; i < SDL_GetNumAudioDevices(0); i++)
// do this instead:
const int count = SDL_GetNumAudioDevices(0);
for (int i = 0; i < count; ++i) { /* do something here. */ }

Version

This function is available since SDL 2.0.0.


CategoryAPI, CategoryAudio

None: SDL_GetNumAudioDevices (last edited 2016-05-14 22:17:17 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit