Browse Source

UI: Use signal vector for status bar

The stream output signals are now put inside of a vector.
cg2121 1 year ago
parent
commit
21f1c155ef
2 changed files with 7 additions and 11 deletions
  1. 6 11
      UI/window-basic-status-bar.cpp
  2. 1 0
      UI/window-basic-status-bar.hpp

+ 6 - 11
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;

+ 1 - 0
UI/window-basic-status-bar.hpp

@@ -28,6 +28,7 @@ private:
 	StatusBarWidget *statusWidget = nullptr;
 
 	obs_output_t *streamOutput = nullptr;
+	std::vector<OBSSignal> streamSigs;
 	obs_output_t *recordOutput = nullptr;
 	bool active = false;
 	bool overloadedNotify = true;