Qt: ask for camera permissions

This commit is contained in:
Megamouse 2023-11-04 22:14:03 +01:00
parent 4a4762654b
commit 3420cb0365
2 changed files with 50 additions and 0 deletions

View file

@ -6,6 +6,11 @@
#include <QMediaDevices>
#if QT_CONFIG(permissions)
#include <QGuiApplication>
#include <QPermissions>
#endif
LOG_CHANNEL(camera_log, "Camera");
qt_camera_handler::qt_camera_handler() : camera_handler_base()
@ -180,6 +185,26 @@ void qt_camera_handler::start_camera()
return;
}
#if QT_CONFIG(permissions)
QCameraPermission permission;
switch (qApp->checkPermission(permission))
{
case Qt::PermissionStatus::Undetermined:
camera_log.notice("Requesting camera permission");
qApp->requestPermission(permission, [this]()
{
start_camera();
});
return;
case Qt::PermissionStatus::Denied:
camera_log.error("RPCS3 has no permissions to access cameras on this device.");
return;
case Qt::PermissionStatus::Granted:
camera_log.notice("Camera permission granted");
break;
}
#endif
// Start camera. We will start receiving frames now.
m_camera->start();
}