From 9f82085243073b6993a0ff7f357d51a3899efb4d Mon Sep 17 00:00:00 2001 From: jp9000 Date: Wed, 25 Feb 2015 21:14:11 -0800 Subject: [PATCH] libobs: Add obs_source_enum_filters function Enumerates filters that are currently present on a source. --- libobs/obs-source.c | 16 ++++++++++++++++ libobs/obs.h | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 25b7cb824..da9fbf8f5 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -2435,3 +2435,19 @@ void obs_source_dec_showing(obs_source_t *source) { obs_source_deactivate(source, AUX_VIEW); } + +void obs_source_enum_filters(obs_source_t *source, + obs_source_enum_proc_t callback, void *param) +{ + if (!source || !callback) + return; + + pthread_mutex_lock(&source->filter_mutex); + + for (size_t i = 0; i < source->filters.num; i++) { + struct obs_source *filter = source->filters.array[i]; + callback(source, filter, param); + } + + pthread_mutex_unlock(&source->filter_mutex); +} diff --git a/libobs/obs.h b/libobs/obs.h index e2ca0d8a6..dbf2c9faf 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -794,6 +794,10 @@ EXPORT void obs_source_inc_showing(obs_source_t *source); */ EXPORT void obs_source_dec_showing(obs_source_t *source); +/** Enumerates filters assigned to the source */ +EXPORT void obs_source_enum_filters(obs_source_t *source, + obs_source_enum_proc_t callback, void *param); + /* ------------------------------------------------------------------------- */ /* Functions used by sources */