Răsfoiți Sursa

UI: Release recording/streaming signals before outputs

Palana 10 ani în urmă
părinte
comite
473244da3c
2 a modificat fișierele cu 13 adăugiri și 8 ștergeri
  1. 8 8
      obs/window-basic-main-outputs.cpp
  2. 5 0
      obs/window-basic-main-outputs.hpp

+ 8 - 8
obs/window-basic-main-outputs.cpp

@@ -112,14 +112,14 @@ SimpleOutput::SimpleOutput(OBSBasic *main_) : BasicOutputHandler(main_)
 	if (!aac)
 		throw "Failed to create audio encoder (simple output)";
 
-	signal_handler_connect(obs_output_get_signal_handler(streamOutput),
+	startStreaming.Connect(obs_output_get_signal_handler(streamOutput),
 			"start", OBSStartStreaming, this);
-	signal_handler_connect(obs_output_get_signal_handler(streamOutput),
+	stopStreaming.Connect(obs_output_get_signal_handler(streamOutput),
 			"stop", OBSStopStreaming, this);
 
-	signal_handler_connect(obs_output_get_signal_handler(fileOutput),
+	startRecording.Connect(obs_output_get_signal_handler(fileOutput),
 			"start", OBSStartRecording, this);
-	signal_handler_connect(obs_output_get_signal_handler(fileOutput),
+	stopRecording.Connect(obs_output_get_signal_handler(fileOutput),
 			"stop", OBSStopRecording, this);
 }
 
@@ -393,14 +393,14 @@ AdvancedOutput::AdvancedOutput(OBSBasic *main_) : BasicOutputHandler(main_)
 			      "(advanced output)";
 	}
 
-	signal_handler_connect(obs_output_get_signal_handler(streamOutput),
+	startStreaming.Connect(obs_output_get_signal_handler(streamOutput),
 			"start", OBSStartStreaming, this);
-	signal_handler_connect(obs_output_get_signal_handler(streamOutput),
+	stopStreaming.Connect(obs_output_get_signal_handler(streamOutput),
 			"stop", OBSStopStreaming, this);
 
-	signal_handler_connect(obs_output_get_signal_handler(fileOutput),
+	startRecording.Connect(obs_output_get_signal_handler(fileOutput),
 			"start", OBSStartRecording, this);
-	signal_handler_connect(obs_output_get_signal_handler(fileOutput),
+	stopRecording.Connect(obs_output_get_signal_handler(fileOutput),
 			"stop", OBSStopRecording, this);
 }
 

+ 5 - 0
obs/window-basic-main-outputs.hpp

@@ -8,6 +8,11 @@ struct BasicOutputHandler {
 	int                    activeRefs = 0;
 	OBSBasic               *main;
 
+	OBSSignal              startRecording;
+	OBSSignal              stopRecording;
+	OBSSignal              startStreaming;
+	OBSSignal              stopStreaming;
+
 	inline BasicOutputHandler(OBSBasic *main_) : main(main_) {}
 
 	virtual ~BasicOutputHandler() {};