1
0
Fork 0

metadata is a more descriptive property name

This commit is contained in:
Kevin Matz 2022-12-08 10:12:25 -05:00
parent 63ee24d334
commit e34a5acb5c
8 changed files with 40 additions and 40 deletions

View File

@ -47,7 +47,7 @@ QSacnUniverse::~QSacnUniverse()
*/ */
const QString QSacnUniverse::sourceName() const const QString QSacnUniverse::sourceName() const
{ {
auto metadata = universe_->provenance(); auto metadata = universe_->metadata();
return metadata ? QString::fromUtf8(metadata->source_name.c_str()) : QString(); return metadata ? QString::fromUtf8(metadata->source_name.c_str()) : QString();
} }
@ -58,7 +58,7 @@ const QString QSacnUniverse::sourceName() const
*/ */
uint16_t QSacnUniverse::number() const uint16_t QSacnUniverse::number() const
{ {
auto metadata = universe_->provenance(); auto metadata = universe_->metadata();
return metadata ? metadata->universe : 0; return metadata ? metadata->universe : 0;
} }
@ -69,7 +69,7 @@ uint16_t QSacnUniverse::number() const
*/ */
uint8_t QSacnUniverse::priority() const uint8_t QSacnUniverse::priority() const
{ {
auto metadata = universe_->provenance(); auto metadata = universe_->metadata();
return metadata ? metadata->priority : 0; return metadata ? metadata->priority : 0;
} }
@ -169,7 +169,7 @@ void QSacnUniverse::setOptions(sACN::DATA::data_options o)
if (!isEditable()) if (!isEditable())
return; return;
universe_->provenance()->options = o; universe_->metadata()->options = o;
emit dataChanged(); emit dataChanged();
} }
@ -183,7 +183,7 @@ void QSacnUniverse::setPriority(uint8_t p)
if (!isEditable()) if (!isEditable())
return; return;
universe_->provenance()->priority = p; universe_->metadata()->priority = p;
emit dataChanged(); emit dataChanged();
} }
@ -197,7 +197,7 @@ void QSacnUniverse::setSyncAddress(uint16_t a)
if (!isEditable()) if (!isEditable())
return; return;
universe_->provenance()->sync_address = a; universe_->metadata()->sync_address = a;
emit dataChanged(); emit dataChanged();
} }

View File

