diff --git a/libobs/obs.c b/libobs/obs.c index b1c558394..4eb9072ac 100644 --- a/libobs/obs.c +++ b/libobs/obs.c @@ -1526,6 +1526,13 @@ static inline void obs_enum(void *pstart, pthread_mutex_t *mutex, void *proc, pthread_mutex_unlock(mutex); } +void obs_enum_all_sources(bool (*enum_proc)(void *, obs_source_t *), + void *param) +{ + obs_enum(&obs->data.first_source, &obs->data.sources_mutex, enum_proc, + param); +} + void obs_enum_outputs(bool (*enum_proc)(void *, obs_output_t *), void *param) { obs_enum(&obs->data.first_output, &obs->data.outputs_mutex, enum_proc, diff --git a/libobs/obs.h b/libobs/obs.h index a2a7251d7..f74a2f596 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -612,6 +612,10 @@ EXPORT void obs_enum_sources(bool (*enum_proc)(void *, obs_source_t *), EXPORT void obs_enum_scenes(bool (*enum_proc)(void *, obs_source_t *), void *param); +/** Enumerates all sources (regardless of type) */ +EXPORT void obs_enum_all_sources(bool (*enum_proc)(void *, obs_source_t *), + void *param); + /** Enumerates outputs */ EXPORT void obs_enum_outputs(bool (*enum_proc)(void *, obs_output_t *), void *param);