From a3bc9f768ab0e1d071b1daa5b5cba40c900986dd Mon Sep 17 00:00:00 2001
From: tt2468 <tt2468@gmail.com>
Date: Fri, 8 May 2020 15:30:40 -0700
Subject: [PATCH] Add error system to EnableStudioMode and DisableStudioMode

As talked about in #144 this adds a check to `EnableStudioMode` and `DisableStudioMode` in order to be consistent with `StartRecording`/`StopRecording`
---
 src/WSRequestHandler_StudioMode.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/WSRequestHandler_StudioMode.cpp b/src/WSRequestHandler_StudioMode.cpp
index fb958f3b..badae29d 100644
--- a/src/WSRequestHandler_StudioMode.cpp
+++ b/src/WSRequestHandler_StudioMode.cpp
@@ -133,6 +133,9 @@ RpcResponse WSRequestHandler::TransitionToProgram(const RpcRequest& request) {
  * @since 4.1.0
  */
 RpcResponse WSRequestHandler::EnableStudioMode(const RpcRequest& request) {
+	if (obs_frontend_preview_program_mode_active()) {
+		return request.failed("studio mode already active");
+	}
 	obs_queue_task(OBS_TASK_UI, [](void* param) {
 		obs_frontend_set_preview_program_mode(true);
 
@@ -150,6 +153,9 @@ RpcResponse WSRequestHandler::EnableStudioMode(const RpcRequest& request) {
  * @since 4.1.0
  */
 RpcResponse WSRequestHandler::DisableStudioMode(const RpcRequest& request) {
+	if (!obs_frontend_preview_program_mode_active()) {
+		return request.failed("studio mode not active");
+	}
 	obs_queue_task(OBS_TASK_UI, [](void* param) {
 		obs_frontend_set_preview_program_mode(false);