summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/input_common/drivers/camera.h1
-rw-r--r--src/yuzu/bootmanager.cpp18
-rw-r--r--src/yuzu/bootmanager.h8
-rw-r--r--src/yuzu/configuration/config.cpp5
4 files changed, 20 insertions, 12 deletions
diff --git a/src/input_common/drivers/camera.h b/src/input_common/drivers/camera.h
index 38fb1ae4c..ead3e0fde 100644
--- a/src/input_common/drivers/camera.h
+++ b/src/input_common/drivers/camera.h
@@ -25,6 +25,7 @@ public:
25 Common::Input::CameraError SetCameraFormat(const PadIdentifier& identifier_, 25 Common::Input::CameraError SetCameraFormat(const PadIdentifier& identifier_,
26 Common::Input::CameraFormat camera_format) override; 26 Common::Input::CameraFormat camera_format) override;
27 27
28private:
28 Common::Input::CameraStatus status{}; 29 Common::Input::CameraStatus status{};
29}; 30};
30 31
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index 682b37f47..1368b20d5 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -764,7 +764,9 @@ void GRenderWindow::InitializeCamera() {
764 return; 764 return;
765 } 765 }
766 766
767 camera_data.resize(CAMERA_WIDTH * CAMERA_HEIGHT); 767 const auto camera_width = input_subsystem->GetCamera()->getImageWidth();
768 const auto camera_height = input_subsystem->GetCamera()->getImageHeight();
769 camera_data.resize(camera_width * camera_height);
768 camera_capture->setCaptureDestination(QCameraImageCapture::CaptureDestination::CaptureToBuffer); 770 camera_capture->setCaptureDestination(QCameraImageCapture::CaptureDestination::CaptureToBuffer);
769 connect(camera_capture.get(), &QCameraImageCapture::imageCaptured, this, 771 connect(camera_capture.get(), &QCameraImageCapture::imageCaptured, this,
770 &GRenderWindow::OnCameraCapture); 772 &GRenderWindow::OnCameraCapture);
@@ -820,14 +822,22 @@ void GRenderWindow::RequestCameraCapture() {
820} 822}
821 823
822void GRenderWindow::OnCameraCapture(int requestId, const QImage& img) { 824void GRenderWindow::OnCameraCapture(int requestId, const QImage& img) {
825#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA
823 // TODO: Capture directly in the format and resolution needed 826 // TODO: Capture directly in the format and resolution needed
827 const auto camera_width = input_subsystem->GetCamera()->getImageWidth();
828 const auto camera_height = input_subsystem->GetCamera()->getImageHeight();
824 const auto converted = 829 const auto converted =
825 img.scaled(CAMERA_WIDTH, CAMERA_HEIGHT, Qt::AspectRatioMode::IgnoreAspectRatio, 830 img.scaled(static_cast<int>(camera_width), static_cast<int>(camera_height),
831 Qt::AspectRatioMode::IgnoreAspectRatio,
826 Qt::TransformationMode::SmoothTransformation) 832 Qt::TransformationMode::SmoothTransformation)
827 .mirrored(false, true); 833 .mirrored(false, true);
828 std::memcpy(camera_data.data(), converted.bits(), CAMERA_WIDTH * CAMERA_HEIGHT * sizeof(u32)); 834 if (camera_data.size() != camera_width * camera_height) {
829 input_subsystem->GetCamera()->SetCameraData(CAMERA_WIDTH, CAMERA_HEIGHT, camera_data); 835 camera_data.resize(camera_width * camera_height);
836 }
837 std::memcpy(camera_data.data(), converted.bits(), camera_width * camera_height * sizeof(u32));
838 input_subsystem->GetCamera()->SetCameraData(camera_width, camera_height, camera_data);
830 pending_camera_snapshots = 0; 839 pending_camera_snapshots = 0;
840#endif
831} 841}
832 842
833bool GRenderWindow::event(QEvent* event) { 843bool GRenderWindow::event(QEvent* event) {
diff --git a/src/yuzu/bootmanager.h b/src/yuzu/bootmanager.h
index 5bbcf61f7..b24141fd9 100644
--- a/src/yuzu/bootmanager.h
+++ b/src/yuzu/bootmanager.h
@@ -242,16 +242,14 @@ private:
242 bool first_frame = false; 242 bool first_frame = false;
243 InputCommon::TasInput::TasState last_tas_state; 243 InputCommon::TasInput::TasState last_tas_state;
244 244
245#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA
245 bool is_virtual_camera; 246 bool is_virtual_camera;
246 int pending_camera_snapshots; 247 int pending_camera_snapshots;
247#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA 248 std::vector<u32> camera_data;
248 std::unique_ptr<QCamera> camera; 249 std::unique_ptr<QCamera> camera;
249 std::unique_ptr<QCameraImageCapture> camera_capture; 250 std::unique_ptr<QCameraImageCapture> camera_capture;
250 static constexpr std::size_t CAMERA_WIDTH = 320;
251 static constexpr std::size_t CAMERA_HEIGHT = 240;
252 std::vector<u32> camera_data;
253#endif
254 std::unique_ptr<QTimer> camera_timer; 251 std::unique_ptr<QTimer> camera_timer;
252#endif
255 253
256 Core::System& system; 254 Core::System& system;
257 255
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index a8d47a2f9..2ea4f367b 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -783,8 +783,6 @@ void Config::ReadSystemValues() {
783 } 783 }
784 } 784 }
785 785
786 ReadBasicSetting(Settings::values.device_name);
787
788 if (global) { 786 if (global) {
789 ReadBasicSetting(Settings::values.current_user); 787 ReadBasicSetting(Settings::values.current_user);
790 Settings::values.current_user = std::clamp<int>(Settings::values.current_user.GetValue(), 0, 788 Settings::values.current_user = std::clamp<int>(Settings::values.current_user.GetValue(), 0,
@@ -797,6 +795,7 @@ void Config::ReadSystemValues() {
797 } else { 795 } else {
798 Settings::values.custom_rtc = std::nullopt; 796 Settings::values.custom_rtc = std::nullopt;
799 } 797 }
798 ReadBasicSetting(Settings::values.device_name);
800 } 799 }
801 800
802 ReadGlobalSetting(Settings::values.sound_index); 801 ReadGlobalSetting(Settings::values.sound_index);
@@ -1407,7 +1406,6 @@ void Config::SaveSystemValues() {
1407 Settings::values.rng_seed.UsingGlobal()); 1406 Settings::values.rng_seed.UsingGlobal());
1408 WriteSetting(QStringLiteral("rng_seed"), Settings::values.rng_seed.GetValue(global).value_or(0), 1407 WriteSetting(QStringLiteral("rng_seed"), Settings::values.rng_seed.GetValue(global).value_or(0),
1409 0, Settings::values.rng_seed.UsingGlobal()); 1408 0, Settings::values.rng_seed.UsingGlobal());
1410 WriteBasicSetting(Settings::values.device_name);
1411 1409
1412 if (global) { 1410 if (global) {
1413 WriteBasicSetting(Settings::values.current_user); 1411 WriteBasicSetting(Settings::values.current_user);
@@ -1416,6 +1414,7 @@ void Config::SaveSystemValues() {
1416 false); 1414 false);
1417 WriteSetting(QStringLiteral("custom_rtc"), 1415 WriteSetting(QStringLiteral("custom_rtc"),
1418 QVariant::fromValue<long long>(Settings::values.custom_rtc.value_or(0)), 0); 1416 QVariant::fromValue<long long>(Settings::values.custom_rtc.value_or(0)), 0);
1417 WriteBasicSetting(Settings::values.device_name);
1419 } 1418 }
1420 1419
1421 WriteGlobalSetting(Settings::values.sound_index); 1420 WriteGlobalSetting(Settings::values.sound_index);