@ -144,7 +144,7 @@ void ArbitratingUniverse::dataChangedNotifier(DMX::Universe* dmx)
auto universe = dominant_(); auto universe = dominant_();
if (!universe) if (!universe)
return; return;
if (sacn->provenance() == universe->provenance()) if (sacn->metadata() == universe->metadata())
doDataCallbacks(); doDataCallbacks();
} }
@ -205,7 +205,7 @@ std::shared_ptr<DATA::data_header> ArbitratingUniverse::provenance()
{ {
auto universe = dominant_(); auto universe = dominant_();
if (universe) if (universe)
return universe->provenance(); return universe->metadata();
auto prov = std::make_shared<DATA::data_header>(); auto prov = std::make_shared<DATA::data_header>();
prov->universe = expectedUniverse; prov->universe = expectedUniverse;

View File

@ -71,7 +71,7 @@ public:
void set(std::shared_ptr<ACN::DMP::Pdu>, std::shared_ptr<DATA::data_header>) override; void set(std::shared_ptr<ACN::DMP::Pdu>, std::shared_ptr<DATA::data_header>) override;
virtual uint8_t status() override; virtual uint8_t status() override;
std::shared_ptr<DATA::data_header> provenance() override; std::shared_ptr<DATA::data_header> metadata() override;
void setProvenance(std::shared_ptr<DATA::data_header>) override {}; void setProvenance(std::shared_ptr<DATA::data_header>) override {};
bool isSyncronized() override; bool isSyncronized() override;

View File

@ -199,13 +199,13 @@ void Receiver::extendedReceiver(ACN::PDU::Message<ACN::RLP::Pdu> root)
* *
*/ */
void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame) { void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame) {
auto source = std::static_pointer_cast<DATA::data_header>(frame->header()); auto metadata = std::static_pointer_cast<DATA::data_header>(frame->header());
if (!universes_.count(source->universe)) if (!universes_.count(metadata->universe))
return; return;
auto universe = universes_.at(source->universe)->sourceUniverse(*source); auto universe = universes_.at(metadata->universe)->sourceUniverse(*metadata);
if (!universe) if (!universe)
universe = universes_.at(source->universe)->addNewSource(*source); universe = universes_.at(metadata->universe)->addNewSource(*metadata);
/// > \cite sACN 6.2.6 E1.31 Data Packet: Options /// > \cite sACN 6.2.6 E1.31 Data Packet: Options
/// > /// >
@ -214,7 +214,7 @@ void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame) {
/// > intended for use in visualization or media server preview applications /// > intended for use in visualization or media server preview applications
/// > and shall not be used to generate live output. /// > and shall not be used to generate live output.
/// \bug Preview_Data flag is ignored /// \bug Preview_Data flag is ignored
if (source->options.preview_data) if (metadata->options.preview_data)
return; return;
/// > \cite sACN 6.2.6 E1.31 Data Packet: Options /// > \cite sACN 6.2.6 E1.31 Data Packet: Options
@ -223,16 +223,16 @@ void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame) {
/// > /// >
/// > allow E1.31 sources to terminate transmission of a stream or of /// > allow E1.31 sources to terminate transmission of a stream or of
/// > universe synchronization without waiting for a timeout to occur. /// > universe synchronization without waiting for a timeout to occur.
if (source->options.stream_terminated) if (metadata->options.stream_terminated)
{ {
/// Set the universe's status to TERMINATED. /// Set the universe's status to TERMINATED.
universe->setStatus(Universe::sACN_TERMINATED); universe->setStatus(Universe::sACN_TERMINATED);
/// Resetting the sequencing on terminated universes results in faster reaquision /// Resetting the sequencing on terminated universes results in faster reaquision
/// from the same source without waiting for the sequence to realign. /// from the same source without waiting for the sequence to realign.
universe->provenance()->sequence_number = 0; universe->metadata()->sequence_number = 0;
/// Terminated universe may be deleted as sources. /// Terminated universe may be deleted as sources.
/// The universe may keep itself, in a terminated state, for hold-last-look. /// The universe may keep itself, in a terminated state, for hold-last-look.
universes_[source->universe]->deleteSourceUniverse(*source); universes_[metadata->universe]->deleteSourceUniverse(*metadata);
/// > Any property values in an E1.31 Data Packet containing this bit /// > Any property values in an E1.31 Data Packet containing this bit
/// > shall be ignored. /// > shall be ignored.
return; return;
@ -242,8 +242,8 @@ void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame) {
/// > /// >
/// > a value of 0 in the Synchronization Address indicates that the universe /// > a value of 0 in the Synchronization Address indicates that the universe
/// > data is not synchronized. /// > data is not synchronized.
if (source->sync_address != 0) if (metadata->sync_address != 0)
subscribe(source->sync_address); subscribe(metadata->sync_address);
/// > \cite sACN 6.7.2 Sequence Numbering /// > \cite sACN 6.7.2 Sequence Numbering
/// > /// >
@ -260,8 +260,8 @@ void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame) {
/// This also prevents the rejection of messages recieved on both IPv4 and /// This also prevents the rejection of messages recieved on both IPv4 and
/// IPv6, which violates the reciever requiement in \cite sACN 9.1 Association /// IPv6, which violates the reciever requiement in \cite sACN 9.1 Association
/// of Multicast Addresses and Universe requirement. /// of Multicast Addresses and Universe requirement.
auto a = universe->provenance()->sequence_number; auto a = universe->metadata()->sequence_number;
auto b = source->sequence_number; auto b = metadata->sequence_number;
if (!(a == 0 && b == 0)) if (!(a == 0 && b == 0))
{ {
int dif = b - a; int dif = b - a;
@ -281,7 +281,7 @@ void Receiver::dataFrameHandler(ACN::PDU::Message<DATA::Pdu> frame) {
/// > VECTOR_DMP_SET_PROPERTY. /// > VECTOR_DMP_SET_PROPERTY.
switch(dmp->vector()) { switch(dmp->vector()) {
case ACN::DMP::SET_PROPERTY: case ACN::DMP::SET_PROPERTY:
universe->set(dmp, source); universe->set(dmp, metadata);
break; break;
default: default:
break; break;

View File

@ -76,7 +76,7 @@ void Source::terminate(const uint16_t num)
return; return;
universes_mutext_.lock(); universes_mutext_.lock();
auto metadata = universes_.at(num)->provenance(); auto metadata = universes_.at(num)->metadata();
metadata->options.stream_terminated = true; metadata->options.stream_terminated = true;
universes_.at(num)->setProvenance(metadata); universes_.at(num)->setProvenance(metadata);
universes_.erase(num); universes_.erase(num);
@ -126,7 +126,7 @@ void Source::assignUserName(const std::string s)
{ {
ACN::Component::assignUserName(s); ACN::Component::assignUserName(s);
for( auto & [_, universe] : universes_ ) for( auto & [_, universe] : universes_ )
universe->provenance()->source_name = name(); universe->metadata()->source_name = name();
} }
@ -182,7 +182,7 @@ void Source::discovery_send_()
{ {
if (!univ->activeSlots()) if (!univ->activeSlots())
continue; continue;
if (univ->provenance()->options.stream_terminated) if (univ->metadata()->options.stream_terminated)
continue; continue;
if (univ->destination.type != ACN::SDT::SDT_ADDR_NULL) if (univ->destination.type != ACN::SDT::SDT_ADDR_NULL)
continue; continue;

View File

@ -33,7 +33,7 @@ namespace sACN {
*/ */
Universe::Universe(Source* src) Universe::Universe(Source* src)
: DMX::Universe(E131_NETWORK_DATA_LOSS_TIMEOUT) : DMX::Universe(E131_NETWORK_DATA_LOSS_TIMEOUT)
, provenance_(std::make_shared<DATA::data_header>()) , metadata_(std::make_shared<DATA::data_header>())
, source_(src) , source_(src)
, active_data_slots_(1) // start code , active_data_slots_(1) // start code
, sync_sequence_(0) , sync_sequence_(0)
@ -153,7 +153,7 @@ void Universe::set(ACN::PDU::Message<ACN::DMP::Pdu> dmp,
*/ */
void Universe::setProvenance(std::shared_ptr<DATA::data_header> source) void Universe::setProvenance(std::shared_ptr<DATA::data_header> source)
{ {
provenance_ = source; metadata_ = source;
} }
@ -184,7 +184,7 @@ bool Universe::isEditable() const
const std::vector<DATA::data_header> Universe::sources() const const std::vector<DATA::data_header> Universe::sources() const
{ {
std::vector<DATA::data_header> keys; std::vector<DATA::data_header> keys;
keys.push_back(*provenance_); keys.push_back(*metadata_);
return keys; return keys;
} }
@ -206,7 +206,7 @@ std::shared_ptr<void> Universe::onSourceListChange(std::function<void()>)
*/ */
std::shared_ptr<Universe> Universe::sourceUniverse(const DATA::data_header& src) std::shared_ptr<Universe> Universe::sourceUniverse(const DATA::data_header& src)
{ {
if (src == *provenance()) if (src == *metadata())
return shared_from_this(); return shared_from_this();
return nullptr; return nullptr;
@ -277,12 +277,12 @@ void Universe::setStatus(uint8_t status)
/** /**
* @brief Universe::source * @brief Universe::metadata
* @return * @return
*/ */
std::shared_ptr<DATA::data_header> Universe::provenance() std::shared_ptr<DATA::data_header> Universe::metadata()
{ {
return provenance_; return metadata_;
} }
@ -328,7 +328,7 @@ void Universe::sACNsend() const
/// > /// >
/// > ... The sequence number for a universe shall be incremented by one for /// > ... The sequence number for a universe shall be incremented by one for
/// > every packet sent on that universe... /// > every packet sent on that universe...
provenance_->sequence_number++; metadata_->sequence_number++;
// header // header
auto addrtyp = std::make_shared<ACN::DMP::address_type>(); auto addrtyp = std::make_shared<ACN::DMP::address_type>();
@ -362,7 +362,7 @@ void Universe::sACNsend() const
// sACN Framing Layer // sACN Framing Layer
auto frame = std::make_shared<DATA::Pdu>(); auto frame = std::make_shared<DATA::Pdu>();
frame->setVector(VECTOR_E131_DATA_PACKET); frame->setVector(VECTOR_E131_DATA_PACKET);
frame->setHeader(provenance_); frame->setHeader(metadata_);
frame->setData(dmp); frame->setData(dmp);
// send // send
@ -370,9 +370,9 @@ void Universe::sACNsend() const
{ {
case ACN::SDT::SDT_ADDR_NULL: case ACN::SDT::SDT_ADDR_NULL:
source_->rlpSendUdp(VECTOR_ROOT_E131_DATA, frame, source_->rlpSendUdp(VECTOR_ROOT_E131_DATA, frame,
IPv4MulticastAddress(provenance_->universe)); IPv4MulticastAddress(metadata_->universe));
source_->rlpSendUdp(VECTOR_ROOT_E131_DATA, frame, source_->rlpSendUdp(VECTOR_ROOT_E131_DATA, frame,
IPv6MulticastAddress(provenance_->universe)); IPv6MulticastAddress(metadata_->universe));
break; break;
default: default:
source_->rlpSendUdp(VECTOR_ROOT_E131_DATA, frame, destination); source_->rlpSendUdp(VECTOR_ROOT_E131_DATA, frame, destination);
@ -459,7 +459,7 @@ void Universe::tx_loop_()
else else
{ {
setStatus(sACN_TERMINATED); // note the changed operating status setStatus(sACN_TERMINATED); // note the changed operating status
provenance_->options.stream_terminated = true; // set the stream_terminated bit metadata_->options.stream_terminated = true; // set the stream_terminated bit
--terminated_resend; // stream_terminated must be sent 3 times --terminated_resend; // stream_terminated must be sent 3 times
sleep = minimum_update_time; // stay throttled up through the termination sequence sleep = minimum_update_time; // stay throttled up through the termination sequence
} }

View File

@ -54,7 +54,7 @@ public:
virtual void set(ACN::PDU::Message<ACN::DMP::Pdu>, std::shared_ptr<DATA::data_header>); virtual void set(ACN::PDU::Message<ACN::DMP::Pdu>, std::shared_ptr<DATA::data_header>);
virtual std::shared_ptr<DATA::data_header> provenance(); virtual std::shared_ptr<DATA::data_header> metadata();
virtual void setProvenance(std::shared_ptr<DATA::data_header>); virtual void setProvenance(std::shared_ptr<DATA::data_header>);
virtual bool isSyncronized(); virtual bool isSyncronized();
@ -97,7 +97,7 @@ protected:
void sACNsend() const; void sACNsend() const;
private: private:
std::shared_ptr<DATA::data_header> provenance_; std::shared_ptr<DATA::data_header> metadata_;
std::vector<uint8_t> * sync_data_ = nullptr; std::vector<uint8_t> * sync_data_ = nullptr;
Source* source_; Source* source_;

View File

@ -125,7 +125,7 @@ TEST_F(sACNdataTest, stream_in) {
EXPECT_DOUBLE_EQ(universe->rxRate(), 1.2) << "rate calucation mismatch"; EXPECT_DOUBLE_EQ(universe->rxRate(), 1.2) << "rate calucation mismatch";
auto metadata = universe->provenance(); auto metadata = universe->metadata();
ASSERT_TRUE(metadata) << "stream failure"; ASSERT_TRUE(metadata) << "stream failure";
EXPECT_EQ(metadata->source_name, desc) << "Source Description mismatch"; EXPECT_EQ(metadata->source_name, desc) << "Source Description mismatch";