sdlxGetAudioPlaybackDevices function audio

List<int> sdlxGetAudioPlaybackDevices()

Get a list of currently-connected audio playback devices.

This returns of list of available devices that play sound, perhaps to speakers or headphones ("playback" devices). If you want devices that record audio, like a microphone ("recording" devices), use SDL_GetAudioRecordingDevices() instead.

This only returns a list of physical devices; it will not have any device IDs returned by SDL_OpenAudioDevice().

If this function returns NULL, to signify an error, *count will be set to zero.

\param count a pointer filled in with the number of devices returned, may be NULL. \returns a 0 terminated array of device instance IDs or NULL on error; call SDL_GetError() for more information. This should be freed with SDL_free() when it is no longer needed.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.2.0.

\sa SDL_OpenAudioDevice \sa SDL_GetAudioRecordingDevices

extern SDL_DECLSPEC SDL_AudioDeviceID * SDLCALL SDL_GetAudioPlaybackDevices(int *count)

Implementation

List<int> sdlxGetAudioPlaybackDevices() {
  final result = <int>[];
  final countPointer = ffi.calloc<Int32>();
  final devicesPointer = sdlGetAudioPlaybackDevices(countPointer);
  if (devicesPointer != nullptr) {
    for (var i = 0; i < countPointer.value; i++) {
      result.add(devicesPointer[i]);
    }
    sdlFree(devicesPointer);
  }
  countPointer.callocFree();
  return result;
}