From 46c00a95cd236a5e7e959cffee3446dc305de125 Mon Sep 17 00:00:00 2001 From: derrod Date: Tue, 19 Dec 2023 00:04:46 +0100 Subject: [PATCH] UI: Save last used output resolution to scene collection --- UI/window-basic-main.cpp | 12 ++++++++++++ UI/window-basic-main.hpp | 1 + 2 files changed, 13 insertions(+) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 3447dcd77..2ba72a15b 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -847,6 +847,13 @@ void OBSBasic::Save(const char *file) } } + if (lastOutputResolution) { + OBSDataAutoRelease res = obs_data_create(); + obs_data_set_int(res, "x", lastOutputResolution->first); + obs_data_set_int(res, "y", lastOutputResolution->second); + obs_data_set_obj(saveData, "resolution", res); + } + if (!obs_data_save_json_safe(saveData, file, "tmp", "bak")) blog(LOG_ERROR, "Could not save scene data to %s", file); } @@ -1077,6 +1084,7 @@ void OBSBasic::LogScenes() void OBSBasic::Load(const char *file) { disableSaving++; + lastOutputResolution.reset(); obs_data_t *data = obs_data_create_from_json_file_safe(file, "bak"); if (!data) { @@ -7171,6 +7179,10 @@ inline void OBSBasic::OnActivate(bool force) App()->IncrementSleepInhibition(); UpdateProcessPriority(); + struct obs_video_info ovi; + obs_get_video_info(&ovi); + lastOutputResolution = {ovi.base_width, ovi.base_height}; + TaskbarOverlaySetStatus(TaskbarOverlayStatusActive); if (trayIcon && trayIcon->isVisible()) { #ifdef __APPLE__ diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 348ffcd97..632316d65 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -359,6 +359,7 @@ private: std::string patronJson; std::atomic currentScene = nullptr; + std::optional> lastOutputResolution; void UpdateMultiviewProjectorMenu();