diff --git a/obs/data/locale/en-US.ini b/obs/data/locale/en-US.ini index bbf728b72..6ab950d11 100644 --- a/obs/data/locale/en-US.ini +++ b/obs/data/locale/en-US.ini @@ -293,7 +293,9 @@ Basic.Main.Connecting="Connecting..." Basic.Main.StartRecording="Start Recording" Basic.Main.StartStreaming="Start Streaming" Basic.Main.StopRecording="Stop Recording" +Basic.Main.StoppingRecording="Stopping Recording..." Basic.Main.StopStreaming="Stop Streaming" +Basic.Main.StoppingStreaming="Stopping Stream..." Basic.Main.ForceStopStreaming="Stop Streaming (discard delay)" # basic mode file menu diff --git a/obs/window-basic-main-outputs.cpp b/obs/window-basic-main-outputs.cpp index c1f4f08ec..66a84cb55 100644 --- a/obs/window-basic-main-outputs.cpp +++ b/obs/window-basic-main-outputs.cpp @@ -27,10 +27,10 @@ static void OBSStreamStopping(void *data, calldata_t *params) int sec = (int)obs_output_get_active_delay(obj); if (sec == 0) - return; - - QMetaObject::invokeMethod(output->main, - "StreamDelayStopping", Q_ARG(int, sec)); + QMetaObject::invokeMethod(output->main, "StreamStopping"); + else + QMetaObject::invokeMethod(output->main, + "StreamDelayStopping", Q_ARG(int, sec)); } static void OBSStartStreaming(void *data, calldata_t *params) @@ -75,6 +75,14 @@ static void OBSStopRecording(void *data, calldata_t *params) UNUSED_PARAMETER(params); } +static void OBSRecordStopping(void *data, calldata_t *params) +{ + BasicOutputHandler *output = static_cast(data); + QMetaObject::invokeMethod(output->main, "RecordStopping"); + + UNUSED_PARAMETER(params); +} + static void FindBestFilename(string &strPath, bool noSpace) { int num = 2; @@ -281,7 +289,7 @@ SimpleOutput::SimpleOutput(OBSBasic *main_) : BasicOutputHandler(main_) streamDelayStarting.Connect(obs_output_get_signal_handler(streamOutput), "starting", OBSStreamStarting, this); - streamDelayStopping.Connect(obs_output_get_signal_handler(streamOutput), + streamStopping.Connect(obs_output_get_signal_handler(streamOutput), "stopping", OBSStreamStopping, this); startStreaming.Connect(obs_output_get_signal_handler(streamOutput), @@ -304,6 +312,8 @@ SimpleOutput::SimpleOutput(OBSBasic *main_) : BasicOutputHandler(main_) "start", OBSStartRecording, this); stopRecording.Connect(obs_output_get_signal_handler(fileOutput), "stop", OBSStopRecording, this); + recordStopping.Connect(obs_output_get_signal_handler(fileOutput), + "stopping", OBSRecordStopping, this); } int SimpleOutput::GetAudioBitrate() const @@ -762,7 +772,7 @@ AdvancedOutput::AdvancedOutput(OBSBasic *main_) : BasicOutputHandler(main_) streamDelayStarting.Connect(obs_output_get_signal_handler(streamOutput), "starting", OBSStreamStarting, this); - streamDelayStopping.Connect(obs_output_get_signal_handler(streamOutput), + streamStopping.Connect(obs_output_get_signal_handler(streamOutput), "stopping", OBSStreamStopping, this); startStreaming.Connect(obs_output_get_signal_handler(streamOutput), @@ -774,6 +784,8 @@ AdvancedOutput::AdvancedOutput(OBSBasic *main_) : BasicOutputHandler(main_) "start", OBSStartRecording, this); stopRecording.Connect(obs_output_get_signal_handler(fileOutput), "stop", OBSStopRecording, this); + recordStopping.Connect(obs_output_get_signal_handler(fileOutput), + "stopping", OBSRecordStopping, this); } void AdvancedOutput::UpdateStreamSettings() diff --git a/obs/window-basic-main-outputs.hpp b/obs/window-basic-main-outputs.hpp index ec041c004..186d3b4da 100644 --- a/obs/window-basic-main-outputs.hpp +++ b/obs/window-basic-main-outputs.hpp @@ -15,7 +15,8 @@ struct BasicOutputHandler { OBSSignal startStreaming; OBSSignal stopStreaming; OBSSignal streamDelayStarting; - OBSSignal streamDelayStopping; + OBSSignal streamStopping; + OBSSignal recordStopping; inline BasicOutputHandler(OBSBasic *main_) : main(main_) {} diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 20eb76511..66b82dad5 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -3422,6 +3422,11 @@ void OBSBasic::StreamingStart() blog(LOG_INFO, STREAMING_START); } +void OBSBasic::StreamStopping() +{ + ui->streamButton->setText(QTStr("Basic.Main.StoppingStreaming")); +} + void OBSBasic::StreamingStop(int code) { const char *errorMessage; @@ -3482,6 +3487,11 @@ void OBSBasic::StartRecording() outputHandler->StartRecording(); } +void OBSBasic::RecordStopping() +{ + ui->recordButton->setText(QTStr("Basic.Main.StoppingRecording")); +} + void OBSBasic::StopRecording() { SaveProject(); diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp index f75feb531..aa2db1b29 100644 --- a/obs/window-basic-main.hpp +++ b/obs/window-basic-main.hpp @@ -289,12 +289,14 @@ public slots: void StreamDelayStopping(int sec); void StreamingStart(); + void StreamStopping(); void StreamingStop(int errorcode); void StartRecording(); void StopRecording(); void RecordingStart(); + void RecordStopping(); void RecordingStop(int code); void SaveProjectDeferred();