From 66398470174f435c704286a635c6a4c88295a9ba Mon Sep 17 00:00:00 2001 From: cg2121 Date: Mon, 17 Oct 2016 21:49:24 -0500 Subject: [PATCH] frontend-tools: Add ability to start timer if output is already active This adds the ability to start the output timer if streaming or recording is already active. --- .../frontend-tools/output-timer.cpp | 28 ++++++++++++------- .../frontend-tools/output-timer.hpp | 3 ++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/UI/frontend-plugins/frontend-tools/output-timer.cpp b/UI/frontend-plugins/frontend-tools/output-timer.cpp index f4086ee78..128e5fb95 100644 --- a/UI/frontend-plugins/frontend-tools/output-timer.cpp +++ b/UI/frontend-plugins/frontend-tools/output-timer.cpp @@ -37,24 +37,32 @@ void OutputTimer::closeEvent(QCloseEvent*) void OutputTimer::StreamingTimerButton() { - if (obs_frontend_streaming_active()) - obs_frontend_streaming_stop(); - else + if (!obs_frontend_streaming_active()) { obs_frontend_streaming_start(); + } else if (streamingAlreadyActive) { + StreamTimerStart(); + streamingAlreadyActive = false; + } else if (obs_frontend_streaming_active()) { + obs_frontend_streaming_stop(); + } } void OutputTimer::RecordingTimerButton() { - if (obs_frontend_recording_active()) - obs_frontend_recording_stop(); - else + if (!obs_frontend_recording_active()) { obs_frontend_recording_start(); + } else if (recordingAlreadyActive) { + RecordTimerStart(); + recordingAlreadyActive = false; + } else if (obs_frontend_recording_active()) { + obs_frontend_recording_stop(); + } } void OutputTimer::StreamTimerStart() { if (!isVisible()) { - ui->outputTimerStream->setEnabled(false); + streamingAlreadyActive = true; return; } @@ -88,7 +96,7 @@ void OutputTimer::StreamTimerStart() void OutputTimer::RecordTimerStart() { if (!isVisible()) { - ui->outputTimerRecord->setEnabled(false); + recordingAlreadyActive = true; return; } @@ -121,7 +129,7 @@ void OutputTimer::RecordTimerStart() void OutputTimer::StreamTimerStop() { - ui->outputTimerStream->setEnabled(true); + streamingAlreadyActive = false; if (!isVisible() && streamingTimer->isActive() == false) return; @@ -139,7 +147,7 @@ void OutputTimer::StreamTimerStop() void OutputTimer::RecordTimerStop() { - ui->outputTimerRecord->setEnabled(true); + recordingAlreadyActive = false; if (!isVisible() && recordingTimer->isActive() == false) return; diff --git a/UI/frontend-plugins/frontend-tools/output-timer.hpp b/UI/frontend-plugins/frontend-tools/output-timer.hpp index 7db353e79..ff3b733dc 100644 --- a/UI/frontend-plugins/frontend-tools/output-timer.hpp +++ b/UI/frontend-plugins/frontend-tools/output-timer.hpp @@ -30,6 +30,9 @@ public slots: void EventStopRecording(); private: + bool streamingAlreadyActive = false; + bool recordingAlreadyActive = false; + QTimer *streamingTimer; QTimer *recordingTimer; QTimer *streamingTimerDisplay;