#include "decodetrace.h"
#include <pv/sigsession.h>
-#include <pv/data/decoder.h>
+#include <pv/data/decoderstack.h>
#include <pv/view/logicsignal.h>
#include <pv/view/view.h>
#include <pv/view/decode/annotation.h>
const QColor DecodeTrace::ErrorBgColour = QColor(0xEF, 0x29, 0x29);
DecodeTrace::DecodeTrace(pv::SigSession &session,
- boost::shared_ptr<pv::data::Decoder> decoder, int index) :
- Trace(session, QString(decoder->decoder()->name)),
- _decoder(decoder),
- _binding(decoder)
+ boost::shared_ptr<pv::data::DecoderStack> decoder_stack, int index) :
+ Trace(session, QString(decoder_stack->decoder()->name)),
+ _decoder_stack(decoder_stack),
+ _binding(decoder_stack)
{
- assert(_decoder);
+ assert(_decoder_stack);
_colour = DecodeColours[index % countof(DecodeColours)];
- connect(_decoder.get(), SIGNAL(new_decode_data()),
+ connect(_decoder_stack.get(), SIGNAL(new_decode_data()),
this, SLOT(on_new_decode_data()));
}
return true;
}
-const boost::shared_ptr<pv::data::Decoder>& DecodeTrace::decoder() const
+const boost::shared_ptr<pv::data::DecoderStack>& DecodeTrace::decoder() const
{
- return _decoder;
+ return _decoder_stack;
}
void DecodeTrace::set_view(pv::view::View *view)
{
using namespace pv::view::decode;
- assert(_decoder);
- const QString err = _decoder->error_message();
+ assert(_decoder_stack);
+ const QString err = _decoder_stack->error_message();
if (!err.isEmpty()) {
draw_error(p, err, left, right);
return;
const double scale = _view->scale();
assert(scale > 0);
- double samplerate = _decoder->get_samplerate();
+ double samplerate = _decoder_stack->get_samplerate();
// Show sample rate as 1Hz when it is unknown
if (samplerate == 0.0)
samplerate = 1.0;
const double pixels_offset = (_view->offset() -
- _decoder->get_start_time()) / scale;
+ _decoder_stack->get_start_time()) / scale;
const double samples_per_pixel = samplerate * scale;
- assert(_decoder);
- vector< shared_ptr<Annotation> > annotations(_decoder->annotations());
+ assert(_decoder_stack);
+ vector< shared_ptr<Annotation> > annotations(_decoder_stack->annotations());
BOOST_FOREACH(shared_ptr<Annotation> a, annotations) {
assert(a);
a->paint(p, get_text_colour(), _text_size.height(),
assert(form);
assert(parent);
- assert(_decoder);
+ assert(_decoder_stack);
- const srd_decoder *const decoder = _decoder->decoder();
+ const srd_decoder *const decoder = _decoder_stack->decoder();
assert(decoder);
// Add stacking button
QPushButton *const stack_button =
- new QPushButton(tr("Stack Decoder"), parent);
+ new QPushButton(tr("Stack DecoderStack"), parent);
pv::widgets::DecoderMenu *const decoder_menu =
new pv::widgets::DecoderMenu(parent);
stack_button->setMenu(decoder_menu);
{
const vector< shared_ptr<Signal> > sigs = _session.get_signals();
- assert(_decoder);
+ assert(_decoder_stack);
const map<const srd_probe*,
shared_ptr<LogicSignal> >::const_iterator probe_iter =
- _decoder->probes().find(probe);
+ _decoder_stack->probes().find(probe);
QComboBox *selector = new QComboBox(parent);
selector->addItem("-", qVariantFromValue((void*)NULL));
- if (probe_iter == _decoder->probes().end())
+ if (probe_iter == _decoder_stack->probes().end())
selector->setCurrentIndex(0);
for(size_t i = 0; i < sigs.size(); i++) {
void DecodeTrace::commit_probes()
{
- assert(_decoder);
+ assert(_decoder_stack);
map<const srd_probe*, shared_ptr<LogicSignal> > probe_map;
const vector< shared_ptr<Signal> > sigs = _session.get_signals();
}
}
- _decoder->set_probes(probe_map);
+ _decoder_stack->set_probes(probe_map);
}
void DecodeTrace::on_new_decode_data()