diff --git a/obs/window-basic-main-outputs.cpp b/obs/window-basic-main-outputs.cpp index 4aa7a944a..c5743dbde 100644 --- a/obs/window-basic-main-outputs.cpp +++ b/obs/window-basic-main-outputs.cpp @@ -9,8 +9,8 @@ using namespace std; static void OBSStartStreaming(void *data, calldata_t *params) { BasicOutputHandler *output = static_cast(data); + output->streamingActive = true; QMetaObject::invokeMethod(output->main, "StreamingStart"); - output->activeRefs++; UNUSED_PARAMETER(params); } @@ -20,17 +20,17 @@ static void OBSStopStreaming(void *data, calldata_t *params) BasicOutputHandler *output = static_cast(data); int code = (int)calldata_int(params, "code"); + output->streamingActive = false; QMetaObject::invokeMethod(output->main, "StreamingStop", Q_ARG(int, code)); - output->activeRefs--; } static void OBSStartRecording(void *data, calldata_t *params) { BasicOutputHandler *output = static_cast(data); + output->recordingActive = true; QMetaObject::invokeMethod(output->main, "RecordingStart"); - output->activeRefs++; UNUSED_PARAMETER(params); } @@ -40,9 +40,9 @@ static void OBSStopRecording(void *data, calldata_t *params) BasicOutputHandler *output = static_cast(data); int code = (int)calldata_int(params, "code"); + output->recordingActive = false; QMetaObject::invokeMethod(output->main, "RecordingStop", Q_ARG(int, code)); - output->activeRefs--; UNUSED_PARAMETER(params); } diff --git a/obs/window-basic-main-outputs.hpp b/obs/window-basic-main-outputs.hpp index 4d63b0f17..e6e673c16 100644 --- a/obs/window-basic-main-outputs.hpp +++ b/obs/window-basic-main-outputs.hpp @@ -5,7 +5,8 @@ class OBSBasic; struct BasicOutputHandler { OBSOutput fileOutput; OBSOutput streamOutput; - int activeRefs = 0; + bool streamingActive = false; + bool recordingActive = false; OBSBasic *main; OBSSignal startRecording; @@ -26,7 +27,10 @@ struct BasicOutputHandler { virtual void Update() = 0; - inline bool Active() const {return !!activeRefs;} + inline bool Active() const + { + return streamingActive || recordingActive; + } }; BasicOutputHandler *CreateSimpleOutputHandler(OBSBasic *main);