From dd692628b53c95b9479cb6ea3d6bf9c6b6355bd3 Mon Sep 17 00:00:00 2001 From: Lyroy TheToad Date: Thu, 25 Jan 2024 23:39:40 +0100 Subject: [PATCH] UI: Add --no-studio-mode command line option --- UI/obs-app.cpp | 11 +++++++++++ UI/obs-app.hpp | 1 + UI/window-basic-main.cpp | 7 +++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index 887d6bb63..bbe11e1be 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -98,6 +98,7 @@ static bool unfiltered_log = false; bool opt_start_streaming = false; bool opt_start_recording = false; bool opt_studio_mode = false; +bool opt_no_studio_mode = false; bool opt_start_replaybuffer = false; bool opt_start_virtualcam = false; bool opt_minimize_tray = false; @@ -3390,6 +3391,9 @@ int main(int argc, char *argv[]) } else if (arg_is(argv[i], "--studio-mode", nullptr)) { opt_studio_mode = true; + } else if (arg_is(argv[i], "--no-studio-mode", nullptr)) { + opt_no_studio_mode = true; + } else if (arg_is(argv[i], "--allow-opengl", nullptr)) { opt_allow_opengl = true; @@ -3415,6 +3419,7 @@ int main(int argc, char *argv[]) "--profile : Use specific profile.\n" "--scene : Start with specific scene.\n\n" "--studio-mode: Enable studio mode.\n" + "--no-studio-mode: Disable studio mode.\n" "--minimize-to-tray: Minimize to system tray.\n" #if ALLOW_PORTABLE_MODE "--portable, -p: Use portable mode.\n" @@ -3445,6 +3450,12 @@ int main(int argc, char *argv[]) } } + if (opt_studio_mode && opt_no_studio_mode) { + std::cout + << "Can't use \"--studio-mode\" and \"--no-studio-mode\" together.\n"; + exit(1); + } + #if ALLOW_PORTABLE_MODE if (!portable_mode) { portable_mode = diff --git a/UI/obs-app.hpp b/UI/obs-app.hpp index 94c3f349b..c686a5a2a 100644 --- a/UI/obs-app.hpp +++ b/UI/obs-app.hpp @@ -284,6 +284,7 @@ extern bool opt_start_replaybuffer; extern bool opt_start_virtualcam; extern bool opt_minimize_tray; extern bool opt_studio_mode; +extern bool opt_no_studio_mode; extern bool opt_allow_opengl; extern bool opt_always_on_top; extern std::string opt_starting_scene; diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index c1911f8d2..19914726b 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -2094,13 +2094,16 @@ void OBSBasic::OBSInit() editPropertiesMode = config_get_bool( App()->GlobalConfig(), "BasicWindow", "EditPropertiesMode"); - if (!opt_studio_mode) { + if (!opt_studio_mode && !opt_no_studio_mode) { SetPreviewProgramMode(config_get_bool(App()->GlobalConfig(), "BasicWindow", "PreviewProgramMode")); - } else { + } else if (opt_studio_mode) { SetPreviewProgramMode(true); opt_studio_mode = false; + } else { + SetPreviewProgramMode(false); + opt_no_studio_mode = false; } #define SET_VISIBILITY(name, control) \