1
0
Fork 0

make universes aware of their sending source

This commit is contained in:
Kevin Matz 2021-08-31 09:27:53 -04:00
parent 207c6b8b71
commit b9e752e87e
3 changed files with 9 additions and 4 deletions

View File

@ -56,12 +56,12 @@ void Source::create(const uint16_t num)
if (universes_.count(num))
return;
auto metadata = std::shared_ptr<DATA::data_header>(new DATA::data_header());
auto metadata = std::make_shared<DATA::data_header>();
metadata->source_name = this->name();
metadata->universe = num;
universes_mutext_.lock();
universes_.emplace(num, new Universe());
universes_.emplace(num, new Universe(this));
universes_[num]->setProvenance(metadata);
universes_mutext_.unlock();
}

View File

@ -28,11 +28,13 @@ namespace sACN {
/**
* @brief Universe::Universe
* @param src
*/
Universe::Universe()
Universe::Universe(Source* src)
: DMX::Universe(E131_NETWORK_DATA_LOSS_TIMEOUT)
, active_data_slots(0)
, provenance_(std::shared_ptr<DATA::data_header>(new DATA::data_header()))
, source_(src)
{
destination.type = ACN::SDT::SDT_ADDR_NULL;
}

View File

@ -33,6 +33,8 @@
namespace sACN {
class Source; ///< forward declare from "sacn/source.h"
/**
* @brief \cite sACN 3.2 Universe
*
@ -43,7 +45,7 @@ class Universe
: public DMX::Universe
{
public:
Universe();
Universe(Source* = nullptr);
~Universe();
virtual void set(ACN::PDU::Message<ACN::DMP::Pdu>, std::shared_ptr<DATA::data_header>);
@ -79,6 +81,7 @@ private:
std::shared_ptr<DATA::data_header> provenance_;
std::vector<uint8_t> * sync_data_ = nullptr;
uint8_t sync_sequence_ = 0;
Source* source_;
};
} // SACN namespace