浏览代码

UI: Add frontend API funcs for enabling/disable preview

Closes jp9000/obs-studio#1106
Matt Morrissette 7 年之前
父节点
当前提交
5e741b8a5b

+ 11 - 0
UI/api-interface.cpp

@@ -405,6 +405,17 @@ struct OBSStudioAPI : obs_frontend_callbacks {
 		main->SetPreviewProgramMode(enable);
 	}
 
+	bool obs_frontend_preview_enabled(void) override
+	{
+		return main->previewEnabled;
+	}
+
+	void obs_frontend_set_preview_enabled(bool enable) override
+	{
+		if (main->previewEnabled != enable)
+			main->EnablePreviewDisplay(enable);
+	}
+
 	obs_source_t *obs_frontend_get_current_preview_scene(void) override
 	{
 		OBSSource source = nullptr;

+ 13 - 0
UI/obs-frontend-api/obs-frontend-api.cpp

@@ -369,6 +369,19 @@ void obs_frontend_set_preview_program_mode(bool enable)
 		c->obs_frontend_set_preview_program_mode(enable);
 }
 
+void obs_frontend_set_preview_enabled(bool enable)
+{
+	if (callbacks_valid())
+		c->obs_frontend_set_preview_enabled(enable);
+}
+
+bool obs_frontend_preview_enabled(void)
+{
+	return !!callbacks_valid()
+		? c->obs_frontend_preview_enabled()
+		: false;
+}
+
 obs_source_t *obs_frontend_get_current_preview_scene(void)
 {
 	return !!callbacks_valid()

+ 3 - 0
UI/obs-frontend-api/obs-frontend-api.h

@@ -165,6 +165,9 @@ EXPORT void obs_frontend_save_streaming_service(void);
 EXPORT bool obs_frontend_preview_program_mode_active(void);
 EXPORT void obs_frontend_set_preview_program_mode(bool enable);
 
+EXPORT void obs_frontend_set_preview_enabled(bool enable);
+EXPORT bool obs_frontend_preview_enabled(void);
+
 EXPORT obs_source_t *obs_frontend_get_current_preview_scene(void);
 EXPORT void obs_frontend_set_current_preview_scene(obs_source_t *scene);
 

+ 2 - 0
UI/obs-frontend-api/obs-frontend-internal.hpp

@@ -83,6 +83,8 @@ struct obs_frontend_callbacks {
 
 	virtual bool obs_frontend_preview_program_mode_active(void)=0;
 	virtual void obs_frontend_set_preview_program_mode(bool enable)=0;
+	virtual bool obs_frontend_preview_enabled(void)=0;
+	virtual void obs_frontend_set_preview_enabled(bool enable)=0;
 
 	virtual obs_source_t *obs_frontend_get_current_preview_scene(void)=0;
 	virtual void obs_frontend_set_current_preview_scene(obs_source_t *scene)=0;