From 4ff7ac0bfa3fec8d65a169b8b0acc46597d71f06 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Mon, 15 May 2017 14:15:25 -0700 Subject: [PATCH] UI: Change output blocking bool to integer ref counter --- UI/window-basic-main.cpp | 6 +++--- UI/window-basic-main.hpp | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 9034048fc..5cd77e4cc 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -3958,7 +3958,7 @@ void OBSBasic::StartStreaming() { if (outputHandler->StreamingActive()) return; - if (!enableOutputs) + if (disableOutputsRef) return; if (api) @@ -4250,7 +4250,7 @@ void OBSBasic::StartRecording() { if (outputHandler->RecordingActive()) return; - if (!enableOutputs) + if (disableOutputsRef) return; if (api) @@ -4352,7 +4352,7 @@ void OBSBasic::StartReplayBuffer() return; if (outputHandler->ReplayBufferActive()) return; - if (!enableOutputs) + if (disableOutputsRef) return; obs_output_t *output = outputHandler->replayBuffer; diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 55cad9514..9a4de4030 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -318,7 +318,7 @@ private: int programCX = 0, programCY = 0; float programScale = 0.0f; - bool enableOutputs = true; + int disableOutputsRef = 0; inline bool IsPreviewProgramMode() const { @@ -501,7 +501,12 @@ public: inline void EnableOutputs(bool enable) { - enableOutputs = enable; + if (enable) { + if (--disableOutputsRef < 0) + disableOutputsRef = 0; + } else { + disableOutputsRef++; + } } void ReorderSceneItem(obs_sceneitem_t *item, size_t idx);