X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fdecodesignal.cpp;h=89d2c3212774cd229d72666a32cdd73f72e5ae8f;hp=bc37b2019819c8c54b046467da6fc1a239b24a8e;hb=9cef95672622f4ecdb21edef9d81a10c789daf1e;hpb=fe08b6e8a85c80ae738757f7d85aa38ef7c4bdc3 diff --git a/pv/view/decodesignal.cpp b/pv/view/decodesignal.cpp index bc37b201..89d2c321 100644 --- a/pv/view/decodesignal.cpp +++ b/pv/view/decodesignal.cpp @@ -22,8 +22,11 @@ extern "C" { #include } +#include + #include "decodesignal.h" +#include #include #include #include @@ -34,14 +37,24 @@ using namespace std; namespace pv { namespace view { +const QColor DecodeSignal::DecodeColours[4] = { + QColor(0xEF, 0x29, 0x29), // Red + QColor(0xFC, 0xE9, 0x4F), // Yellow + QColor(0x8A, 0xE2, 0x34), // Green + QColor(0x72, 0x9F, 0xCF) // Blue +}; + DecodeSignal::DecodeSignal(pv::SigSession &session, - boost::shared_ptr decoder) : + boost::shared_ptr decoder, int index) : Trace(session, QString(decoder->get_decoder()->name)), _decoder(decoder) { assert(_decoder); - _colour = Qt::red; + _colour = DecodeColours[index % countof(DecodeColours)]; + + connect(_decoder.get(), SIGNAL(new_decode_data()), + this, SLOT(on_new_decode_data())); } void DecodeSignal::init_context_bar_actions(QWidget *parent) @@ -89,7 +102,9 @@ void DecodeSignal::paint_mid(QPainter &p, int left, int right) vector< shared_ptr > annotations(_decoder->annotations()); BOOST_FOREACH(shared_ptr a, annotations) { assert(a); - a->paint(p, left, right, samples_per_pixel, pixels_offset, y); + a->paint(p, _colour, _colour.darker(), get_text_colour(), + _text_size.height(), left, right, samples_per_pixel, + pixels_offset, y); } } @@ -99,5 +114,11 @@ const list DecodeSignal::get_context_bar_actions() return actions; } +void DecodeSignal::on_new_decode_data() +{ + if (_view) + _view->update_viewport(); +} + } // namespace view } // namespace pv