requests(GetSourceFilters): add "enabled" status field

This commit is contained in:
Stéphane Lepin
2019-11-11 12:44:13 +01:00
parent 31991a3567
commit b8fcf0355c
3 changed files with 16 additions and 7 deletions

View File

@ -735,6 +735,18 @@ obs_data_t* Utils::GetSceneItemPropertiesData(obs_sceneitem_t* sceneItem) {
return data; return data;
} }
obs_data_t* Utils::GetSourceFilterInfo(obs_source_t* filter, bool includeSettings)
{
obs_data_t* data = obs_data_create();
obs_data_set_bool(data, "enabled", obs_source_enabled(filter));
obs_data_set_string(data, "type", obs_source_get_id(filter));
obs_data_set_string(data, "name", obs_source_get_name(filter));
if (includeSettings) {
obs_data_set_obj(data, "settings", obs_source_get_settings(filter));
}
return data;
}
obs_data_array_t* Utils::GetSourceFiltersList(obs_source_t* source, bool includeSettings) obs_data_array_t* Utils::GetSourceFiltersList(obs_source_t* source, bool includeSettings)
{ {
struct enum_params { struct enum_params {
@ -755,13 +767,8 @@ obs_data_array_t* Utils::GetSourceFiltersList(obs_source_t* source, bool include
{ {
auto enumParams = reinterpret_cast<struct enum_params*>(param); auto enumParams = reinterpret_cast<struct enum_params*>(param);
OBSDataAutoRelease filter = obs_data_create(); OBSDataAutoRelease filterData = Utils::GetSourceFilterInfo(child, enumParams->includeSettings);
obs_data_set_string(filter, "type", obs_source_get_id(child)); obs_data_array_push_back(enumParams->filters, filterData);
obs_data_set_string(filter, "name", obs_source_get_name(child));
if (enumParams->includeSettings) {
obs_data_set_obj(filter, "settings", obs_source_get_settings(child));
}
obs_data_array_push_back(enumParams->filters, filter);
}, &enumParams); }, &enumParams);
return enumParams.filters; return enumParams.filters;

View File

@ -48,6 +48,7 @@ class Utils {
static obs_scene_t* GetSceneFromNameOrCurrent(QString sceneName); static obs_scene_t* GetSceneFromNameOrCurrent(QString sceneName);
static obs_data_t* GetSceneItemPropertiesData(obs_sceneitem_t* item); static obs_data_t* GetSceneItemPropertiesData(obs_sceneitem_t* item);
static obs_data_t* GetSourceFilterInfo(obs_source_t* filter, bool includeSettings);
static obs_data_array_t* GetSourceFiltersList(obs_source_t* source, bool includeSettings); static obs_data_array_t* GetSourceFiltersList(obs_source_t* source, bool includeSettings);
static bool IsValidAlignment(const uint32_t alignment); static bool IsValidAlignment(const uint32_t alignment);

View File

@ -1061,6 +1061,7 @@ HandlerResponse WSRequestHandler::HandleGetSpecialSources(WSRequestHandler* req)
* @param {String} `sourceName` Source name * @param {String} `sourceName` Source name
* *
* @return {Array<Object>} `filters` List of filters for the specified source * @return {Array<Object>} `filters` List of filters for the specified source
* @return {Boolean} `filters.*.enabled` Filter status (enabled or not)
* @return {String} `filters.*.type` Filter type * @return {String} `filters.*.type` Filter type
* @return {String} `filters.*.name` Filter name * @return {String} `filters.*.name` Filter name
* @return {Object} `filters.*.settings` Filter settings * @return {Object} `filters.*.settings` Filter settings