Browse Source

UI: Add command line opts to start streaming/recording

These command line options allow the user to start streaming/recording
on program startup.
jp9000 9 years ago
parent
commit
3bd4fe5409
3 changed files with 22 additions and 0 deletions
  1. 8 0
      obs/obs-app.cpp
  2. 2 0
      obs/obs-app.hpp
  3. 12 0
      obs/window-basic-main.cpp

+ 8 - 0
obs/obs-app.cpp

@@ -57,6 +57,8 @@ static string currentLogFile;
 static string lastLogFile;
 
 static bool portable_mode = false;
+bool opt_start_streaming = false;
+bool opt_start_recording = false;
 string opt_starting_scene;
 
 QObject *CreateShortcutFilter()
@@ -1555,6 +1557,12 @@ int main(int argc, char *argv[])
 		if (arg_is(argv[i], "--portable", "-p")) {
 			portable_mode = true;
 
+		} else if (arg_is(argv[i], "--startstreaming", nullptr)) {
+			opt_start_streaming = true;
+
+		} else if (arg_is(argv[i], "--startrecording", nullptr)) {
+			opt_start_recording = true;
+
 		} else if (arg_is(argv[i], "--scene", nullptr)) {
 			if (++i < argc) opt_starting_scene = argv[i];
 		}

+ 2 - 0
obs/obs-app.hpp

@@ -154,4 +154,6 @@ static inline int GetProfilePath(char *path, size_t size, const char *file)
 	return window->GetProfilePath(path, size, file);
 }
 
+extern bool opt_start_streaming;
+extern bool opt_start_recording;
 extern std::string opt_starting_scene;

+ 12 - 0
obs/window-basic-main.cpp

@@ -598,6 +598,18 @@ retryScene:
 	if (!opt_starting_scene.empty())
 		opt_starting_scene.clear();
 
+	if (opt_start_streaming) {
+		QMetaObject::invokeMethod(this, "StartStreaming",
+				Qt::QueuedConnection);
+		opt_start_streaming = false;
+	}
+
+	if (opt_start_recording) {
+		QMetaObject::invokeMethod(this, "StartRecording",
+				Qt::QueuedConnection);
+		opt_start_recording = false;
+	}
+
 	disableSaving--;
 }