2021-04-27 16:29:51 +00:00
|
|
|
#pragma once
|
|
|
|
|
2021-05-03 20:31:22 +00:00
|
|
|
#include <map>
|
2021-06-06 12:06:17 +00:00
|
|
|
#include <obs.hpp>
|
|
|
|
#include <obs-frontend-api.h>
|
2021-05-03 02:48:44 +00:00
|
|
|
|
2021-06-13 14:14:40 +00:00
|
|
|
#include "../obs-websocket.h"
|
2021-04-27 16:29:51 +00:00
|
|
|
#include "rpc/Request.h"
|
2021-05-03 20:31:22 +00:00
|
|
|
#include "rpc/RequestResult.h"
|
|
|
|
#include "../utils/Utils.h"
|
2021-05-03 02:48:44 +00:00
|
|
|
|
2021-05-03 20:31:22 +00:00
|
|
|
class RequestHandler;
|
|
|
|
typedef RequestResult(RequestHandler::*RequestMethodHandler)(const Request&);
|
2021-05-03 02:48:44 +00:00
|
|
|
|
|
|
|
class RequestHandler {
|
|
|
|
public:
|
2021-05-03 20:31:22 +00:00
|
|
|
RequestResult ProcessRequest(const Request& request);
|
2021-05-14 00:46:05 +00:00
|
|
|
std::vector<std::string> GetRequestList();
|
2021-05-03 02:48:44 +00:00
|
|
|
|
|
|
|
private:
|
2021-06-07 08:14:32 +00:00
|
|
|
// General
|
2021-05-03 20:31:22 +00:00
|
|
|
RequestResult GetVersion(const Request&);
|
2021-05-03 23:55:30 +00:00
|
|
|
RequestResult BroadcastCustomEvent(const Request&);
|
2021-06-06 12:06:17 +00:00
|
|
|
RequestResult GetHotkeyList(const Request&);
|
|
|
|
RequestResult TriggerHotkeyByName(const Request&);
|
|
|
|
RequestResult TriggerHotkeyByKeySequence(const Request&);
|
|
|
|
RequestResult GetStudioModeEnabled(const Request&);
|
|
|
|
RequestResult SetStudioModeEnabled(const Request&);
|
|
|
|
RequestResult Sleep(const Request&);
|
2021-05-03 20:31:22 +00:00
|
|
|
|
2021-06-07 08:14:32 +00:00
|
|
|
// Config
|
|
|
|
RequestResult GetSceneCollectionList(const Request&);
|
|
|
|
RequestResult SetCurrentSceneCollection(const Request&);
|
|
|
|
RequestResult GetProfileList(const Request&);
|
|
|
|
RequestResult SetCurrentProfile(const Request&);
|
|
|
|
RequestResult GetProfileParameter(const Request&);
|
|
|
|
RequestResult SetProfileParameter(const Request&);
|
|
|
|
|
2021-06-13 14:14:40 +00:00
|
|
|
// Sources
|
|
|
|
RequestResult GetSourceActive(const Request&);
|
2021-06-15 05:33:01 +00:00
|
|
|
RequestResult GetSourceScreenshot(const Request&);
|
|
|
|
RequestResult SaveSourceScreenshot(const Request&);
|
2021-06-13 14:14:40 +00:00
|
|
|
|
2021-06-15 05:52:23 +00:00
|
|
|
// Scenes
|
|
|
|
RequestResult GetSceneList(const Request&);
|
2021-06-15 06:42:18 +00:00
|
|
|
RequestResult GetCurrentProgramScene(const Request&);
|
|
|
|
RequestResult SetCurrentProgramScene(const Request&);
|
|
|
|
RequestResult GetCurrentPreviewScene(const Request&);
|
|
|
|
RequestResult SetCurrentPreviewScene(const Request&);
|
2021-06-15 07:21:57 +00:00
|
|
|
RequestResult SetSceneName(const Request&);
|
|
|
|
RequestResult CreateScene(const Request&);
|
2021-06-16 06:57:48 +00:00
|
|
|
RequestResult RemoveScene(const Request&);
|
2021-06-15 05:52:23 +00:00
|
|
|
|
2021-06-16 07:49:07 +00:00
|
|
|
// Inputs
|
|
|
|
RequestResult GetInputList(const Request&);
|
2021-06-16 08:39:04 +00:00
|
|
|
RequestResult GetInputKindList(const Request&);
|
2021-06-16 07:49:07 +00:00
|
|
|
|
2021-05-03 20:31:22 +00:00
|
|
|
static const std::map<std::string, RequestMethodHandler> _handlerMap;
|
|
|
|
};
|