mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-15 07:44:10 +00:00
libobs: Add obs_enum_scenes for enumerating scenes
Closes obsproject/obs-studio#1507
This commit is contained in:
parent
35dc89f5ca
commit
e55579e63d
25
libobs/obs.c
25
libobs/obs.c
|
@ -1360,6 +1360,31 @@ void obs_enum_sources(bool (*enum_proc)(void*, obs_source_t*), void *param)
|
|||
pthread_mutex_unlock(&obs->data.sources_mutex);
|
||||
}
|
||||
|
||||
void obs_enum_scenes(bool (*enum_proc)(void*, obs_source_t*), void *param)
|
||||
{
|
||||
obs_source_t *source;
|
||||
|
||||
if (!obs) return;
|
||||
|
||||
pthread_mutex_lock(&obs->data.sources_mutex);
|
||||
source = obs->data.first_source;
|
||||
|
||||
while (source) {
|
||||
obs_source_t *next_source =
|
||||
(obs_source_t*)source->context.next;
|
||||
|
||||
if (source->info.type == OBS_SOURCE_TYPE_SCENE &&
|
||||
!source->context.private &&
|
||||
!enum_proc(param, source)) {
|
||||
break;
|
||||
}
|
||||
|
||||
source = next_source;
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&obs->data.sources_mutex);
|
||||
}
|
||||
|
||||
static inline void obs_enum(void *pstart, pthread_mutex_t *mutex, void *proc,
|
||||
void *param)
|
||||
{
|
||||
|
|
|
@ -556,6 +556,10 @@ EXPORT obs_source_t *obs_get_output_source(uint32_t channel);
|
|||
EXPORT void obs_enum_sources(bool (*enum_proc)(void*, obs_source_t*),
|
||||
void *param);
|
||||
|
||||
/** Enumerates scenes */
|
||||
EXPORT void obs_enum_scenes(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);
|
||||
|
|
Loading…
Reference in a new issue