[desktop] port IR Camera to Qt6 & fix camera saving on windows (#3630)

The camera was previously saved without escaping the name which made the values unusable after a settings load, for whatever reason replacing the backslashes when saving with / doesn't work but replacing them with | does.

Also note that the OBS virtual cam (and any other cameras that only have directshow drivers) won't work because Qt6 dropped support for that and the ffmpeg backend doesn't seem to support it either.

Closes #3468

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3630
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: DraVee <dravee@eden-emu.dev>
Co-authored-by: smiRaphi <neogt404@gmail.com>
Co-committed-by: smiRaphi <neogt404@gmail.com>
This commit is contained in:
smiRaphi
2026-02-28 01:06:59 +01:00
committed by crueter
parent 06a08de68a
commit 4a833e7206
7 changed files with 90 additions and 94 deletions
+8 -3
View File
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// Text : Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
@@ -8,7 +11,8 @@
class QTimer;
class QCamera;
class QCameraImageCapture;
class QImageCapture;
class QMediaCaptureSession;
namespace InputCommon {
class InputSubsystem;
@@ -46,9 +50,10 @@ private:
bool is_virtual_camera;
int pending_snapshots;
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA
#if YUZU_USE_QT_MULTIMEDIA
std::unique_ptr<QCamera> camera;
std::unique_ptr<QCameraImageCapture> camera_capture;
std::unique_ptr<QImageCapture> camera_capture;
std::unique_ptr<QMediaCaptureSession> capture_session;
#endif
std::unique_ptr<QTimer> camera_timer;
std::vector<std::string> input_devices;