#include "qsacnuniverse.h" /** * @brief QSacnUniverse::QSacnUniverse * @param parent * @param universe */ QSacnUniverse::QSacnUniverse(QObject *parent, std::shared_ptr universe) : QObject(parent) , universe_(universe) { if (!universe) return; universe_->onData([this](DMX::Universe*) { emit changed(); }); }; /** * @brief QSacnUniverse::~QSacnUniverse */ QSacnUniverse::~QSacnUniverse() { } /** * @brief QSacnUniverse::description * @return */ const QString QSacnUniverse::description() const { auto metadata = universe_->provenance(); if (!metadata) return QString(); return QString::fromUtf8(metadata->source_name.c_str()); } /** * @brief QSacnUniverse::number * @return */ uint16_t QSacnUniverse::number() const { auto metadata = universe_->provenance(); if (!metadata) return 0; return metadata->universe; } /** * @brief QSacnUniverse::priority * @return */ uint8_t QSacnUniverse::priority() const { auto metadata = universe_->provenance(); if (!metadata) return 0; return metadata->priority; } /** * @brief QSacnUniverse::rxRate * @return */ double QSacnUniverse::rxRate() const { return (universe_) ? universe_->rxRate() : -1; } /** * @brief QSacnUniverse::slot * @param slot * @return */ uint8_t QSacnUniverse::slot(const u_int16_t slot) const { return (universe_) ? universe_->slot(slot) : 0; } /** * @brief QSacnUniverse::isEditable * @return */ bool QSacnUniverse::isEditable() const { return (universe_) ? universe_->isEditable() : false; } /** * @brief QSacnUniverse::activeSlots * @return */ uint16_t QSacnUniverse::activeSlots() const { return (universe_) ? universe_->activeSlots() : 0; } /** * @brief QSacnUniverse::setDescription * @param desc */ void QSacnUniverse::setDescription(std::string desc) { if (!isEditable()) return; universe_->provenance()->source_name = desc; emit changed(); } /** * @brief QSacnUniverse::setOptions * @param o */ void QSacnUniverse::setOptions(sACN::DATA::data_options o) { if (!isEditable()) return; universe_->provenance()->options = o; emit changed(); } /** * @brief QSacnUniverse::setPriority * @param p */ void QSacnUniverse::setPriority(uint8_t p) { if (!isEditable()) return; universe_->provenance()->priority = p; emit changed(); } /** * @brief QSacnUniverse::setSyncAddress * @param a */ void QSacnUniverse::setSyncAddress(uint16_t a) { if (!isEditable()) return; universe_->provenance()->sync_address = a; emit changed(); } /** * @brief QSacnUniverse::setValue * @param addr * @param level */ void QSacnUniverse::setValue (const uint16_t addr, const uint8_t level) { if (!isEditable()) return; universe_->sACN::Universe::setValue(addr, level); emit changed(); } /** * @brief QSacnUniverse::setValue * @param addr * @param size * @param profile */ void QSacnUniverse::setValue (const uint16_t addr, const uint16_t size, const uint8_t* profile) { if (!isEditable()) return; universe_->sACN::Universe::setValue(addr, size, profile); emit changed(); }