sdlEnumerateStorageDirectory function

bool sdlEnumerateStorageDirectory(
  1. Pointer<SdlStorage> storage,
  2. String? path,
  3. Pointer<NativeFunction<SdlEnumerateDirectoryCallback>> callback,
  4. Pointer<NativeType> userdata,
)

Enumerate a directory in a storage container through a callback function.

This function provides every directory entry through an app-provided callback, called once for each directory entry, until all results have been provided or the callback returns either SDL_ENUM_SUCCESS or SDL_ENUM_FAILURE.

This will return false if there was a system problem in general, or if a callback returns SDL_ENUM_FAILURE. A successful return means a callback returned SDL_ENUM_SUCCESS to halt enumeration, or all directory entries were enumerated.

\param storage a storage container. \param path the path of the directory to enumerate. \param callback a function that is called for each entry in the directory. \param userdata a pointer that is passed to callback. \returns true on success or false on failure; call SDL_GetError() for more information.

\since This function is available since SDL 3.1.3.

\sa SDL_StorageReady

extern SDL_DECLSPEC bool SDLCALL SDL_EnumerateStorageDirectory(SDL_Storage *storage, const char *path, SDL_EnumerateDirectoryCallback callback, void *userdata)

Implementation

bool sdlEnumerateStorageDirectory(
    Pointer<SdlStorage> storage,
    String? path,
    Pointer<NativeFunction<SdlEnumerateDirectoryCallback>> callback,
    Pointer<NativeType> userdata) {
  final sdlEnumerateStorageDirectoryLookupFunction = libSdl3.lookupFunction<
      Uint8 Function(
          Pointer<SdlStorage> storage,
          Pointer<Utf8> path,
          Pointer<NativeFunction<SdlEnumerateDirectoryCallback>> callback,
          Pointer<NativeType> userdata),
      int Function(
          Pointer<SdlStorage> storage,
          Pointer<Utf8> path,
          Pointer<NativeFunction<SdlEnumerateDirectoryCallback>> callback,
          Pointer<NativeType> userdata)>('SDL_EnumerateStorageDirectory');
  final pathPointer = path != null ? path.toNativeUtf8() : nullptr;
  final result = sdlEnumerateStorageDirectoryLookupFunction(
          storage, pathPointer, callback, userdata) ==
      1;
  calloc.free(pathPointer);
  return result;
}