From 7055775c7c24a82e86d3944344141ed86b5bebae Mon Sep 17 00:00:00 2001 From: jp9000 Date: Mon, 2 Mar 2015 00:44:42 -0800 Subject: [PATCH] libobs: Add functions to show/hide sources obs_source_inc_showing and obs_source_dec_showing are used to indicate that a source is showing or no longer being shown in a particular area of the program outside from the main render view. One could use an obs_view, but I felt like it was unnecessary because using an obs_view just to display a single source feels somewhat superfluous. --- libobs/obs-source.c | 10 ++++++++++ libobs/obs.h | 14 ++++++++++++++ 2 files changed, 24 insertions(+) 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 */