From 0485cf51ffc6bdda7a37b251b77fb9c0b6b11b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Lepin?= Date: Fri, 15 Nov 2019 20:17:11 +0100 Subject: [PATCH] WSRequestHandler(Outputs): fixes --- src/WSRequestHandler_Outputs.cpp | 43 +++++++++++++++++--------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/WSRequestHandler_Outputs.cpp b/src/WSRequestHandler_Outputs.cpp index 45469411..dad0bf19 100644 --- a/src/WSRequestHandler_Outputs.cpp +++ b/src/WSRequestHandler_Outputs.cpp @@ -1,3 +1,5 @@ +#include + #include "WSRequestHandler.h" /** @@ -57,16 +59,16 @@ obs_data_t* getOutputInfo(obs_output_t* output) return data; } -HandlerResponse findOutputOrFail(WSRequestHandler* req, std::function callback) +RpcResponse findOutputOrFail(const RpcRequest& request, std::function callback) { - if (!req->hasField("outputName")) { - return req->SendErrorResponse("missing request parameters"); + if (!request.hasField("outputName")) { + return request.failed("missing request parameters"); } - const char* outputName = obs_data_get_string(req->parameters(), "outputName"); + const char* outputName = obs_data_get_string(request.parameters(), "outputName"); OBSOutputAutoRelease output = obs_get_output_by_name(outputName); if (!output) { - return req->SendErrorResponse("specified output doesn't exist"); + return request.failed("specified output doesn't exist"); } return callback(output); @@ -82,7 +84,7 @@ HandlerResponse findOutputOrFail(WSRequestHandler* req, std::functionSendOKResponse(fields); + + return request.success(fields); } /** @@ -112,14 +115,14 @@ HandlerResponse WSRequestHandler::HandleListOutputs(WSRequestHandler* req) * @category outputs * @since 4.7.0 */ -HandlerResponse WSRequestHandler::HandleGetOutputInfo(WSRequestHandler* req) +RpcResponse WSRequestHandler::GetOutputInfo(const RpcRequest& request) { - return findOutputOrFail(req, [req](obs_output_t* output) { + return findOutputOrFail(request, [request](obs_output_t* output) { OBSDataAutoRelease outputInfo = getOutputInfo(output); OBSDataAutoRelease fields = obs_data_create(); obs_data_set_obj(fields, "outputInfo", outputInfo); - return req->SendOKResponse(fields); + return request.success(fields); }); } @@ -133,21 +136,21 @@ HandlerResponse WSRequestHandler::HandleGetOutputInfo(WSRequestHandler* req) * @category outputs * @since 4.7.0 */ -HandlerResponse WSRequestHandler::HandleStartOutput(WSRequestHandler* req) +RpcResponse WSRequestHandler::StartOutput(const RpcRequest& request) { - return findOutputOrFail(req, [req](obs_output_t* output) { + return findOutputOrFail(request, [request](obs_output_t* output) { if (obs_output_active(output)) { - return req->SendErrorResponse("output already active"); + return request.failed("output already active"); } bool success = obs_output_start(output); if (!success) { QString lastError = obs_output_get_last_error(output); QString errorMessage = QString("output start failed: %1").arg(lastError); - return req->SendErrorResponse(errorMessage); + return request.failed(errorMessage); } - return req->SendOKResponse(); + return request.success(); }); } @@ -162,20 +165,20 @@ HandlerResponse WSRequestHandler::HandleStartOutput(WSRequestHandler* req) * @category outputs * @since 4.7.0 */ -HandlerResponse WSRequestHandler::HandleStopOutput(WSRequestHandler* req) +RpcResponse WSRequestHandler::StopOutput(const RpcRequest& request) { - return findOutputOrFail(req, [req](obs_output_t* output) { + return findOutputOrFail(request, [request](obs_output_t* output) { if (!obs_output_active(output)) { - return req->SendErrorResponse("output not active"); + return request.failed("output not active"); } - bool forceStop = obs_data_get_bool(req->data, "force"); + bool forceStop = obs_data_get_bool(request.parameters(), "force"); if (forceStop) { obs_output_force_stop(output); } else { obs_output_stop(output); } - return req->SendOKResponse(); + return request.success(); }); }