diff options
| author | Kyle Kienapfel <Docteh@users.noreply.github.com> | 2022-08-31 03:10:34 -0700 | 
|---|---|---|
| committer | Kyle Kienapfel <Docteh@users.noreply.github.com> | 2022-11-17 19:14:14 -0800 | 
| commit | ad3ee5c52bd26cfb123d0bc47c18d4a4d2fbb64d (patch) | |
| tree | 9144ac6918014541f2620343ac8d104c38ac599b | |
| parent | 405d685101e60e3b9f156250f2d462f7e7217a10 (diff) | |
Qt6: Disable IR Sensor when compiling with Qt6
Gating the IR Sensor code behind a macro like so
`#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA`
The YUZU_USE_QT_MULTIMEDIA flag is implemented in later commit
Also the locale fix in src/yuzu/main.cpp is now gated against Qt6,
as it causes compilation error
| -rw-r--r-- | src/yuzu/bootmanager.cpp | 8 | ||||
| -rw-r--r-- | src/yuzu/bootmanager.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_camera.cpp | 7 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_camera.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_input_advanced.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 2 | 
6 files changed, 25 insertions, 0 deletions
| diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp index d88efacd7..c934069dd 100644 --- a/src/yuzu/bootmanager.cpp +++ b/src/yuzu/bootmanager.cpp @@ -4,8 +4,10 @@  #include <glad/glad.h>  #include <QApplication> +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA  #include <QCameraImageCapture>  #include <QCameraInfo> +#endif  #include <QHBoxLayout>  #include <QMessageBox>  #include <QPainter> @@ -707,6 +709,7 @@ void GRenderWindow::TouchEndEvent() {  }  void GRenderWindow::InitializeCamera() { +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA      constexpr auto camera_update_ms = std::chrono::milliseconds{50}; // (50ms, 20Hz)      if (!Settings::values.enable_ir_sensor) {          return; @@ -760,18 +763,22 @@ void GRenderWindow::InitializeCamera() {      connect(camera_timer.get(), &QTimer::timeout, [this] { RequestCameraCapture(); });      // This timer should be dependent of camera resolution 5ms for every 100 pixels      camera_timer->start(camera_update_ms); +#endif  }  void GRenderWindow::FinalizeCamera() { +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA      if (camera_timer) {          camera_timer->stop();      }      if (camera) {          camera->unload();      } +#endif  }  void GRenderWindow::RequestCameraCapture() { +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA      if (!Settings::values.enable_ir_sensor) {          return;      } @@ -788,6 +795,7 @@ void GRenderWindow::RequestCameraCapture() {      pending_camera_snapshots++;      camera_capture->capture(); +#endif  }  void GRenderWindow::OnCameraCapture(int requestId, const QImage& img) { diff --git a/src/yuzu/bootmanager.h b/src/yuzu/bootmanager.h index c45ebf1a2..4a01481cd 100644 --- a/src/yuzu/bootmanager.h +++ b/src/yuzu/bootmanager.h @@ -241,8 +241,10 @@ private:      bool is_virtual_camera;      int pending_camera_snapshots; +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA      std::unique_ptr<QCamera> camera;      std::unique_ptr<QCameraImageCapture> camera_capture; +#endif      std::unique_ptr<QTimer> camera_timer;      Core::System& system; diff --git a/src/yuzu/configuration/configure_camera.cpp b/src/yuzu/configuration/configure_camera.cpp index 2a61de2a1..d95e96696 100644 --- a/src/yuzu/configuration/configure_camera.cpp +++ b/src/yuzu/configuration/configure_camera.cpp @@ -2,8 +2,11 @@  // SPDX-License-Identifier: GPL-3.0-or-later  #include <memory> +#include <QtCore> +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA  #include <QCameraImageCapture>  #include <QCameraInfo> +#endif  #include <QStandardItemModel>  #include <QTimer> @@ -33,6 +36,7 @@ ConfigureCamera::ConfigureCamera(QWidget* parent, InputCommon::InputSubsystem* i  ConfigureCamera::~ConfigureCamera() = default;  void ConfigureCamera::PreviewCamera() { +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA      const auto index = ui->ir_sensor_combo_box->currentIndex();      bool camera_found = false;      const QList<QCameraInfo> cameras = QCameraInfo::availableCameras(); @@ -101,6 +105,7 @@ void ConfigureCamera::PreviewCamera() {      });      camera_timer->start(250); +#endif  }  void ConfigureCamera::DisplayCapturedFrame(int requestId, const QImage& img) { @@ -133,11 +138,13 @@ void ConfigureCamera::LoadConfiguration() {      ui->ir_sensor_combo_box->clear();      input_devices.push_back("Auto");      ui->ir_sensor_combo_box->addItem(tr("Auto")); +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA      const auto cameras = QCameraInfo::availableCameras();      for (const QCameraInfo& cameraInfo : cameras) {          input_devices.push_back(cameraInfo.deviceName().toStdString());          ui->ir_sensor_combo_box->addItem(cameraInfo.description());      } +#endif      const auto current_device = Settings::values.ir_sensor_device.GetValue(); diff --git a/src/yuzu/configuration/configure_camera.h b/src/yuzu/configuration/configure_camera.h index db9833b5c..9a90512b3 100644 --- a/src/yuzu/configuration/configure_camera.h +++ b/src/yuzu/configuration/configure_camera.h @@ -46,8 +46,10 @@ private:      bool is_virtual_camera;      int pending_snapshots; +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA      std::unique_ptr<QCamera> camera;      std::unique_ptr<QCameraImageCapture> camera_capture; +#endif      std::unique_ptr<QTimer> camera_timer;      std::vector<std::string> input_devices;      std::unique_ptr<Ui::ConfigureCamera> ui; diff --git a/src/yuzu/configuration/configure_input_advanced.cpp b/src/yuzu/configuration/configure_input_advanced.cpp index 10f841b98..235b813d9 100644 --- a/src/yuzu/configuration/configure_input_advanced.cpp +++ b/src/yuzu/configuration/configure_input_advanced.cpp @@ -194,4 +194,8 @@ void ConfigureInputAdvanced::UpdateUIEnabled() {      ui->mouse_panning->setEnabled(!ui->mouse_enabled->isChecked());      ui->mouse_panning_sensitivity->setEnabled(!ui->mouse_enabled->isChecked());      ui->ring_controller_configure->setEnabled(ui->enable_ring_controller->isChecked()); +#if QT_VERSION > QT_VERSION_CHECK(6, 0, 0) || !defined(YUZU_USE_QT_MULTIMEDIA) +    ui->enable_ir_sensor->setEnabled(false); +    ui->camera_configure->setEnabled(false); +#endif  } diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 7ee2302cc..26c593fce 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -4194,10 +4194,12 @@ int main(int argc, char* argv[]) {      // so we can see if we get \u3008 instead      // TL;DR all other number formats are consecutive in unicode code points      // This bug is fixed in Qt6, specifically 6.0.0-alpha1 +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)      const QLocale locale = QLocale::system();      if (QStringLiteral("\u3008") == locale.toString(1)) {          QLocale::setDefault(QLocale::system().name());      } +#endif      // Qt changes the locale and causes issues in float conversion using std::to_string() when      // generating shaders | 
