Camera fixes (#6181)

This commit is contained in:
Vitor K 2022-12-17 12:05:04 -03:00 committed by GitHub
parent 812c4fa059
commit 517e0bc342
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 5 deletions

View file

@ -199,6 +199,7 @@ void QtMultimediaCameraHandler::StartCamera() {
camera->setViewfinderSettings(settings);
camera->start();
started = true;
paused = false;
}
bool QtMultimediaCameraHandler::CameraAvailable() const {
@ -210,13 +211,14 @@ void QtMultimediaCameraHandler::StopCameras() {
for (auto& handler : handlers) {
if (handler && handler->started) {
handler->StopCamera();
handler->paused = true;
}
}
}
void QtMultimediaCameraHandler::ResumeCameras() {
for (auto& handler : handlers) {
if (handler && handler->started) {
if (handler && handler->paused) {
handler->StartCamera();
}
}
@ -228,6 +230,7 @@ void QtMultimediaCameraHandler::ReleaseHandlers() {
for (std::size_t i = 0; i < handlers.size(); i++) {
status[i] = false;
handlers[i]->started = false;
handlers[i]->paused = false;
}
}

View file

@ -90,6 +90,7 @@ private:
QtCameraSurface camera_surface{};
QCameraViewfinderSettings settings;
bool started = false;
bool paused = false; // was previously started but was paused, to be resumed
static std::array<std::shared_ptr<QtMultimediaCameraHandler>, 3> handlers;
static std::array<bool, 3> status;