diff --git a/src/requesthandler/RequestHandler.cpp b/src/requesthandler/RequestHandler.cpp index 59ef9d1e..2ca7c096 100644 --- a/src/requesthandler/RequestHandler.cpp +++ b/src/requesthandler/RequestHandler.cpp @@ -112,9 +112,9 @@ const std::unordered_map RequestHandler::_han // Filters {"GetSourceFilterList", &RequestHandler::GetSourceFilterList}, + {"GetSourceFilterDefaultSettings", &RequestHandler::GetSourceFilterDefaultSettings}, {"CreateSourceFilter", &RequestHandler::CreateSourceFilter}, {"RemoveSourceFilter", &RequestHandler::RemoveSourceFilter}, - {"GetSourceFilterDefaultSettings", &RequestHandler::GetSourceFilterDefaultSettings}, {"GetSourceFilter", &RequestHandler::GetSourceFilter}, {"SetSourceFilterIndex", &RequestHandler::SetSourceFilterIndex}, {"SetSourceFilterSettings", &RequestHandler::SetSourceFilterSettings}, diff --git a/src/requesthandler/RequestHandler.h b/src/requesthandler/RequestHandler.h index 2d9bf20c..ac59afad 100644 --- a/src/requesthandler/RequestHandler.h +++ b/src/requesthandler/RequestHandler.h @@ -130,9 +130,9 @@ class RequestHandler { // Filters RequestResult GetSourceFilterList(const Request&); + RequestResult GetSourceFilterDefaultSettings(const Request&); RequestResult CreateSourceFilter(const Request&); RequestResult RemoveSourceFilter(const Request&); - RequestResult GetSourceFilterDefaultSettings(const Request&); RequestResult GetSourceFilter(const Request&); RequestResult SetSourceFilterIndex(const Request&); RequestResult SetSourceFilterSettings(const Request&); diff --git a/src/requesthandler/RequestHandler_Filters.cpp b/src/requesthandler/RequestHandler_Filters.cpp index 21d51097..25bf1ec1 100644 --- a/src/requesthandler/RequestHandler_Filters.cpp +++ b/src/requesthandler/RequestHandler_Filters.cpp @@ -47,6 +47,41 @@ RequestResult RequestHandler::GetSourceFilterList(const Request& request) return RequestResult::Success(responseData); } +/** + * Gets the default settings for a filter kind. + * + * @requestField filterKind | String | Filter kind to get the default settings for + * + * @responseField defaultFilterSettings | Object | Object of default settings for the filter kind + * + * @requestType GetSourceFilterDefaultSettings + * @complexity 3 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category filters + */ +RequestResult RequestHandler::GetSourceFilterDefaultSettings(const Request& request) +{ + RequestStatus::RequestStatus statusCode; + std::string comment; + if (!request.ValidateString("filterKind", statusCode, comment)) + return RequestResult::Error(statusCode, comment); + + std::string filterKind = request.RequestData["filterKind"]; + auto kinds = Utils::Obs::ArrayHelper::GetFilterKindList(); + if (std::find(kinds.begin(), kinds.end(), filterKind) == kinds.end()) + return RequestResult::Error(RequestStatus::InvalidFilterKind); + + OBSDataAutoRelease defaultSettings = obs_get_source_defaults(filterKind.c_str()); + if (!defaultSettings) + return RequestResult::Error(RequestStatus::InvalidFilterKind); + + json responseData; + responseData["defaultFilterSettings"] = Utils::Json::ObsDataToJson(defaultSettings, true); + return RequestResult::Success(responseData); +} + /** * Creates a new filter, adding it to the specified source. * @@ -123,41 +158,6 @@ RequestResult RequestHandler::RemoveSourceFilter(const Request& request) return RequestResult::Success(); } -/** - * Gets the default settings for a filter kind. - * - * @requestField filterKind | String | Filter kind to get the default settings for - * - * @responseField defaultFilterSettings | Object | Object of default settings for the filter kind - * - * @requestType GetSourceFilterDefaultSettings - * @complexity 3 - * @rpcVersion -1 - * @initialVersion 5.0.0 - * @api requests - * @category filters - */ -RequestResult RequestHandler::GetSourceFilterDefaultSettings(const Request& request) -{ - RequestStatus::RequestStatus statusCode; - std::string comment; - if (!request.ValidateString("filterKind", statusCode, comment)) - return RequestResult::Error(statusCode, comment); - - std::string filterKind = request.RequestData["filterKind"]; - auto kinds = Utils::Obs::ArrayHelper::GetFilterKindList(); - if (std::find(kinds.begin(), kinds.end(), filterKind) == kinds.end()) - return RequestResult::Error(RequestStatus::InvalidFilterKind); - - OBSDataAutoRelease defaultSettings = obs_get_source_defaults(filterKind.c_str()); - if (!defaultSettings) - return RequestResult::Error(RequestStatus::InvalidFilterKind); - - json responseData; - responseData["defaultFilterSettings"] = Utils::Json::ObsDataToJson(defaultSettings, true); - return RequestResult::Success(responseData); -} - /** * Gets the info for a specific source filter. *