projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use QApplication metadata for persistent storage
[pulseview.git]
/
pv
/
view
/
decodetrace.cpp
diff --git
a/pv/view/decodetrace.cpp
b/pv/view/decodetrace.cpp
index c47a46ab469abd2f7063c02cd1e1a1417984a246..c8a20dc3c9c6cf7eb3888080351e624ba38349c7 100644
(file)
--- a/
pv/view/decodetrace.cpp
+++ b/
pv/view/decodetrace.cpp
@@
-24,7
+24,7
@@
extern "C" {
#include <extdef.h>
#include <extdef.h>
-#include <boost/f
oreac
h.hpp>
+#include <boost/f
unctional/has
h.hpp>
#include <QAction>
#include <QApplication>
#include <QAction>
#include <QApplication>
@@
-47,12
+47,12
@@
extern "C" {
#include <pv/widgets/decodergroupbox.h>
#include <pv/widgets/decodermenu.h>
#include <pv/widgets/decodergroupbox.h>
#include <pv/widgets/decodermenu.h>
-using boost::dynamic_pointer_cast;
-using boost::shared_ptr;
+using std::dynamic_pointer_cast;
using std::list;
using std::max;
using std::map;
using std::min;
using std::list;
using std::max;
using std::map;
using std::min;
+using std::shared_ptr;
using std::vector;
namespace pv {
using std::vector;
namespace pv {
@@
-111,7
+111,7
@@
const QColor DecodeTrace::OutlineColours[16] = {
};
DecodeTrace::DecodeTrace(pv::SigSession &session,
};
DecodeTrace::DecodeTrace(pv::SigSession &session,
-
boost
::shared_ptr<pv::data::DecoderStack> decoder_stack, int index) :
+
std
::shared_ptr<pv::data::DecoderStack> decoder_stack, int index) :
Trace(QString::fromUtf8(
decoder_stack->stack().front()->decoder()->name)),
_session(session),
Trace(QString::fromUtf8(
decoder_stack->stack().front()->decoder()->name)),
_session(session),
@@
-136,7
+136,7
@@
bool DecodeTrace::enabled() const
return true;
}
return true;
}
-const
boost
::shared_ptr<pv::data::DecoderStack>& DecodeTrace::decoder() const
+const
std
::shared_ptr<pv::data::DecoderStack>& DecodeTrace::decoder() const
{
return _decoder_stack;
}
{
return _decoder_stack;
}
@@
-213,7
+213,7
@@
void DecodeTrace::paint_mid(QPainter &p, int left, int right)
_decoder_stack->get_annotation_subset(annotations, row,
start_sample, end_sample);
if (!annotations.empty()) {
_decoder_stack->get_annotation_subset(annotations, row,
start_sample, end_sample);
if (!annotations.empty()) {
-
BOOST_FOREACH(const Annotation &a,
annotations)
+
for (const Annotation &a :
annotations)
draw_annotation(a, p, get_text_colour(),
annotation_height, left, right,
samples_per_pixel, pixels_offset, y,
draw_annotation(a, p, get_text_colour(),
annotation_height, left, right,
samples_per_pixel, pixels_offset, y,
@@
-288,7
+288,7
@@
void DecodeTrace::populate_popup_form(QWidget *parent, QFormLayout *form)
// Add the decoder options
_bindings.clear();
// Add the decoder options
_bindings.clear();
- _
probe
_selectors.clear();
+ _
channel
_selectors.clear();
_decoder_forms.clear();
const list< shared_ptr<Decoder> >& stack = _decoder_stack->stack();
_decoder_forms.clear();
const list< shared_ptr<Decoder> >& stack = _decoder_stack->stack();
@@
-302,15
+302,14
@@
void DecodeTrace::populate_popup_form(QWidget *parent, QFormLayout *form)
}
else
{
}
else
{
- list< shared_ptr<Decoder> >::const_iterator iter =
- stack.begin();
+ auto iter = stack.cbegin();
for (int i = 0; i < (int)stack.size(); i++, iter++) {
shared_ptr<Decoder> dec(*iter);
create_decoder_form(i, dec, parent, form);
}
form->addRow(new QLabel(
for (int i = 0; i < (int)stack.size(); i++, iter++) {
shared_ptr<Decoder> dec(*iter);
create_decoder_form(i, dec, parent, form);
}
form->addRow(new QLabel(
- tr("<i>* Required
Probe
s</i>"), parent));
+ tr("<i>* Required
channel
s</i>"), parent));
}
// Add stacking button
}
// Add stacking button
@@
-372,7
+371,7
@@
void DecodeTrace::draw_instant(const pv::data::decode::Annotation &a, QPainter &
{
const QString text = a.annotations().empty() ?
QString() : a.annotations().back();
{
const QString text = a.annotations().empty() ?
QString() : a.annotations().back();
- const double w = min(p.boundingRect(QRectF(), 0, text).width(),
+ const double w = min(
(double)
p.boundingRect(QRectF(), 0, text).width(),
0.0) + h;
const QRectF rect(x - w / 2, y - h / 2, w, h);
0.0) + h;
const QRectF rect(x - w / 2, y - h / 2, w, h);
@@
-420,13
+419,16
@@
void DecodeTrace::draw_range(const pv::data::decode::Annotation &a, QPainter &p,
QRectF rect(start + cap_width, y - h / 2,
end - start - cap_width * 2, h);
QRectF rect(start + cap_width, y - h / 2,
end - start - cap_width * 2, h);
+ if (rect.width() <= 4)
+ return;
+
p.setPen(text_color);
// Try to find an annotation that will fit
QString best_annotation;
int best_width = 0;
p.setPen(text_color);
// Try to find an annotation that will fit
QString best_annotation;
int best_width = 0;
-
BOOST_FOREACH(const QString &a,
annotations) {
+
for (const QString &a :
annotations) {
const int w = p.boundingRect(QRectF(), 0, a).width();
if (w <= rect.width() && w > best_width)
best_annotation = a, best_width = w;
const int w = p.boundingRect(QRectF(), 0, a).width();
if (w <= rect.width() && w > best_width)
best_annotation = a, best_width = w;
@@
-474,12
+476,12
@@
void DecodeTrace::draw_unresolved_period(QPainter &p, int h, int left,
const list< shared_ptr<Decoder> > &stack = _decoder_stack->stack();
const list< shared_ptr<Decoder> > &stack = _decoder_stack->stack();
- // We get the logic data of the first
probe
in the list.
+ // We get the logic data of the first
channel
in the list.
// This works because we are currently assuming all
// LogicSignals have the same data/snapshot
// This works because we are currently assuming all
// LogicSignals have the same data/snapshot
-
BOOST_FOREACH (const shared_ptr<Decoder> &dec,
stack)
- if (dec && !dec->
probe
s().empty() &&
- ((logic_signal = (*dec->
probe
s().begin()).second)) &&
+
for (const shared_ptr<Decoder> &dec :
stack)
+ if (dec && !dec->
channel
s().empty() &&
+ ((logic_signal = (*dec->
channel
s().begin()).second)) &&
((data = logic_signal->logic_data())))
break;
((data = logic_signal->logic_data())))
break;
@@
-517,7
+519,7
@@
void DecodeTrace::create_decoder_form(int index,
shared_ptr<data::decode::Decoder> &dec, QWidget *parent,
QFormLayout *form)
{
shared_ptr<data::decode::Decoder> &dec, QWidget *parent,
QFormLayout *form)
{
- const GSList *
probe
;
+ const GSList *
l
;
assert(dec);
const srd_decoder *const decoder = dec->decoder();
assert(dec);
const srd_decoder *const decoder = dec->decoder();
@@
-538,34
+540,34
@@
void DecodeTrace::create_decoder_form(int index,
QFormLayout *const decoder_form = new QFormLayout;
group->add_layout(decoder_form);
QFormLayout *const decoder_form = new QFormLayout;
group->add_layout(decoder_form);
- // Add the mandatory
probe
s
- for(
probe = decoder->probes; probe; probe = probe
->next) {
- const struct srd_
probe *const p
=
- (struct srd_
probe *)probe
->data;
- QComboBox *const combo = create_
probe_selector(parent, dec, p
);
+ // Add the mandatory
channel
s
+ for(
l = decoder->channels; l; l = l
->next) {
+ const struct srd_
channel *const pdch
=
+ (struct srd_
channel *)l
->data;
+ QComboBox *const combo = create_
channel_selector(parent, dec, pdch
);
connect(combo, SIGNAL(currentIndexChanged(int)),
connect(combo, SIGNAL(currentIndexChanged(int)),
- this, SLOT(on_
probe
_selected(int)));
+ this, SLOT(on_
channel
_selected(int)));
decoder_form->addRow(tr("<b>%1</b> (%2) *")
decoder_form->addRow(tr("<b>%1</b> (%2) *")
- .arg(QString::fromUtf8(p->name))
- .arg(QString::fromUtf8(p->desc)), combo);
+ .arg(QString::fromUtf8(p
dch
->name))
+ .arg(QString::fromUtf8(p
dch
->desc)), combo);
- const
ProbeSelector s = {combo, dec, p
};
- _
probe
_selectors.push_back(s);
+ const
ChannelSelector s = {combo, dec, pdch
};
+ _
channel
_selectors.push_back(s);
}
}
- // Add the optional
probe
s
- for(
probe = decoder->opt_probes; probe; probe = probe
->next) {
- const struct srd_
probe *const p
=
- (struct srd_
probe *)probe
->data;
- QComboBox *const combo = create_
probe_selector(parent, dec, p
);
+ // Add the optional
channel
s
+ for(
l = decoder->opt_channels; l; l = l
->next) {
+ const struct srd_
channel *const pdch
=
+ (struct srd_
channel *)l
->data;
+ QComboBox *const combo = create_
channel_selector(parent, dec, pdch
);
connect(combo, SIGNAL(currentIndexChanged(int)),
connect(combo, SIGNAL(currentIndexChanged(int)),
- this, SLOT(on_
probe
_selected(int)));
+ this, SLOT(on_
channel
_selected(int)));
decoder_form->addRow(tr("<b>%1</b> (%2)")
decoder_form->addRow(tr("<b>%1</b> (%2)")
- .arg(QString::fromUtf8(p->name))
- .arg(QString::fromUtf8(p->desc)), combo);
+ .arg(QString::fromUtf8(p
dch
->name))
+ .arg(QString::fromUtf8(p
dch
->desc)), combo);
- const
ProbeSelector s = {combo, dec, p
};
- _
probe
_selectors.push_back(s);
+ const
ChannelSelector s = {combo, dec, pdch
};
+ _
channel
_selectors.push_back(s);
}
// Add the options
}
// Add the options
@@
-579,24
+581,22
@@
void DecodeTrace::create_decoder_form(int index,
_decoder_forms.push_back(group);
}
_decoder_forms.push_back(group);
}
-QComboBox* DecodeTrace::create_
probe
_selector(
+QComboBox* DecodeTrace::create_
channel
_selector(
QWidget *parent, const shared_ptr<data::decode::Decoder> &dec,
QWidget *parent, const shared_ptr<data::decode::Decoder> &dec,
- const srd_
probe *const probe
)
+ const srd_
channel *const pdch
)
{
assert(dec);
const vector< shared_ptr<Signal> > sigs = _session.get_signals();
assert(_decoder_stack);
{
assert(dec);
const vector< shared_ptr<Signal> > sigs = _session.get_signals();
assert(_decoder_stack);
- const map<const srd_probe*,
- shared_ptr<LogicSignal> >::const_iterator probe_iter =
- dec->probes().find(probe);
+ const auto channel_iter = dec->channels().find(pdch);
QComboBox *selector = new QComboBox(parent);
selector->addItem("-", qVariantFromValue((void*)NULL));
QComboBox *selector = new QComboBox(parent);
selector->addItem("-", qVariantFromValue((void*)NULL));
- if (
probe_iter == dec->probe
s().end())
+ if (
channel_iter == dec->channel
s().end())
selector->setCurrentIndex(0);
for(size_t i = 0; i < sigs.size(); i++) {
selector->setCurrentIndex(0);
for(size_t i = 0; i < sigs.size(); i++) {
@@
-607,7
+607,7
@@
QComboBox* DecodeTrace::create_probe_selector(
{
selector->addItem(s->get_name(),
qVariantFromValue((void*)s.get()));
{
selector->addItem(s->get_name(),
qVariantFromValue((void*)s.get()));
- if ((*
probe
_iter).second == s)
+ if ((*
channel
_iter).second == s)
selector->setCurrentIndex(i + 1);
}
}
selector->setCurrentIndex(i + 1);
}
}
@@
-615,14
+615,14
@@
QComboBox* DecodeTrace::create_probe_selector(
return selector;
}
return selector;
}
-void DecodeTrace::commit_decoder_
probe
s(shared_ptr<data::decode::Decoder> &dec)
+void DecodeTrace::commit_decoder_
channel
s(shared_ptr<data::decode::Decoder> &dec)
{
assert(dec);
{
assert(dec);
- map<const srd_
probe*, shared_ptr<LogicSignal> > probe
_map;
+ map<const srd_
channel*, shared_ptr<LogicSignal> > channel
_map;
const vector< shared_ptr<Signal> > sigs = _session.get_signals();
const vector< shared_ptr<Signal> > sigs = _session.get_signals();
-
BOOST_FOREACH(const ProbeSelector &s, _probe
_selectors)
+
for (const ChannelSelector &s : _channel
_selectors)
{
if(s._decoder != dec)
break;
{
if(s._decoder != dec)
break;
@@
-631,23
+631,22
@@
void DecodeTrace::commit_decoder_probes(shared_ptr<data::decode::Decoder> &dec)
(LogicSignal*)s._combo->itemData(
s._combo->currentIndex()).value<void*>();
(LogicSignal*)s._combo->itemData(
s._combo->currentIndex()).value<void*>();
-
BOOST_FOREACH(shared_ptr<Signal> sig,
sigs)
+
for (shared_ptr<Signal> sig :
sigs)
if(sig.get() == selection) {
if(sig.get() == selection) {
-
probe_map[s._probe
] =
+
channel_map[s._pdch
] =
dynamic_pointer_cast<LogicSignal>(sig);
break;
}
}
dynamic_pointer_cast<LogicSignal>(sig);
break;
}
}
- dec->set_
probes(probe
_map);
+ dec->set_
channels(channel
_map);
}
}
-void DecodeTrace::commit_
probe
s()
+void DecodeTrace::commit_
channel
s()
{
assert(_decoder_stack);
{
assert(_decoder_stack);
- BOOST_FOREACH(shared_ptr<data::decode::Decoder> dec,
- _decoder_stack->stack())
- commit_decoder_probes(dec);
+ for (shared_ptr<data::decode::Decoder> dec : _decoder_stack->stack())
+ commit_decoder_channels(dec);
_decoder_stack->begin_decode();
}
_decoder_stack->begin_decode();
}
@@
-668,9
+667,9
@@
void DecodeTrace::on_delete()
_session.remove_decode_signal(this);
}
_session.remove_decode_signal(this);
}
-void DecodeTrace::on_
probe
_selected(int)
+void DecodeTrace::on_
channel
_selected(int)
{
{
- commit_
probe
s();
+ commit_
channel
s();
}
void DecodeTrace::on_stack_decoder(srd_decoder *decoder)
}
void DecodeTrace::on_stack_decoder(srd_decoder *decoder)
@@
-701,7
+700,7
@@
void DecodeTrace::on_show_hide_decoder(int index)
const list< shared_ptr<Decoder> > stack(_decoder_stack->stack());
// Find the decoder in the stack
const list< shared_ptr<Decoder> > stack(_decoder_stack->stack());
// Find the decoder in the stack
-
list< shared_ptr<Decoder> >::const_iterator iter = stack.
begin();
+
auto iter = stack.c
begin();
for(int i = 0; i < index; i++, iter++)
assert(iter != stack.end());
for(int i = 0; i < index; i++, iter++)
assert(iter != stack.end());