sdlEnumerateStorageDirectory function storage
- Pointer<
SdlStorage> storage, - String? path,
- Pointer<
NativeFunction< callback,SdlEnumerateDirectoryCallback> > - 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.
If path is NULL, this is treated as a request to enumerate the root of
the storage container's tree. An empty string also works for this.
\param storage a storage container.
\param path the path of the directory to enumerate, or NULL for the root.
\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.2.0.
\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 = _libSdl
.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;
}