X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fsignalbase.cpp;h=e29bbe8745352ff84c0257391bf950949683a2bb;hp=3adf3338dc4d7cd4f6f41988bf667fab90ad1af3;hb=9d22929c3588b994771e8db8f3be5b013fd35040;hpb=bb7dd726eb7159ddd80d94ede791f2e2a9eaef0f diff --git a/pv/data/signalbase.cpp b/pv/data/signalbase.cpp index 3adf3338..e29bbe87 100644 --- a/pv/data/signalbase.cpp +++ b/pv/data/signalbase.cpp @@ -15,8 +15,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * along with this program; if not, see . */ #include "analog.hpp" @@ -31,16 +30,18 @@ using std::dynamic_pointer_cast; using std::shared_ptr; using sigrok::Channel; -using sigrok::ChannelType; namespace pv { namespace data { const int SignalBase::ColourBGAlpha = 8*256/100; -SignalBase::SignalBase(shared_ptr channel) : - channel_(channel) +SignalBase::SignalBase(shared_ptr channel, ChannelType channel_type) : + channel_(channel), + channel_type_(channel_type) { + if (channel_) + internal_name_ = QString::fromStdString(channel_->name()); } shared_ptr SignalBase::channel() const @@ -53,6 +54,11 @@ QString SignalBase::name() const return (channel_) ? QString::fromStdString(channel_->name()) : name_; } +QString SignalBase::internal_name() const +{ + return internal_name_; +} + void SignalBase::set_name(QString name) { if (channel_) @@ -76,9 +82,9 @@ void SignalBase::set_enabled(bool value) } } -const ChannelType *SignalBase::type() const +SignalBase::ChannelType SignalBase::type() const { - return (channel_) ? channel_->type() : nullptr; + return channel_type_; } unsigned int SignalBase::index() const @@ -113,18 +119,18 @@ void SignalBase::set_data(shared_ptr data) shared_ptr SignalBase::analog_data() const { - if (type() == ChannelType::ANALOG) + if (channel_type_ == AnalogChannel) return dynamic_pointer_cast(data_); else - return shared_ptr(); + return nullptr; } shared_ptr SignalBase::logic_data() const { - if (type() == ChannelType::LOGIC) + if (channel_type_ == LogicChannel) return dynamic_pointer_cast(data_); else - return shared_ptr(); + return nullptr; } #ifdef ENABLE_DECODE @@ -133,17 +139,32 @@ bool SignalBase::is_decode_signal() const return (decoder_stack_ != nullptr); } -std::shared_ptr SignalBase::decoder_stack() const +shared_ptr SignalBase::decoder_stack() const { return decoder_stack_; } -void SignalBase::set_decoder_stack(std::shared_ptr +void SignalBase::set_decoder_stack(shared_ptr decoder_stack) { decoder_stack_ = decoder_stack; } #endif +void SignalBase::save_settings(QSettings &settings) const +{ + settings.setValue("name", name()); + settings.setValue("enabled", enabled()); + settings.setValue("colour", colour()); +} + +void SignalBase::restore_settings(QSettings &settings) +{ + set_name(settings.value("name").toString()); + set_enabled(settings.value("enabled").toBool()); + set_colour(settings.value("colour").value()); +} + + } // namespace data } // namespace pv