From: Soeren Apel Date: Wed, 18 Apr 2018 06:49:49 +0000 (+0200) Subject: Annotation: Use special type for the class, not plain int X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=f228f00ed2c11ce4c9c36e0b758132a075e251da;p=pulseview.git Annotation: Use special type for the class, not plain int --- diff --git a/pv/data/decode/annotation.cpp b/pv/data/decode/annotation.cpp index 7c720430..96a594c3 100644 --- a/pv/data/decode/annotation.cpp +++ b/pv/data/decode/annotation.cpp @@ -41,7 +41,7 @@ Annotation::Annotation(const srd_proto_data *const pdata) : (const srd_proto_data_annotation*)pdata->data; assert(pda); - format_ = pda->ann_class; + ann_class_ = (Class)(pda->ann_class); const char *const *annotations = (char**)pda->ann_text; while (*annotations) { @@ -60,9 +60,9 @@ uint64_t Annotation::end_sample() const return end_sample_; } -int Annotation::format() const +Annotation::Class Annotation::ann_class() const { - return format_; + return ann_class_; } const vector& Annotation::annotations() const diff --git a/pv/data/decode/annotation.hpp b/pv/data/decode/annotation.hpp index 42a291a2..a107e0ef 100644 --- a/pv/data/decode/annotation.hpp +++ b/pv/data/decode/annotation.hpp @@ -35,18 +35,21 @@ namespace decode { class Annotation { +public: + typedef uint32_t Class; + public: Annotation(const srd_proto_data *const pdata); uint64_t start_sample() const; uint64_t end_sample() const; - int format() const; + Class ann_class() const; const vector& annotations() const; private: uint64_t start_sample_; uint64_t end_sample_; - int format_; + Class ann_class_; vector annotations_; }; diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp index 8dea8832..f4f24393 100644 --- a/pv/views/trace/decodetrace.cpp +++ b/pv/views/trace/decodetrace.cpp @@ -406,7 +406,7 @@ void DecodeTrace::draw_annotation(const pv::data::decode::Annotation &a, pixels_offset; const double end = a.end_sample() / samples_per_pixel - pixels_offset; - QColor color = get_annotation_color(row_color, a.format()); + QColor color = get_annotation_color(row_color, a.ann_class()); p.setPen(color.darker()); p.setBrush(color); @@ -440,14 +440,14 @@ void DecodeTrace::draw_annotation_block( const double top = y + .5 - h / 2; const double bottom = y + .5 + h / 2; - QColor color = get_annotation_color(row_color, annotations.front().format()); + QColor color = get_annotation_color(row_color, annotations.front().ann_class()); // Check if all annotations are of the same type (i.e. we can use one color) // or if we should use a neutral color (i.e. gray) - const int format = annotations.front().format(); - const bool single_format = all_of( + const Annotation::Class ann_class = annotations.front().ann_class(); + const bool single_class = all_of( annotations.begin(), annotations.end(), - [&](const Annotation &a) { return a.format() == format; }); + [&](const Annotation &a) { return a.ann_class() == ann_class; }); const QRectF rect(start, top, end - start, bottom - top); const int r = h / 4; @@ -456,8 +456,8 @@ void DecodeTrace::draw_annotation_block( p.setBrush(Qt::white); p.drawRoundedRect(rect, r, r); - p.setPen((single_format ? color.darker() : Qt::gray)); - p.setBrush(QBrush((single_format ? color : Qt::gray), Qt::Dense4Pattern)); + p.setPen((single_class ? color.darker() : Qt::gray)); + p.setBrush(QBrush((single_class ? color : Qt::gray), Qt::Dense4Pattern)); p.drawRoundedRect(rect, r, r); } diff --git a/pv/views/trace/decodetrace.hpp b/pv/views/trace/decodetrace.hpp index 692a5f71..04a3b300 100644 --- a/pv/views/trace/decodetrace.hpp +++ b/pv/views/trace/decodetrace.hpp @@ -50,14 +50,11 @@ namespace pv { class Session; namespace data { -class SignalBase; struct DecodeChannel; class DecodeSignal; namespace decode { -class Annotation; class Decoder; -class Row; } } // namespace data