0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 21:13:04 +02:00

Merge pull request #666 from cg2121/output-timer-fix

frontend-tools: Add ability to start timer if output is already active
This commit is contained in:
Jim 2016-10-18 04:07:08 -07:00 committed by GitHub
commit 65da3fbaa2
2 changed files with 21 additions and 10 deletions

View File

@ -37,24 +37,32 @@ void OutputTimer::closeEvent(QCloseEvent*)
void OutputTimer::StreamingTimerButton() void OutputTimer::StreamingTimerButton()
{ {
if (obs_frontend_streaming_active()) if (!obs_frontend_streaming_active()) {
obs_frontend_streaming_stop();
else
obs_frontend_streaming_start(); obs_frontend_streaming_start();
} else if (streamingAlreadyActive) {
StreamTimerStart();
streamingAlreadyActive = false;
} else if (obs_frontend_streaming_active()) {
obs_frontend_streaming_stop();
}
} }
void OutputTimer::RecordingTimerButton() void OutputTimer::RecordingTimerButton()
{ {
if (obs_frontend_recording_active()) if (!obs_frontend_recording_active()) {
obs_frontend_recording_stop();
else
obs_frontend_recording_start(); obs_frontend_recording_start();
} else if (recordingAlreadyActive) {
RecordTimerStart();
recordingAlreadyActive = false;
} else if (obs_frontend_recording_active()) {
obs_frontend_recording_stop();
}
} }
void OutputTimer::StreamTimerStart() void OutputTimer::StreamTimerStart()
{ {
if (!isVisible()) { if (!isVisible()) {
ui->outputTimerStream->setEnabled(false); streamingAlreadyActive = true;
return; return;
} }
@ -88,7 +96,7 @@ void OutputTimer::StreamTimerStart()
void OutputTimer::RecordTimerStart() void OutputTimer::RecordTimerStart()
{ {
if (!isVisible()) { if (!isVisible()) {
ui->outputTimerRecord->setEnabled(false); recordingAlreadyActive = true;
return; return;
} }
@ -121,7 +129,7 @@ void OutputTimer::RecordTimerStart()
void OutputTimer::StreamTimerStop() void OutputTimer::StreamTimerStop()
{ {
ui->outputTimerStream->setEnabled(true); streamingAlreadyActive = false;
if (!isVisible() && streamingTimer->isActive() == false) if (!isVisible() && streamingTimer->isActive() == false)
return; return;
@ -139,7 +147,7 @@ void OutputTimer::StreamTimerStop()
void OutputTimer::RecordTimerStop() void OutputTimer::RecordTimerStop()
{ {
ui->outputTimerRecord->setEnabled(true); recordingAlreadyActive = false;
if (!isVisible() && recordingTimer->isActive() == false) if (!isVisible() && recordingTimer->isActive() == false)
return; return;

View File

@ -30,6 +30,9 @@ public slots:
void EventStopRecording(); void EventStopRecording();
private: private:
bool streamingAlreadyActive = false;
bool recordingAlreadyActive = false;
QTimer *streamingTimer; QTimer *streamingTimer;
QTimer *recordingTimer; QTimer *recordingTimer;
QTimer *streamingTimerDisplay; QTimer *streamingTimerDisplay;