diff --git a/src/camera/CameraManager.cpp b/src/camera/CameraManager.cpp index 8fbcbea9..cda6dde4 100644 --- a/src/camera/CameraManager.cpp +++ b/src/camera/CameraManager.cpp @@ -216,9 +216,9 @@ namespace CameraManager void SaveDevice() { std::scoped_lock lock(s_mutex); - auto& config = GetConfig(); - const auto cameraId = s_device ? Cap_getDeviceUniqueID(s_ctx, *s_device) : ""; - config.camera_id = cameraId; + const std::string cameraId = s_device ? Cap_getDeviceUniqueID(s_ctx, *s_device) : ""; + GetConfig().camera_id.SetValue(cameraId); + GetConfigHandle().Save(); } std::optional GetCurrentDevice() diff --git a/src/config/CemuConfig.cpp b/src/config/CemuConfig.cpp index 50523da5..39248582 100644 --- a/src/config/CemuConfig.cpp +++ b/src/config/CemuConfig.cpp @@ -291,7 +291,7 @@ XMLConfigParser CemuConfig::Load(XMLConfigParser& parser) emulated_usb_devices.emulate_dimensions_toypad = usbdevices.get("EmulateDimensionsToypad", emulated_usb_devices.emulate_dimensions_toypad); - auto camera = parser.get("camera"); + auto camera = parser.get("Camera"); camera_id = camera.get("DeviceId", ""); return parser; @@ -457,6 +457,9 @@ XMLConfigParser CemuConfig::Save(XMLConfigParser& parser) usbdevices.set("EmulateInfinityBase", emulated_usb_devices.emulate_infinity_base.GetValue()); usbdevices.set("EmulateDimensionsToypad", emulated_usb_devices.emulate_dimensions_toypad.GetValue()); + auto camera = config.set("Camera"); + camera.set("DeviceId", camera_id.GetValue()); + return config; }