sdlGetCameraPermissionState function camera

int sdlGetCameraPermissionState(
  1. Pointer<SdlCamera> camera
)

Query if camera access has been approved by the user.

Cameras will not function between when the device is opened by the app and when the user permits access to the hardware. On some platforms, this presents as a popup dialog where the user has to explicitly approve access; on others the approval might be implicit and not alert the user at all.

This function can be used to check the status of that approval. It will return SDL_CAMERA_PERMISSION_STATE_PENDING if waiting for user response, SDL_CAMERA_PERMISSION_STATE_APPROVED if the camera is approved for use, and SDL_CAMERA_PERMISSION_STATE_DENIED if the user denied access.

Instead of polling with this function, you can wait for a SDL_EVENT_CAMERA_DEVICE_APPROVED (or SDL_EVENT_CAMERA_DEVICE_DENIED) event in the standard SDL event loop, which is guaranteed to be sent once when permission to use the camera is decided.

If a camera is declined, there's nothing to be done but call SDL_CloseCamera() to dispose of it.

\param camera the opened camera device to query. \returns an SDL_CameraPermissionState value indicating if access is granted, or SDL_CAMERA_PERMISSION_STATE_PENDING if the decision is still pending.

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

\since This function is available since SDL 3.2.0.

\sa SDL_OpenCamera \sa SDL_CloseCamera

extern SDL_DECLSPEC SDL_CameraPermissionState SDLCALL SDL_GetCameraPermissionState(SDL_Camera *camera)

Implementation

int sdlGetCameraPermissionState(Pointer<SdlCamera> camera) {
  final sdlGetCameraPermissionStateLookupFunction = _libSdl
      .lookupFunction<
        Int32 Function(Pointer<SdlCamera> camera),
        int Function(Pointer<SdlCamera> camera)
      >('SDL_GetCameraPermissionState');
  return sdlGetCameraPermissionStateLookupFunction(camera);
}