Browse Source

libobs: Add obs_source_enum_filters function

Enumerates filters that are currently present on a source.
jp9000 10 years ago
parent
commit
9f82085243
2 changed files with 20 additions and 0 deletions
  1. 16 0
      libobs/obs-source.c
  2. 4 0
      libobs/obs.h

+ 16 - 0
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);
+}

+ 4 - 0
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 */