diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 5dd8cb5c2..534d5b8b7 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -2334,3 +2334,13 @@ float obs_source_get_target_volume(obs_source_t *source, obs_source_t *target) return info.vol; } + +void obs_source_inc_showing(obs_source_t *source) +{ + obs_source_activate(source, AUX_VIEW); +} + +void obs_source_dec_showing(obs_source_t *source) +{ + obs_source_deactivate(source, AUX_VIEW); +} diff --git a/libobs/obs.h b/libobs/obs.h index e89af11c0..b6fc50a75 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -780,6 +780,20 @@ EXPORT void obs_source_set_audio_mixers(obs_source_t *source, uint32_t mixers); /** Gets audio mixer flags */ EXPORT uint32_t obs_source_get_audio_mixers(const obs_source_t *source); +/** + * Increments the 'showing' reference counter to indicate that the source is + * being shown somewhere. If the reference counter was 0, will call the 'show' + * callback. + */ +EXPORT void obs_source_inc_showing(obs_source_t *source); + +/** + * Decrements the 'showing' reference counter to indicate that the source is + * no longer being shown somewhere. If the reference counter is set to 0, + * will call the 'hide' callback + */ +EXPORT void obs_source_dec_showing(obs_source_t *source); + /* ------------------------------------------------------------------------- */ /* Functions used by sources */