X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fsignalbase.cpp;h=2ca5a835db2d2ffb3cb1836f49bcd5db844f7e74;hp=fde99e2b4619a3cadf2b2acd01a862759c183d3f;hb=1f3033cb3e63de7cfe98dab537460443917fece3;hpb=ef8d23e798d2b4799c4bcd13a85a1d4b7d1d897b diff --git a/pv/data/signalbase.cpp b/pv/data/signalbase.cpp index fde99e2b..2ca5a835 100644 --- a/pv/data/signalbase.cpp +++ b/pv/data/signalbase.cpp @@ -155,8 +155,8 @@ void SignalBase::set_data(shared_ptr data) if (data_) { disconnect(data.get(), SIGNAL(samples_cleared()), this, SLOT(on_samples_cleared())); - disconnect(data.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), - this, SLOT(on_samples_added(QObject*, uint64_t, uint64_t))); + disconnect(data.get(), SIGNAL(samples_added(shared_ptr, uint64_t, uint64_t)), + this, SLOT(on_samples_added(shared_ptr, uint64_t, uint64_t))); if (channel_type_ == AnalogChannel) { shared_ptr analog = analog_data(); @@ -172,8 +172,8 @@ void SignalBase::set_data(shared_ptr data) if (data_) { connect(data.get(), SIGNAL(samples_cleared()), this, SLOT(on_samples_cleared())); - connect(data.get(), SIGNAL(samples_added(QObject*, uint64_t, uint64_t)), - this, SLOT(on_samples_added(QObject*, uint64_t, uint64_t))); + connect(data.get(), SIGNAL(samples_added(shared_ptr, uint64_t, uint64_t)), + this, SLOT(on_samples_added(shared_ptr, uint64_t, uint64_t))); if (channel_type_ == AnalogChannel) { shared_ptr analog = analog_data(); @@ -185,6 +185,15 @@ void SignalBase::set_data(shared_ptr data) } } +void SignalBase::clear_sample_data() +{ + if (analog_data()) + analog_data()->clear(); + + if (logic_data()) + logic_data()->clear(); +} + shared_ptr SignalBase::analog_data() const { shared_ptr result = nullptr; @@ -743,7 +752,7 @@ void SignalBase::on_samples_cleared() samples_cleared(); } -void SignalBase::on_samples_added(QObject* segment, uint64_t start_sample, +void SignalBase::on_samples_added(shared_ptr segment, uint64_t start_sample, uint64_t end_sample) { if (conversion_type_ != NoConversion) { @@ -757,8 +766,7 @@ void SignalBase::on_samples_added(QObject* segment, uint64_t start_sample, } } - data::Segment* s = qobject_cast(segment); - samples_added(s->segment_id(), start_sample, end_sample); + samples_added(segment->segment_id(), start_sample, end_sample); } void SignalBase::on_min_max_changed(float min, float max)