diff --git a/src/WSServer.cpp b/src/WSServer.cpp
index cb211289..69c25ec7 100644
--- a/src/WSServer.cpp
+++ b/src/WSServer.cpp
@@ -177,8 +177,8 @@ void WSServer::onMessage(connection_hdl hdl, server::message_ptr message)
}
WSRequestHandler requestHandler(connProperties);
- OBSRemoteProtocol protocol(requestHandler);
- std::string response = protocol.processMessage(payload);
+ OBSRemoteProtocol protocol;
+ std::string response = protocol.processMessage(requestHandler, payload);
if (GetConfig()->DebugEnabled) {
blog(LOG_INFO, "Response << '%s'", response.c_str());
diff --git a/src/protocol/OBSRemoteProtocol.cpp b/src/protocol/OBSRemoteProtocol.cpp
index 4b3f7e7b..c520e8ba 100644
--- a/src/protocol/OBSRemoteProtocol.cpp
+++ b/src/protocol/OBSRemoteProtocol.cpp
@@ -19,35 +19,7 @@ with this program. If not, see
#include "OBSRemoteProtocol.h"
#include "../WSRequestHandler.h"
-std::string buildResponse(QString messageId, QString status, obs_data_t* fields = nullptr) {
- OBSDataAutoRelease response = obs_data_create();
- obs_data_set_string(response, "message-id", messageId.toUtf8().constData());
- obs_data_set_string(response, "status", status.toUtf8().constData());
-
- if (fields) {
- obs_data_apply(response, fields);
- }
-
- std::string responseString = obs_data_get_json(response);
- return responseString;
-}
-
-std::string successResponse(QString messageId, obs_data_t* fields = nullptr) {
- return buildResponse(messageId, "ok", fields);
-}
-
-std::string errorResponse(QString messageId, QString errorMessage, obs_data_t* additionalFields = nullptr) {
- OBSDataAutoRelease fields = obs_data_create();
- obs_data_set_string(fields, "error", errorMessage.toUtf8().constData());
- return buildResponse(messageId, "error", fields);
-}
-
-OBSRemoteProtocol::OBSRemoteProtocol(WSRequestHandler& requestHandler) :
- _requestHandler(requestHandler)
-{
-}
-
-std::string OBSRemoteProtocol::processMessage(std::string message)
+std::string OBSRemoteProtocol::processMessage(WSRequestHandler& requestHandler, std::string message)
{
std::string msgContainer(message);
const char* msg = msgContainer.c_str();
@@ -71,7 +43,7 @@ std::string OBSRemoteProtocol::processMessage(std::string message)
obs_data_unset_user_value(params, "message-id");
RpcRequest request(messageId, methodName, params);
- RpcResponse response = _requestHandler.processRequest(request);
+ RpcResponse response = requestHandler.processRequest(request);
OBSData additionalFields = response.additionalFields();
switch (response.status()) {
@@ -83,3 +55,26 @@ std::string OBSRemoteProtocol::processMessage(std::string message)
return std::string();
}
+
+std::string OBSRemoteProtocol::buildResponse(QString messageId, QString status, obs_data_t* fields) {
+ OBSDataAutoRelease response = obs_data_create();
+ obs_data_set_string(response, "message-id", messageId.toUtf8().constData());
+ obs_data_set_string(response, "status", status.toUtf8().constData());
+
+ if (fields) {
+ obs_data_apply(response, fields);
+ }
+
+ std::string responseString = obs_data_get_json(response);
+ return responseString;
+}
+
+std::string OBSRemoteProtocol::successResponse(QString messageId, obs_data_t* fields) {
+ return buildResponse(messageId, "ok", fields);
+}
+
+std::string OBSRemoteProtocol::errorResponse(QString messageId, QString errorMessage, obs_data_t* additionalFields) {
+ OBSDataAutoRelease fields = obs_data_create();
+ obs_data_set_string(fields, "error", errorMessage.toUtf8().constData());
+ return buildResponse(messageId, "error", fields);
+}
diff --git a/src/protocol/OBSRemoteProtocol.h b/src/protocol/OBSRemoteProtocol.h
index dd56fa98..6df77fac 100644
--- a/src/protocol/OBSRemoteProtocol.h
+++ b/src/protocol/OBSRemoteProtocol.h
@@ -20,15 +20,17 @@ with this program. If not, see
#include
#include
+#include
class WSRequestHandler;
class OBSRemoteProtocol
{
public:
- explicit OBSRemoteProtocol(WSRequestHandler& requestHandler);
- std::string processMessage(std::string message);
+ std::string processMessage(WSRequestHandler& requestHandler, std::string message);
private:
- WSRequestHandler& _requestHandler;
+ std::string buildResponse(QString messageId, QString status, obs_data_t* fields = nullptr);
+ std::string successResponse(QString messageId, obs_data_t* fields = nullptr);
+ std::string errorResponse(QString messageId, QString errorMessage, obs_data_t* additionalFields = nullptr);
};