From 31559051f6d2e7d1471e6191eb876c6dce982bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Lepin?= Date: Fri, 15 Nov 2019 19:38:15 +0100 Subject: [PATCH] WSRequestHandler: request handler as object methods --- src/WSRequestHandler.cpp | 192 +++++++++++++++++++-------------------- src/WSRequestHandler.h | 186 ++++++++++++++++++------------------- 2 files changed, 190 insertions(+), 188 deletions(-) diff --git a/src/WSRequestHandler.cpp b/src/WSRequestHandler.cpp index 26029955..e6a5e064 100644 --- a/src/WSRequestHandler.cpp +++ b/src/WSRequestHandler.cpp @@ -24,124 +24,124 @@ #include "WSRequestHandler.h" -QHash WSRequestHandler::messageMap { - { "GetVersion", WSRequestHandler::HandleGetVersion }, - { "GetAuthRequired", WSRequestHandler::HandleGetAuthRequired }, - { "Authenticate", WSRequestHandler::HandleAuthenticate }, +const QHash 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 WSRequestHandler::authNotRequired { +const QSet 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"); diff --git a/src/WSRequestHandler.h b/src/WSRequestHandler.h index ec8d484d..f302c021 100644 --- a/src/WSRequestHandler.h +++ b/src/WSRequestHandler.h @@ -35,6 +35,8 @@ with this program. If not, see #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 messageMap; - static QSet authNotRequired; + static const QHash messageMap; + static const QSet 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); };