WSRequestHandler(StudioMode): fixes

This commit is contained in:
Stéphane Lepin 2019-11-15 20:27:27 +01:00
parent f6693d5587
commit 93a456ca82

View File

@ -12,13 +12,13 @@
* @category studio mode * @category studio mode
* @since 4.1.0 * @since 4.1.0
*/ */
HandlerResponse WSRequestHandler::HandleGetStudioModeStatus(WSRequestHandler* req) { RpcResponse WSRequestHandler::GetStudioModeStatus(const RpcRequest& request) {
bool previewActive = obs_frontend_preview_program_mode_active(); bool previewActive = obs_frontend_preview_program_mode_active();
OBSDataAutoRelease response = obs_data_create(); OBSDataAutoRelease response = obs_data_create();
obs_data_set_bool(response, "studio-mode", previewActive); obs_data_set_bool(response, "studio-mode", previewActive);
return req->SendOKResponse(response); return request.success(response);
} }
/** /**
@ -33,9 +33,9 @@ HandlerResponse WSRequestHandler::HandleGetStudioModeStatus(WSRequestHandler* re
* @category studio mode * @category studio mode
* @since 4.1.0 * @since 4.1.0
*/ */
HandlerResponse WSRequestHandler::HandleGetPreviewScene(WSRequestHandler* req) { RpcResponse WSRequestHandler::GetPreviewScene(const RpcRequest& request) {
if (!obs_frontend_preview_program_mode_active()) { if (!obs_frontend_preview_program_mode_active()) {
return req->SendErrorResponse("studio mode not enabled"); return request.failed("studio mode not enabled");
} }
OBSSourceAutoRelease scene = obs_frontend_get_current_preview_scene(); OBSSourceAutoRelease scene = obs_frontend_get_current_preview_scene();
@ -45,7 +45,7 @@ HandlerResponse WSRequestHandler::HandleGetPreviewScene(WSRequestHandler* req) {
obs_data_set_string(data, "name", obs_source_get_name(scene)); obs_data_set_string(data, "name", obs_source_get_name(scene));
obs_data_set_array(data, "sources", sceneItems); obs_data_set_array(data, "sources", sceneItems);
return req->SendOKResponse(data); return request.success(data);
} }
/** /**
@ -59,23 +59,23 @@ HandlerResponse WSRequestHandler::HandleGetPreviewScene(WSRequestHandler* req) {
* @category studio mode * @category studio mode
* @since 4.1.0 * @since 4.1.0
*/ */
HandlerResponse WSRequestHandler::HandleSetPreviewScene(WSRequestHandler* req) { RpcResponse WSRequestHandler::SetPreviewScene(const RpcRequest& request) {
if (!obs_frontend_preview_program_mode_active()) { if (!obs_frontend_preview_program_mode_active()) {
return req->SendErrorResponse("studio mode not enabled"); return request.failed("studio mode not enabled");
} }
if (!req->hasField("scene-name")) { if (!request.hasField("scene-name")) {
return req->SendErrorResponse("missing request parameters"); return request.failed("missing request parameters");
} }
const char* scene_name = obs_data_get_string(req->data, "scene-name"); const char* scene_name = obs_data_get_string(request.parameters(), "scene-name");
OBSScene scene = Utils::GetSceneFromNameOrCurrent(scene_name); OBSScene scene = Utils::GetSceneFromNameOrCurrent(scene_name);
if (!scene) { if (!scene) {
return req->SendErrorResponse("specified scene doesn't exist"); return request.failed("specified scene doesn't exist");
} }
obs_frontend_set_current_preview_scene(obs_scene_get_source(scene)); obs_frontend_set_current_preview_scene(obs_scene_get_source(scene));
return req->SendOKResponse(); return request.success();
} }
/** /**
@ -91,25 +91,25 @@ HandlerResponse WSRequestHandler::HandleSetPreviewScene(WSRequestHandler* req) {
* @category studio mode * @category studio mode
* @since 4.1.0 * @since 4.1.0
*/ */
HandlerResponse WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* req) { RpcResponse WSRequestHandler::TransitionToProgram(const RpcRequest& request) {
if (!obs_frontend_preview_program_mode_active()) { if (!obs_frontend_preview_program_mode_active()) {
return req->SendErrorResponse("studio mode not enabled"); return request.failed("studio mode not enabled");
} }
if (req->hasField("with-transition")) { if (request.hasField("with-transition")) {
OBSDataAutoRelease transitionInfo = OBSDataAutoRelease transitionInfo =
obs_data_get_obj(req->data, "with-transition"); obs_data_get_obj(request.parameters(), "with-transition");
if (obs_data_has_user_value(transitionInfo, "name")) { if (obs_data_has_user_value(transitionInfo, "name")) {
QString transitionName = QString transitionName =
obs_data_get_string(transitionInfo, "name"); obs_data_get_string(transitionInfo, "name");
if (transitionName.isEmpty()) { if (transitionName.isEmpty()) {
return req->SendErrorResponse("invalid request parameters"); return request.failed("invalid request parameters");
} }
bool success = Utils::SetTransitionByName(transitionName); bool success = Utils::SetTransitionByName(transitionName);
if (!success) { if (!success) {
return req->SendErrorResponse("specified transition doesn't exist"); return request.failed("specified transition doesn't exist");
} }
} }
@ -121,7 +121,7 @@ HandlerResponse WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* re
} }
obs_frontend_preview_program_trigger_transition(); obs_frontend_preview_program_trigger_transition();
return req->SendOKResponse(); return request.success();
} }
/** /**
@ -132,9 +132,9 @@ HandlerResponse WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* re
* @category studio mode * @category studio mode
* @since 4.1.0 * @since 4.1.0
*/ */
HandlerResponse WSRequestHandler::HandleEnableStudioMode(WSRequestHandler* req) { RpcResponse WSRequestHandler::EnableStudioMode(const RpcRequest& request) {
obs_frontend_set_preview_program_mode(true); obs_frontend_set_preview_program_mode(true);
return req->SendOKResponse(); return request.success();
} }
/** /**
@ -145,9 +145,9 @@ HandlerResponse WSRequestHandler::HandleEnableStudioMode(WSRequestHandler* req)
* @category studio mode * @category studio mode
* @since 4.1.0 * @since 4.1.0
*/ */
HandlerResponse WSRequestHandler::HandleDisableStudioMode(WSRequestHandler* req) { RpcResponse WSRequestHandler::DisableStudioMode(const RpcRequest& request) {
obs_frontend_set_preview_program_mode(false); obs_frontend_set_preview_program_mode(false);
return req->SendOKResponse(); return request.success();
} }
/** /**
@ -158,8 +158,8 @@ HandlerResponse WSRequestHandler::HandleDisableStudioMode(WSRequestHandler* req)
* @category studio mode * @category studio mode
* @since 4.1.0 * @since 4.1.0
*/ */
HandlerResponse WSRequestHandler::HandleToggleStudioMode(WSRequestHandler* req) { RpcResponse WSRequestHandler::ToggleStudioMode(const RpcRequest& request) {
bool previewProgramMode = obs_frontend_preview_program_mode_active(); bool previewProgramMode = obs_frontend_preview_program_mode_active();
obs_frontend_set_preview_program_mode(!previewProgramMode); obs_frontend_set_preview_program_mode(!previewProgramMode);
return req->SendOKResponse(); return request.success();
} }