sdlxGetAudioRecordingDevices function audio

List<int> sdlxGetAudioRecordingDevices()

Get a list of currently-connected audio recording devices.

This returns of list of available devices that record audio, like a microphone ("recording" devices). If you want devices that play sound, perhaps to speakers or headphones ("playback" devices), use SDL_GetAudioPlaybackDevices() 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 failure; 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_GetAudioPlaybackDevices

extern SDL_DECLSPEC SDL_AudioDeviceID * SDLCALL SDL_GetAudioRecordingDevices(int *count)

Implementation

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