瀏覽代碼

frontend-tools: Add options to start output timers every time

Adds options to start output timers every time streaming or recording
has started.

Closes jp9000/obs-studio#668
cg2121 9 年之前
父節點
當前提交
c6c58e55b3

+ 2 - 0
UI/frontend-plugins/frontend-tools/data/locale/en-US.ini

@@ -16,3 +16,5 @@ OutputTimer.Stream="Stop streaming after:"
 OutputTimer.Record="Stop recording after:"
 OutputTimer.Stream.StoppingIn="Streaming stopping in:"
 OutputTimer.Record.StoppingIn="Recording stopping in:"
+OutputTimer.Stream.EnableEverytime="Enable streaming timer every time"
+OutputTimer.Record.EnableEverytime="Enable recording timer every time"

+ 27 - 13
UI/frontend-plugins/frontend-tools/forms/output-timer.ui

@@ -7,7 +7,7 @@
         <x>0</x>
         <y>0</y>
         <width>600</width>
-        <height>150</height>
+        <height>200</height>
       </rect>
     </property>
     <property name="windowTitle">
@@ -85,28 +85,28 @@
           </property>
         </widget>
       </item>
-      <item row="1" column="1">
+      <item row="2" column="1">
         <widget class="QLabel" name="streamStoppingIn">
           <property name="text">
             <string>OutputTimer.Stream.StoppingIn</string>
           </property>
         </widget>
       </item>
-      <item row="1" column="2">
+      <item row="2" column="2">
         <widget class="QLabel" name="streamTime">
           <property name="text">
             <string>00:00:00</string>
           </property>
         </widget>
       </item>
-      <item row="2" column="1">
+      <item row="3" column="1">
         <widget class="QLabel" name="recordingLabel">
           <property name="text">
             <string>OutputTimer.Record</string>
           </property>
         </widget>
       </item>
-      <item row="2" column="2">
+      <item row="3" column="2">
         <widget class="QSpinBox" name="recordingTimerHours">
           <property name="minimum">
             <number>0</number>
@@ -119,14 +119,14 @@
           </property>
         </widget>
       </item>
-      <item row="2" column="3">
+      <item row="3" column="3">
         <widget class="QLabel" name="hoursLabel_2">
           <property name="text">
             <string>Hours</string>
           </property>
         </widget>
       </item>
-      <item row="2" column="4">
+      <item row="3" column="4">
         <widget class="QSpinBox" name="recordingTimerMinutes">
           <property name="minimum">
             <number>0</number>
@@ -139,14 +139,14 @@
           </property>
         </widget>
       </item>
-      <item row="2" column="5">
+      <item row="3" column="5">
         <widget class="QLabel" name="minutesLabel_2">
           <property name="text">
             <string>Minutes</string>
           </property>
         </widget>
       </item>
-      <item row="2" column="6">
+      <item row="3" column="6">
         <widget class="QSpinBox" name="recordingTimerSeconds">
           <property name="minimum">
             <number>0</number>
@@ -159,34 +159,48 @@
           </property>
         </widget>
       </item>
-      <item row="2" column="7">
+      <item row="3" column="7">
         <widget class="QLabel" name="secondsLabel_2">
           <property name="text">
             <string>Seconds</string>
           </property>
         </widget>
       </item>
-      <item row="2" column="8">
+      <item row="3" column="8">
         <widget class="QPushButton" name="outputTimerRecord">
           <property name="text">
             <string>Start</string>
           </property>
         </widget>
       </item>
-      <item row="3" column="1">
+      <item row="5" column="1">
         <widget class="QLabel" name="recordStoppingIn">
           <property name="text">
             <string>OutputTimer.Record.StoppingIn</string>
           </property>
         </widget>
       </item>
-      <item row="3" column="2">
+      <item row="5" column="2">
         <widget class="QLabel" name="recordTime">
           <property name="text">
             <string>00:00:00</string>
           </property>
         </widget>
       </item>
+      <item row="1" column="1" colspan="3">
+        <widget class="QCheckBox" name="autoStartStreamTimer">
+          <property name="text">
+            <string>OutputTimer.Stream.EnableEverytime</string>
+          </property>
+        </widget>
+      </item>
+      <item row="4" column="1" colspan="3">
+        <widget class="QCheckBox" name="autoStartRecordTimer">
+          <property name="text">
+            <string>OutputTimer.Record.EnableEverytime</string>
+          </property>
+        </widget>
+      </item>
     </layout>
   </widget>
   <resources />

+ 12 - 2
UI/frontend-plugins/frontend-tools/output-timer.cpp

@@ -61,7 +61,7 @@ void OutputTimer::RecordingTimerButton()
 
 void OutputTimer::StreamTimerStart()
 {
-	if (!isVisible()) {
+	if (!isVisible() && ui->autoStartStreamTimer->isChecked() == false) {
 		streamingAlreadyActive = true;
 		return;
 	}
@@ -95,7 +95,7 @@ void OutputTimer::StreamTimerStart()
 
 void OutputTimer::RecordTimerStart()
 {
-	if (!isVisible()) {
+	if (!isVisible() && ui->autoStartRecordTimer->isChecked() == false) {
 		recordingAlreadyActive = true;
 		return;
 	}
@@ -229,6 +229,11 @@ static void SaveOutputTimer(obs_data_t *save_data, bool saving, void *)
 		obs_data_set_int(obj, "recordTimerSeconds",
 				ot->ui->recordingTimerSeconds->value());
 
+		obs_data_set_bool(obj, "autoStartStreamTimer",
+				ot->ui->autoStartStreamTimer->isChecked());
+		obs_data_set_bool(obj, "autoStartRecordTimer",
+				ot->ui->autoStartRecordTimer->isChecked());
+
 		obs_data_set_obj(save_data, "output-timer", obj);
 
 		obs_data_release(obj);
@@ -253,6 +258,11 @@ static void SaveOutputTimer(obs_data_t *save_data, bool saving, void *)
 		ot->ui->recordingTimerSeconds->setValue(
 				obs_data_get_int(obj, "recordTimerSeconds"));
 
+		ot->ui->autoStartStreamTimer->setChecked(
+				obs_data_get_bool(obj, "autoStartStreamTimer"));
+		ot->ui->autoStartRecordTimer->setChecked(
+				obs_data_get_bool(obj, "autoStartRecordTimer"));
+
 		obs_data_release(obj);
 	}
 }