projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove data_ also for LogicSignal and use SignalBase data instead
[pulseview.git]
/
pv
/
session.cpp
diff --git
a/pv/session.cpp
b/pv/session.cpp
index 9c3a2c259e2a635f2eed79f5a8a607a9c33d490c..a61224048b018701cad13b891db4baf00a50a8b7 100644
(file)
--- a/
pv/session.cpp
+++ b/
pv/session.cpp
@@
-299,7
+299,7
@@
bool Session::add_decoder(srd_decoder *const dec)
dynamic_pointer_cast<view::LogicSignal>(s);
if (l && QString::fromUtf8(pdch->name).
toLower().contains(
dynamic_pointer_cast<view::LogicSignal>(s);
if (l && QString::fromUtf8(pdch->name).
toLower().contains(
- s->
channel
()->name().toLower()))
+ s->
base
()->name().toLower()))
channels[pdch] = l;
}
channels[pdch] = l;
}
@@
-412,16
+412,11
@@
void Session::update_signals()
const auto iter = std::find_if(
prev_sigs.cbegin(), prev_sigs.cend(),
[&](const shared_ptr<view::Signal> &s) {
const auto iter = std::find_if(
prev_sigs.cbegin(), prev_sigs.cend(),
[&](const shared_ptr<view::Signal> &s) {
- return s->
channel
()->channel() == channel;
+ return s->
base
()->channel() == channel;
});
if (iter != prev_sigs.end()) {
// Copy the signal from the old set to the new
signal = *iter;
});
if (iter != prev_sigs.end()) {
// Copy the signal from the old set to the new
signal = *iter;
- auto logic_signal = dynamic_pointer_cast<
- view::LogicSignal>(signal);
- if (logic_signal)
- logic_signal->set_logic_data(
- logic_data_);
} else {
// Create a new signal
signalbase = shared_ptr<data::SignalBase>(
} else {
// Create a new signal
signalbase = shared_ptr<data::SignalBase>(
@@
-429,20
+424,21
@@
void Session::update_signals()
switch(channel->type()->id()) {
case SR_CHANNEL_LOGIC:
switch(channel->type()->id()) {
case SR_CHANNEL_LOGIC:
+ signalbase->set_data(logic_data_);
signal = shared_ptr<view::Signal>(
new view::LogicSignal(*this,
signal = shared_ptr<view::Signal>(
new view::LogicSignal(*this,
- device_, signalbase
, logic_data_
));
+ device_, signalbase));
all_signal_data_.insert(logic_data_);
signalbases_.insert(signalbase);
break;
case SR_CHANNEL_ANALOG:
{
all_signal_data_.insert(logic_data_);
signalbases_.insert(signalbase);
break;
case SR_CHANNEL_ANALOG:
{
- shared_ptr<data::Analog> data(
-
new data::Analog()
);
+ shared_ptr<data::Analog> data(
new data::Analog());
+
signalbase->set_data(data
);
signal = shared_ptr<view::Signal>(
new view::AnalogSignal(
signal = shared_ptr<view::Signal>(
new view::AnalogSignal(
- *this, signalbase
, data
));
+ *this, signalbase));
all_signal_data_.insert(data);
signalbases_.insert(signalbase);
break;
all_signal_data_.insert(data);
signalbases_.insert(signalbase);
break;
@@
-462,7
+458,7
@@
void Session::update_signals()
signals_changed();
}
signals_changed();
}
-shared_ptr<data::SignalBase> Session::signal_from_channel(
+shared_ptr<data::SignalBase> Session::signal
base
_from_channel(
shared_ptr<sigrok::Channel> channel) const
{
for (shared_ptr<data::SignalBase> sig : signalbases_) {
shared_ptr<sigrok::Channel> channel) const
{
for (shared_ptr<data::SignalBase> sig : signalbases_) {
@@
-633,12
+629,10
@@
void Session::feed_in_analog(shared_ptr<Analog> analog)
cur_analog_segments_[channel] = segment;
// Find the analog data associated with the channel
cur_analog_segments_[channel] = segment;
// Find the analog data associated with the channel
- shared_ptr<view::AnalogSignal> sig =
- dynamic_pointer_cast<view::AnalogSignal>(
- signal_from_channel(channel));
- assert(sig);
+ shared_ptr<data::SignalBase> base = signalbase_from_channel(channel);
+ assert(base);
- shared_ptr<data::Analog> data(
sig
->analog_data());
+ shared_ptr<data::Analog> data(
base
->analog_data());
assert(data);
// Push the segment into the analog data.
assert(data);
// Push the segment into the analog data.