1
0
Fork 0

add callbacks for member changes

This commit is contained in:
Kevin Matz 2022-12-11 16:48:42 -05:00
parent 59dbad2264
commit b5f3e63b36
2 changed files with 17 additions and 4 deletions

View File

@ -41,6 +41,21 @@ UniverseMerger::UniverseMerger()
void UniverseMerger::addSource(std::shared_ptr<Universe> universe)
{
sources_.push_back(universe);
cb_tokens_.push_back(universe->onDataChange(
[this](DMX::Universe*){doDataCallbacks();}));
cb_tokens_.push_back(universe->onStatusChange(
[this](DMX::Universe*){doStatusCallbacks();}));
}
/**
* @brief UniverseMerger::clear
*/
void UniverseMerger::clear()
{
sources_.clear();
cb_tokens_.clear();
}

View File

@ -29,10 +29,6 @@ namespace sACN {
/**
* @brief The MergingUniverse class
*
* A short lived HTP universe data merger.
*
* Synchronization is not supported.
*/
class UniverseMerger
: public Universe
@ -41,6 +37,7 @@ public:
explicit UniverseMerger();
void addSource(std::shared_ptr<Universe>);
void clear();
// DMX::Universe overrides
virtual long age() const override;
@ -54,6 +51,7 @@ public:
private:
std::vector<std::shared_ptr<Universe>> sources_;
std::vector<std::shared_ptr<void>> cb_tokens_;
};
} // namespace sACN