From 21f1c155ef33f176c4065868a6edc7951708ee49 Mon Sep 17 00:00:00 2001 From: cg2121 Date: Thu, 15 Feb 2024 03:24:04 -0600 Subject: [PATCH] UI: Use signal vector for status bar The stream output signals are now put inside of a vector. --- UI/window-basic-status-bar.cpp | 17 ++++++----------- UI/window-basic-status-bar.hpp | 1 + 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/UI/window-basic-status-bar.cpp b/UI/window-basic-status-bar.cpp index 5816b0f29..f6e61ca78 100644 --- a/UI/window-basic-status-bar.cpp +++ b/UI/window-basic-status-bar.cpp @@ -509,11 +509,11 @@ void OBSBasicStatusBar::StreamStarted(obs_output_t *output) { streamOutput = output; - signal_handler_connect(obs_output_get_signal_handler(streamOutput), - "reconnect", OBSOutputReconnect, this); - signal_handler_connect(obs_output_get_signal_handler(streamOutput), - "reconnect_success", OBSOutputReconnectSuccess, - this); + streamSigs.emplace_back(obs_output_get_signal_handler(streamOutput), + "reconnect", OBSOutputReconnect, this); + streamSigs.emplace_back(obs_output_get_signal_handler(streamOutput), + "reconnect_success", OBSOutputReconnectSuccess, + this); retries = 0; lastBytesSent = 0; @@ -524,12 +524,7 @@ void OBSBasicStatusBar::StreamStarted(obs_output_t *output) void OBSBasicStatusBar::StreamStopped() { if (streamOutput) { - signal_handler_disconnect( - obs_output_get_signal_handler(streamOutput), - "reconnect", OBSOutputReconnect, this); - signal_handler_disconnect( - obs_output_get_signal_handler(streamOutput), - "reconnect_success", OBSOutputReconnectSuccess, this); + streamSigs.clear(); ReconnectClear(); streamOutput = nullptr; diff --git a/UI/window-basic-status-bar.hpp b/UI/window-basic-status-bar.hpp index 9fe33ec95..a78199b4b 100644 --- a/UI/window-basic-status-bar.hpp +++ b/UI/window-basic-status-bar.hpp @@ -28,6 +28,7 @@ private: StatusBarWidget *statusWidget = nullptr; obs_output_t *streamOutput = nullptr; + std::vector streamSigs; obs_output_t *recordOutput = nullptr; bool active = false; bool overloadedNotify = true;