make universes aware of their sending source
This commit is contained in:
parent
207c6b8b71
commit
b9e752e87e
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue