From 8ce8ebb9796488bd2211591806ed00854ad64bb3 Mon Sep 17 00:00:00 2001 From: Soeren Apel Date: Sat, 27 May 2017 22:13:16 +0200 Subject: [PATCH] SignalBase: Always hook into signal data, not just for analog --- pv/data/analog.hpp | 2 +- pv/data/logic.hpp | 2 +- pv/data/signalbase.cpp | 20 ++++++-------------- pv/data/signaldata.hpp | 6 +++++- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/pv/data/analog.hpp b/pv/data/analog.hpp index 5b6e5ee..30860ce 100644 --- a/pv/data/analog.hpp +++ b/pv/data/analog.hpp @@ -36,7 +36,7 @@ namespace data { class AnalogSegment; -class Analog : public QObject, public SignalData +class Analog : public SignalData { Q_OBJECT diff --git a/pv/data/logic.hpp b/pv/data/logic.hpp index c80f015..1ca5d3e 100644 --- a/pv/data/logic.hpp +++ b/pv/data/logic.hpp @@ -35,7 +35,7 @@ namespace data { class LogicSegment; -class Logic : public QObject, public SignalData +class Logic : public SignalData { Q_OBJECT diff --git a/pv/data/signalbase.cpp b/pv/data/signalbase.cpp index 45dc082..c8a6d55 100644 --- a/pv/data/signalbase.cpp +++ b/pv/data/signalbase.cpp @@ -125,23 +125,19 @@ QColor SignalBase::bgcolour() const void SignalBase::set_data(shared_ptr data) { - if (data_ && channel_type_ == AnalogChannel) { - shared_ptr analog_data = dynamic_pointer_cast(data_); - - disconnect(analog_data.get(), SIGNAL(samples_cleared()), + if (data_) { + disconnect(data.get(), SIGNAL(samples_cleared()), this, SLOT(on_samples_cleared())); - disconnect(analog_data.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), + disconnect(data.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), this, SLOT(on_samples_added(QObject*, uint64_t, uint64_t))); } data_ = data; - if (data_ && channel_type_ == AnalogChannel) { - shared_ptr analog_data = dynamic_pointer_cast(data_); - - connect(analog_data.get(), SIGNAL(samples_cleared()), + if (data_) { + connect(data.get(), SIGNAL(samples_cleared()), this, SLOT(on_samples_cleared())); - connect(analog_data.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), + connect(data.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), this, SLOT(on_samples_added(QObject*, uint64_t, uint64_t))); } } @@ -362,10 +358,6 @@ void SignalBase::on_samples_cleared() void SignalBase::on_samples_added(QObject* segment, uint64_t start_sample, uint64_t end_sample) { - (void)segment; - (void)start_sample; - (void)end_sample; - if (conversion_type_ != NoConversion) { // Wait for the currently ongoing conversion to finish diff --git a/pv/data/signaldata.hpp b/pv/data/signaldata.hpp index 374a6f9..a90204f 100644 --- a/pv/data/signaldata.hpp +++ b/pv/data/signaldata.hpp @@ -24,6 +24,8 @@ #include #include +#include + using std::shared_ptr; using std::vector; @@ -32,8 +34,10 @@ namespace data { class Segment; -class SignalData +class SignalData : public QObject { + Q_OBJECT + public: SignalData() = default; virtual ~SignalData() = default; -- 2.30.2