diff --git a/source/obs/obs-tools.hpp b/source/obs/obs-tools.hpp index 56c02be2..38bb7c80 100644 --- a/source/obs/obs-tools.hpp +++ b/source/obs/obs-tools.hpp @@ -36,6 +36,35 @@ namespace obs { std::shared_ptr get(); }; + + // Class to manage + class active_source { + obs_source_t* _child; + + public: + active_source(obs_source_t* child) : _child(child) + { + obs_source_inc_active(_child); + } + virtual ~active_source() + { + obs_source_dec_active(_child); + } + }; + + class visible_source { + obs_source_t* _child; + + public: + visible_source(obs_source_t* child) : _child(child) + { + obs_source_inc_showing(_child); + } + virtual ~visible_source() + { + obs_source_dec_showing(_child); + } + }; } // namespace tools inline void obs_source_deleter(obs_source_t* v)