WSRequestHandler: request handler as object methods

This commit is contained in:
Stéphane Lepin
2019-11-15 19:38:15 +01:00
parent e6dbc9bfdf
commit 31559051f6
2 changed files with 190 additions and 188 deletions

View File

@ -24,124 +24,124 @@
#include "WSRequestHandler.h"
QHash<QString, RpcResponse(*)(const RpcRequest&)> WSRequestHandler::messageMap {
{ "GetVersion", WSRequestHandler::HandleGetVersion },
{ "GetAuthRequired", WSRequestHandler::HandleGetAuthRequired },
{ "Authenticate", WSRequestHandler::HandleAuthenticate },
const QHash<QString, RpcMethodHandler> WSRequestHandler::messageMap {
{ "GetVersion", &WSRequestHandler::GetVersion },
{ "GetAuthRequired", &WSRequestHandler::GetAuthRequired },
{ "Authenticate", &WSRequestHandler::Authenticate },
{ "GetStats", WSRequestHandler::HandleGetStats },
{ "SetHeartbeat", WSRequestHandler::HandleSetHeartbeat },
{ "GetVideoInfo", WSRequestHandler::HandleGetVideoInfo },
{ "GetStats", &WSRequestHandler::GetStats },
{ "SetHeartbeat", &WSRequestHandler::SetHeartbeat },
{ "GetVideoInfo", &WSRequestHandler::GetVideoInfo },
{ "SetFilenameFormatting", WSRequestHandler::HandleSetFilenameFormatting },
{ "GetFilenameFormatting", WSRequestHandler::HandleGetFilenameFormatting },
{ "SetFilenameFormatting", &WSRequestHandler::SetFilenameFormatting },
{ "GetFilenameFormatting", &WSRequestHandler::GetFilenameFormatting },
{ "BroadcastCustomMessage", WSRequestHandler::HandleBroadcastCustomMessage },
{ "BroadcastCustomMessage", &WSRequestHandler::BroadcastCustomMessage },
{ "SetCurrentScene", WSRequestHandler::HandleSetCurrentScene },
{ "GetCurrentScene", WSRequestHandler::HandleGetCurrentScene },
{ "GetSceneList", WSRequestHandler::HandleGetSceneList },
{ "SetCurrentScene", &WSRequestHandler::SetCurrentScene },
{ "GetCurrentScene", &WSRequestHandler::GetCurrentScene },
{ "GetSceneList", &WSRequestHandler::GetSceneList },
{ "SetSourceRender", WSRequestHandler::HandleSetSceneItemRender }, // Retrocompat
{ "SetSceneItemRender", WSRequestHandler::HandleSetSceneItemRender },
{ "SetSceneItemPosition", WSRequestHandler::HandleSetSceneItemPosition },
{ "SetSceneItemTransform", WSRequestHandler::HandleSetSceneItemTransform },
{ "SetSceneItemCrop", WSRequestHandler::HandleSetSceneItemCrop },
{ "GetSceneItemProperties", WSRequestHandler::HandleGetSceneItemProperties },
{ "SetSceneItemProperties", WSRequestHandler::HandleSetSceneItemProperties },
{ "ResetSceneItem", WSRequestHandler::HandleResetSceneItem },
{ "DeleteSceneItem", WSRequestHandler::HandleDeleteSceneItem },
{ "DuplicateSceneItem", WSRequestHandler::HandleDuplicateSceneItem },
{ "ReorderSceneItems", WSRequestHandler::HandleReorderSceneItems },
{ "SetSourceRender", &WSRequestHandler::SetSceneItemRender }, // Retrocompat
{ "SetSceneItemRender", &WSRequestHandler::SetSceneItemRender },
{ "SetSceneItemPosition", &WSRequestHandler::SetSceneItemPosition },
{ "SetSceneItemTransform", &WSRequestHandler::SetSceneItemTransform },
{ "SetSceneItemCrop", &WSRequestHandler::SetSceneItemCrop },
{ "GetSceneItemProperties", &WSRequestHandler::GetSceneItemProperties },
{ "SetSceneItemProperties", &WSRequestHandler::SetSceneItemProperties },
{ "ResetSceneItem", &WSRequestHandler::ResetSceneItem },
{ "DeleteSceneItem", &WSRequestHandler::DeleteSceneItem },
{ "DuplicateSceneItem", &WSRequestHandler::DuplicateSceneItem },
{ "ReorderSceneItems", &WSRequestHandler::ReorderSceneItems },
{ "GetStreamingStatus", WSRequestHandler::HandleGetStreamingStatus },
{ "StartStopStreaming", WSRequestHandler::HandleStartStopStreaming },
{ "StartStopRecording", WSRequestHandler::HandleStartStopRecording },
{ "GetStreamingStatus", &WSRequestHandler::GetStreamingStatus },
{ "StartStopStreaming", &WSRequestHandler::StartStopStreaming },
{ "StartStopRecording", &WSRequestHandler::StartStopRecording },
{ "StartStreaming", WSRequestHandler::HandleStartStreaming },
{ "StopStreaming", WSRequestHandler::HandleStopStreaming },
{ "StartStreaming", &WSRequestHandler::StartStreaming },
{ "StopStreaming", &WSRequestHandler::StopStreaming },
{ "StartRecording", WSRequestHandler::HandleStartRecording },
{ "StopRecording", WSRequestHandler::HandleStopRecording },
{ "PauseRecording", WSRequestHandler::HandlePauseRecording },
{ "ResumeRecording", WSRequestHandler::HandleResumeRecording },
{ "StartRecording", &WSRequestHandler::StartRecording },
{ "StopRecording", &WSRequestHandler::StopRecording },
{ "PauseRecording", &WSRequestHandler::PauseRecording },
{ "ResumeRecording", &WSRequestHandler::ResumeRecording },
{ "StartStopReplayBuffer", WSRequestHandler::HandleStartStopReplayBuffer },
{ "StartReplayBuffer", WSRequestHandler::HandleStartReplayBuffer },
{ "StopReplayBuffer", WSRequestHandler::HandleStopReplayBuffer },
{ "SaveReplayBuffer", WSRequestHandler::HandleSaveReplayBuffer },
{ "StartStopReplayBuffer", &WSRequestHandler::StartStopReplayBuffer },
{ "StartReplayBuffer", &WSRequestHandler::StartReplayBuffer },
{ "StopReplayBuffer", &WSRequestHandler::StopReplayBuffer },
{ "SaveReplayBuffer", &WSRequestHandler::SaveReplayBuffer },
{ "SetRecordingFolder", WSRequestHandler::HandleSetRecordingFolder },
{ "GetRecordingFolder", WSRequestHandler::HandleGetRecordingFolder },
{ "SetRecordingFolder", &WSRequestHandler::SetRecordingFolder },
{ "GetRecordingFolder", &WSRequestHandler::GetRecordingFolder },
{ "GetTransitionList", WSRequestHandler::HandleGetTransitionList },
{ "GetCurrentTransition", WSRequestHandler::HandleGetCurrentTransition },
{ "SetCurrentTransition", WSRequestHandler::HandleSetCurrentTransition },
{ "SetTransitionDuration", WSRequestHandler::HandleSetTransitionDuration },
{ "GetTransitionDuration", WSRequestHandler::HandleGetTransitionDuration },
{ "GetTransitionList", &WSRequestHandler::GetTransitionList },
{ "GetCurrentTransition", &WSRequestHandler::GetCurrentTransition },
{ "SetCurrentTransition", &WSRequestHandler::SetCurrentTransition },
{ "SetTransitionDuration", &WSRequestHandler::SetTransitionDuration },
{ "GetTransitionDuration", &WSRequestHandler::GetTransitionDuration },
{ "SetVolume", WSRequestHandler::HandleSetVolume },
{ "GetVolume", WSRequestHandler::HandleGetVolume },
{ "ToggleMute", WSRequestHandler::HandleToggleMute },
{ "SetMute", WSRequestHandler::HandleSetMute },
{ "GetMute", WSRequestHandler::HandleGetMute },
{ "SetSyncOffset", WSRequestHandler::HandleSetSyncOffset },
{ "GetSyncOffset", WSRequestHandler::HandleGetSyncOffset },
{ "GetSpecialSources", WSRequestHandler::HandleGetSpecialSources },
{ "GetSourcesList", WSRequestHandler::HandleGetSourcesList },
{ "GetSourceTypesList", WSRequestHandler::HandleGetSourceTypesList },
{ "GetSourceSettings", WSRequestHandler::HandleGetSourceSettings },
{ "SetSourceSettings", WSRequestHandler::HandleSetSourceSettings },
{ "TakeSourceScreenshot", WSRequestHandler::HandleTakeSourceScreenshot },
{ "SetVolume", &WSRequestHandler::SetVolume },
{ "GetVolume", &WSRequestHandler::GetVolume },
{ "ToggleMute", &WSRequestHandler::ToggleMute },
{ "SetMute", &WSRequestHandler::SetMute },
{ "GetMute", &WSRequestHandler::GetMute },
{ "SetSyncOffset", &WSRequestHandler::SetSyncOffset },
{ "GetSyncOffset", &WSRequestHandler::GetSyncOffset },
{ "GetSpecialSources", &WSRequestHandler::GetSpecialSources },
{ "GetSourcesList", &WSRequestHandler::GetSourcesList },
{ "GetSourceTypesList", &WSRequestHandler::GetSourceTypesList },
{ "GetSourceSettings", &WSRequestHandler::GetSourceSettings },
{ "SetSourceSettings", &WSRequestHandler::SetSourceSettings },
{ "TakeSourceScreenshot", &WSRequestHandler::TakeSourceScreenshot },
{ "GetSourceFilters", WSRequestHandler::HandleGetSourceFilters },
{ "GetSourceFilterInfo", WSRequestHandler::HandleGetSourceFilterInfo },
{ "AddFilterToSource", WSRequestHandler::HandleAddFilterToSource },
{ "RemoveFilterFromSource", WSRequestHandler::HandleRemoveFilterFromSource },
{ "ReorderSourceFilter", WSRequestHandler::HandleReorderSourceFilter },
{ "MoveSourceFilter", WSRequestHandler::HandleMoveSourceFilter },
{ "SetSourceFilterSettings", WSRequestHandler::HandleSetSourceFilterSettings },
{ "SetSourceFilterVisibility", WSRequestHandler::HandleSetSourceFilterVisibility },
{ "GetSourceFilters", &WSRequestHandler::GetSourceFilters },
{ "GetSourceFilterInfo", &WSRequestHandler::GetSourceFilterInfo },
{ "AddFilterToSource", &WSRequestHandler::AddFilterToSource },
{ "RemoveFilterFromSource", &WSRequestHandler::RemoveFilterFromSource },
{ "ReorderSourceFilter", &WSRequestHandler::ReorderSourceFilter },
{ "MoveSourceFilter", &WSRequestHandler::MoveSourceFilter },
{ "SetSourceFilterSettings", &WSRequestHandler::SetSourceFilterSettings },
{ "SetSourceFilterVisibility", &WSRequestHandler::SetSourceFilterVisibility },
{ "SetCurrentSceneCollection", WSRequestHandler::HandleSetCurrentSceneCollection },
{ "GetCurrentSceneCollection", WSRequestHandler::HandleGetCurrentSceneCollection },
{ "ListSceneCollections", WSRequestHandler::HandleListSceneCollections },
{ "SetCurrentSceneCollection", &WSRequestHandler::SetCurrentSceneCollection },
{ "GetCurrentSceneCollection", &WSRequestHandler::GetCurrentSceneCollection },
{ "ListSceneCollections", &WSRequestHandler::ListSceneCollections },
{ "SetCurrentProfile", WSRequestHandler::HandleSetCurrentProfile },
{ "GetCurrentProfile", WSRequestHandler::HandleGetCurrentProfile },
{ "ListProfiles", WSRequestHandler::HandleListProfiles },
{ "SetCurrentProfile", &WSRequestHandler::SetCurrentProfile },
{ "GetCurrentProfile", &WSRequestHandler::GetCurrentProfile },
{ "ListProfiles", &WSRequestHandler::ListProfiles },
{ "SetStreamSettings", WSRequestHandler::HandleSetStreamSettings },
{ "GetStreamSettings", WSRequestHandler::HandleGetStreamSettings },
{ "SaveStreamSettings", WSRequestHandler::HandleSaveStreamSettings },
{ "SetStreamSettings", &WSRequestHandler::SetStreamSettings },
{ "GetStreamSettings", &WSRequestHandler::GetStreamSettings },
{ "SaveStreamSettings", &WSRequestHandler::SaveStreamSettings },
#if BUILD_CAPTIONS
{ "SendCaptions", WSRequestHandler::HandleSendCaptions },
{ "SendCaptions", &WSRequestHandler::SendCaptions },
#endif
{ "GetStudioModeStatus", WSRequestHandler::HandleGetStudioModeStatus },
{ "GetPreviewScene", WSRequestHandler::HandleGetPreviewScene },
{ "SetPreviewScene", WSRequestHandler::HandleSetPreviewScene },
{ "TransitionToProgram", WSRequestHandler::HandleTransitionToProgram },
{ "EnableStudioMode", WSRequestHandler::HandleEnableStudioMode },
{ "DisableStudioMode", WSRequestHandler::HandleDisableStudioMode },
{ "ToggleStudioMode", WSRequestHandler::HandleToggleStudioMode },
{ "GetStudioModeStatus", &WSRequestHandler::GetStudioModeStatus },
{ "GetPreviewScene", &WSRequestHandler::GetPreviewScene },
{ "SetPreviewScene", &WSRequestHandler::SetPreviewScene },
{ "TransitionToProgram", &WSRequestHandler::TransitionToProgram },
{ "EnableStudioMode", &WSRequestHandler::EnableStudioMode },
{ "DisableStudioMode", &WSRequestHandler::DisableStudioMode },
{ "ToggleStudioMode", &WSRequestHandler::ToggleStudioMode },
{ "SetTextGDIPlusProperties", WSRequestHandler::HandleSetTextGDIPlusProperties },
{ "GetTextGDIPlusProperties", WSRequestHandler::HandleGetTextGDIPlusProperties },
{ "SetTextGDIPlusProperties", &WSRequestHandler::SetTextGDIPlusProperties },
{ "GetTextGDIPlusProperties", &WSRequestHandler::GetTextGDIPlusProperties },
{ "SetTextFreetype2Properties", WSRequestHandler::HandleSetTextFreetype2Properties },
{ "GetTextFreetype2Properties", WSRequestHandler::HandleGetTextFreetype2Properties },
{ "SetTextFreetype2Properties", &WSRequestHandler::SetTextFreetype2Properties },
{ "GetTextFreetype2Properties", &WSRequestHandler::GetTextFreetype2Properties },
{ "GetBrowserSourceProperties", WSRequestHandler::HandleGetBrowserSourceProperties },
{ "SetBrowserSourceProperties", WSRequestHandler::HandleSetBrowserSourceProperties },
{ "GetBrowserSourceProperties", &WSRequestHandler::GetBrowserSourceProperties },
{ "SetBrowserSourceProperties", &WSRequestHandler::SetBrowserSourceProperties },
{ "ListOutputs", WSRequestHandler::HandleListOutputs },
{ "GetOutputInfo", WSRequestHandler::HandleGetOutputInfo },
{ "StartOutput", WSRequestHandler::HandleStartOutput },
{ "StopOutput", WSRequestHandler::HandleStopOutput }
{ "ListOutputs", &WSRequestHandler::ListOutputs },
{ "GetOutputInfo", &WSRequestHandler::GetOutputInfo },
{ "StartOutput", &WSRequestHandler::StartOutput },
{ "StopOutput", &WSRequestHandler::StopOutput }
};
QSet<QString> WSRequestHandler::authNotRequired {
const QSet<QString> WSRequestHandler::authNotRequired {
"GetVersion",
"GetAuthRequired",
"Authenticate"
@ -177,9 +177,9 @@ RpcResponse WSRequestHandler::processRequest(const RpcRequest& request){
// return SendErrorResponse("invalid JSON payload");
// }
if (!hasField("request-type") || !hasField("message-id")) {
return SendErrorResponse("missing request parameters");
}
// if (!hasField("request-type") || !hasField("message-id")) {
// return SendErrorResponse("missing request parameters");
// }
// _requestType = obs_data_get_string(data, "request-type");
// _messageId = obs_data_get_string(data, "message-id");

View File

@ -35,6 +35,8 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include "obs-websocket.h"
typedef RpcResponse(WSRequestHandler::*RpcMethodHandler)(const RpcRequest&);
class WSRequestHandler {
public:
explicit WSRequestHandler(ConnectionProperties& connProperties);
@ -43,121 +45,121 @@ class WSRequestHandler {
private:
ConnectionProperties& _connProperties;
static QHash<QString, RpcResponse(*)(const RpcRequest&)> messageMap;
static QSet<QString> authNotRequired;
static const QHash<QString, RpcMethodHandler> messageMap;
static const QSet<QString> authNotRequired;
static RpcResponse HandleGetVersion(const RpcRequest&);
static RpcResponse HandleGetAuthRequired(const RpcRequest&);
static RpcResponse HandleAuthenticate(const RpcRequest&);
RpcResponse GetVersion(const RpcRequest&);
RpcResponse GetAuthRequired(const RpcRequest&);
RpcResponse Authenticate(const RpcRequest&);
static RpcResponse HandleGetStats(const RpcRequest&);
static RpcResponse HandleSetHeartbeat(const RpcRequest&);
static RpcResponse HandleGetVideoInfo(const RpcRequest&);
RpcResponse GetStats(const RpcRequest&);
RpcResponse SetHeartbeat(const RpcRequest&);
RpcResponse GetVideoInfo(const RpcRequest&);
static RpcResponse HandleSetFilenameFormatting(const RpcRequest&);
static RpcResponse HandleGetFilenameFormatting(const RpcRequest&);
RpcResponse SetFilenameFormatting(const RpcRequest&);
RpcResponse GetFilenameFormatting(const RpcRequest&);
static RpcResponse HandleBroadcastCustomMessage(const RpcRequest&);
RpcResponse BroadcastCustomMessage(const RpcRequest&);
static RpcResponse HandleSetCurrentScene(const RpcRequest&);
static RpcResponse HandleGetCurrentScene(const RpcRequest&);
static RpcResponse HandleGetSceneList(const RpcRequest&);
RpcResponse SetCurrentScene(const RpcRequest&);
RpcResponse GetCurrentScene(const RpcRequest&);
RpcResponse GetSceneList(const RpcRequest&);
static RpcResponse HandleSetSceneItemRender(const RpcRequest&);
static RpcResponse HandleSetSceneItemPosition(const RpcRequest&);
static RpcResponse HandleSetSceneItemTransform(const RpcRequest&);
static RpcResponse HandleSetSceneItemCrop(const RpcRequest&);
static RpcResponse HandleGetSceneItemProperties(const RpcRequest&);
static RpcResponse HandleSetSceneItemProperties(const RpcRequest&);
static RpcResponse HandleResetSceneItem(const RpcRequest&);
static RpcResponse HandleDuplicateSceneItem(const RpcRequest&);
static RpcResponse HandleDeleteSceneItem(const RpcRequest&);
static RpcResponse HandleReorderSceneItems(const RpcRequest&);
RpcResponse SetSceneItemRender(const RpcRequest&);
RpcResponse SetSceneItemPosition(const RpcRequest&);
RpcResponse SetSceneItemTransform(const RpcRequest&);
RpcResponse SetSceneItemCrop(const RpcRequest&);
RpcResponse GetSceneItemProperties(const RpcRequest&);
RpcResponse SetSceneItemProperties(const RpcRequest&);
RpcResponse ResetSceneItem(const RpcRequest&);
RpcResponse DuplicateSceneItem(const RpcRequest&);
RpcResponse DeleteSceneItem(const RpcRequest&);
RpcResponse ReorderSceneItems(const RpcRequest&);
static RpcResponse HandleGetStreamingStatus(const RpcRequest&);
static RpcResponse HandleStartStopStreaming(const RpcRequest&);
static RpcResponse HandleStartStopRecording(const RpcRequest&);
RpcResponse GetStreamingStatus(const RpcRequest&);
RpcResponse StartStopStreaming(const RpcRequest&);
RpcResponse StartStopRecording(const RpcRequest&);
static RpcResponse HandleStartStreaming(const RpcRequest&);
static RpcResponse HandleStopStreaming(const RpcRequest&);
RpcResponse StartStreaming(const RpcRequest&);
RpcResponse StopStreaming(const RpcRequest&);
static RpcResponse HandleStartRecording(const RpcRequest&);
static RpcResponse HandleStopRecording(const RpcRequest&);
static RpcResponse HandlePauseRecording(const RpcRequest&);
static RpcResponse HandleResumeRecording(const RpcRequest&);
RpcResponse StartRecording(const RpcRequest&);
RpcResponse StopRecording(const RpcRequest&);
RpcResponse PauseRecording(const RpcRequest&);
RpcResponse ResumeRecording(const RpcRequest&);
static RpcResponse HandleStartStopReplayBuffer(const RpcRequest&);
static RpcResponse HandleStartReplayBuffer(const RpcRequest&);
static RpcResponse HandleStopReplayBuffer(const RpcRequest&);
static RpcResponse HandleSaveReplayBuffer(const RpcRequest&);
RpcResponse StartStopReplayBuffer(const RpcRequest&);
RpcResponse StartReplayBuffer(const RpcRequest&);
RpcResponse StopReplayBuffer(const RpcRequest&);
RpcResponse SaveReplayBuffer(const RpcRequest&);
static RpcResponse HandleSetRecordingFolder(const RpcRequest&);
static RpcResponse HandleGetRecordingFolder(const RpcRequest&);
RpcResponse SetRecordingFolder(const RpcRequest&);
RpcResponse GetRecordingFolder(const RpcRequest&);
static RpcResponse HandleGetTransitionList(const RpcRequest&);
static RpcResponse HandleGetCurrentTransition(const RpcRequest&);
static RpcResponse HandleSetCurrentTransition(const RpcRequest&);
RpcResponse GetTransitionList(const RpcRequest&);
RpcResponse GetCurrentTransition(const RpcRequest&);
RpcResponse SetCurrentTransition(const RpcRequest&);
static RpcResponse HandleSetVolume(const RpcRequest&);
static RpcResponse HandleGetVolume(const RpcRequest&);
static RpcResponse HandleToggleMute(const RpcRequest&);
static RpcResponse HandleSetMute(const RpcRequest&);
static RpcResponse HandleGetMute(const RpcRequest&);
static RpcResponse HandleSetSyncOffset(const RpcRequest&);
static RpcResponse HandleGetSyncOffset(const RpcRequest&);
static RpcResponse HandleGetSpecialSources(const RpcRequest&);
static RpcResponse HandleGetSourcesList(const RpcRequest&);
static RpcResponse HandleGetSourceTypesList(const RpcRequest&);
static RpcResponse HandleGetSourceSettings(const RpcRequest&);
static RpcResponse HandleSetSourceSettings(const RpcRequest&);
static RpcResponse HandleTakeSourceScreenshot(const RpcRequest&);
RpcResponse SetVolume(const RpcRequest&);
RpcResponse GetVolume(const RpcRequest&);
RpcResponse ToggleMute(const RpcRequest&);
RpcResponse SetMute(const RpcRequest&);
RpcResponse GetMute(const RpcRequest&);
RpcResponse SetSyncOffset(const RpcRequest&);
RpcResponse GetSyncOffset(const RpcRequest&);
RpcResponse GetSpecialSources(const RpcRequest&);
RpcResponse GetSourcesList(const RpcRequest&);
RpcResponse GetSourceTypesList(const RpcRequest&);
RpcResponse GetSourceSettings(const RpcRequest&);
RpcResponse SetSourceSettings(const RpcRequest&);
RpcResponse TakeSourceScreenshot(const RpcRequest&);
static RpcResponse HandleGetSourceFilters(const RpcRequest&);
static RpcResponse HandleGetSourceFilterInfo(const RpcRequest&);
static RpcResponse HandleAddFilterToSource(const RpcRequest&);
static RpcResponse HandleRemoveFilterFromSource(const RpcRequest&);
static RpcResponse HandleReorderSourceFilter(const RpcRequest&);
static RpcResponse HandleMoveSourceFilter(const RpcRequest&);
static RpcResponse HandleSetSourceFilterSettings(const RpcRequest&);
static RpcResponse HandleSetSourceFilterVisibility(const RpcRequest&);
RpcResponse GetSourceFilters(const RpcRequest&);
RpcResponse GetSourceFilterInfo(const RpcRequest&);
RpcResponse AddFilterToSource(const RpcRequest&);
RpcResponse RemoveFilterFromSource(const RpcRequest&);
RpcResponse ReorderSourceFilter(const RpcRequest&);
RpcResponse MoveSourceFilter(const RpcRequest&);
RpcResponse SetSourceFilterSettings(const RpcRequest&);
RpcResponse SetSourceFilterVisibility(const RpcRequest&);
static RpcResponse HandleSetCurrentSceneCollection(const RpcRequest&);
static RpcResponse HandleGetCurrentSceneCollection(const RpcRequest&);
static RpcResponse HandleListSceneCollections(const RpcRequest&);
RpcResponse SetCurrentSceneCollection(const RpcRequest&);
RpcResponse GetCurrentSceneCollection(const RpcRequest&);
RpcResponse ListSceneCollections(const RpcRequest&);
static RpcResponse HandleSetCurrentProfile(const RpcRequest&);
static RpcResponse HandleGetCurrentProfile(const RpcRequest&);
static RpcResponse HandleListProfiles(const RpcRequest&);
RpcResponse SetCurrentProfile(const RpcRequest&);
RpcResponse GetCurrentProfile(const RpcRequest&);
RpcResponse ListProfiles(const RpcRequest&);
static RpcResponse HandleSetStreamSettings(const RpcRequest&);
static RpcResponse HandleGetStreamSettings(const RpcRequest&);
static RpcResponse HandleSaveStreamSettings(const RpcRequest&);
RpcResponse SetStreamSettings(const RpcRequest&);
RpcResponse GetStreamSettings(const RpcRequest&);
RpcResponse SaveStreamSettings(const RpcRequest&);
#if BUILD_CAPTIONS
static RpcResponse HandleSendCaptions(WSRequestHandler * req);
RpcResponse SendCaptions(WSRequestHandler * req);
#endif
static RpcResponse HandleSetTransitionDuration(const RpcRequest& request);
static RpcResponse HandleGetTransitionDuration(const RpcRequest& request);
RpcResponse SetTransitionDuration(const RpcRequest& request);
RpcResponse GetTransitionDuration(const RpcRequest& request);
static RpcResponse HandleGetStudioModeStatus(const RpcRequest& request);
static RpcResponse HandleGetPreviewScene(const RpcRequest& request);
static RpcResponse HandleSetPreviewScene(const RpcRequest& request);
static RpcResponse HandleTransitionToProgram(const RpcRequest& request);
static RpcResponse HandleEnableStudioMode(const RpcRequest& request);
static RpcResponse HandleDisableStudioMode(const RpcRequest& request);
static RpcResponse HandleToggleStudioMode(const RpcRequest& request);
RpcResponse GetStudioModeStatus(const RpcRequest& request);
RpcResponse GetPreviewScene(const RpcRequest& request);
RpcResponse SetPreviewScene(const RpcRequest& request);
RpcResponse TransitionToProgram(const RpcRequest& request);
RpcResponse EnableStudioMode(const RpcRequest& request);
RpcResponse DisableStudioMode(const RpcRequest& request);
RpcResponse ToggleStudioMode(const RpcRequest& request);
static RpcResponse HandleSetTextGDIPlusProperties(const RpcRequest& request);
static RpcResponse HandleGetTextGDIPlusProperties(const RpcRequest& request);
RpcResponse SetTextGDIPlusProperties(const RpcRequest& request);
RpcResponse GetTextGDIPlusProperties(const RpcRequest& request);
static RpcResponse HandleSetTextFreetype2Properties(const RpcRequest& request);
static RpcResponse HandleGetTextFreetype2Properties(const RpcRequest& request);
RpcResponse SetTextFreetype2Properties(const RpcRequest& request);
RpcResponse GetTextFreetype2Properties(const RpcRequest& request);
static RpcResponse HandleSetBrowserSourceProperties(const RpcRequest& request);
static RpcResponse HandleGetBrowserSourceProperties(const RpcRequest& request);
RpcResponse SetBrowserSourceProperties(const RpcRequest& request);
RpcResponse GetBrowserSourceProperties(const RpcRequest& request);
static RpcResponse HandleListOutputs(const RpcRequest& request);
static RpcResponse HandleGetOutputInfo(const RpcRequest& request);
static RpcResponse HandleStartOutput(const RpcRequest& request);
static RpcResponse HandleStopOutput(const RpcRequest& request);
RpcResponse ListOutputs(const RpcRequest& request);
RpcResponse GetOutputInfo(const RpcRequest& request);
RpcResponse StartOutput(const RpcRequest& request);
RpcResponse StopOutput(const RpcRequest& request);
};