X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fsignalbase.cpp;fp=pv%2Fdata%2Fsignalbase.cpp;h=70580aef919e2aa6263233050216a7aa6ba98d49;hp=2b38fe1ef1d3b7ec03af221453527d70cfd4f641;hb=554af71bf515d2763ca13c3829dbeb2064cc4c83;hpb=d5397ccbb61e1937757c95c2603156fdd18d1300 diff --git a/pv/data/signalbase.cpp b/pv/data/signalbase.cpp index 2b38fe1e..70580aef 100644 --- a/pv/data/signalbase.cpp +++ b/pv/data/signalbase.cpp @@ -45,9 +45,55 @@ const int SignalBase::ColorBGAlpha = 8 * 256 / 100; const uint64_t SignalBase::ConversionBlockSize = 4096; const uint32_t SignalBase::ConversionDelay = 1000; // 1 second + +SignalGroup::SignalGroup(const QString& name) +{ + name_ = name; +} + +void SignalGroup::append_signal(shared_ptr signal) +{ + if (!signal) + return; + + signals_.push_back(signal); + signal->set_group(this); +} + +void SignalGroup::remove_signal(shared_ptr signal) +{ + if (!signal) + return; + + signals_.erase(std::remove_if(signals_.begin(), signals_.end(), + [&](shared_ptr s) { return s == signal; }), + signals_.end()); +} + +deque> SignalGroup::signals() const +{ + return signals_; +} + +void SignalGroup::clear() +{ + for (shared_ptr sb : signals_) + sb->set_group(nullptr); + + signals_.clear(); +} + +const QString SignalGroup::name() const +{ + return name_; +} + + + SignalBase::SignalBase(shared_ptr channel, ChannelType channel_type) : channel_(channel), channel_type_(channel_type), + group_(nullptr), conversion_type_(NoConversion), min_value_(0), max_value_(0) @@ -73,39 +119,6 @@ shared_ptr SignalBase::channel() const return channel_; } -QString SignalBase::name() const -{ - return (channel_) ? QString::fromStdString(channel_->name()) : name_; -} - -QString SignalBase::internal_name() const -{ - return internal_name_; -} - -void SignalBase::set_internal_name(QString internal_name) -{ - internal_name_ = internal_name; -} - -QString SignalBase::display_name() const -{ - if ((name() != internal_name_) && (!internal_name_.isEmpty())) - return name() + " (" + internal_name_ + ")"; - else - return name(); -} - -void SignalBase::set_name(QString name) -{ - if (channel_) - channel_->set_name(name.toUtf8().constData()); - - name_ = name; - - name_changed(name); -} - bool SignalBase::enabled() const { return (channel_) ? channel_->enabled() : true; @@ -142,6 +155,49 @@ unsigned int SignalBase::logic_bit_index() const return 0; } +void SignalBase::set_group(SignalGroup* group) +{ + group_ = group; +} + +SignalGroup* SignalBase::group() const +{ + return group_; +} + +QString SignalBase::name() const +{ + return (channel_) ? QString::fromStdString(channel_->name()) : name_; +} + +QString SignalBase::internal_name() const +{ + return internal_name_; +} + +void SignalBase::set_internal_name(QString internal_name) +{ + internal_name_ = internal_name; +} + +QString SignalBase::display_name() const +{ + if ((name() != internal_name_) && (!internal_name_.isEmpty())) + return name() + " (" + internal_name_ + ")"; + else + return name(); +} + +void SignalBase::set_name(QString name) +{ + if (channel_) + channel_->set_name(name.toUtf8().constData()); + + name_ = name; + + name_changed(name); +} + QColor SignalBase::color() const { return color_;