X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fdata%2Fdecode%2Fannotation.hpp;h=717206a4b97b06b6f73eecb09b315002ebf6db0f;hb=1e948182f3f9353bd74875a37cacc833312a8c8e;hp=a107e0efeed7426584cbded2169ca639ffc47288;hpb=f228f00ed2c11ce4c9c36e0b758132a075e251da;p=pulseview.git diff --git a/pv/data/decode/annotation.hpp b/pv/data/decode/annotation.hpp index a107e0ef..717206a4 100644 --- a/pv/data/decode/annotation.hpp +++ b/pv/data/decode/annotation.hpp @@ -23,8 +23,11 @@ #include #include +#include #include +#include "pv/data/decode/row.hpp" + using std::vector; struct srd_proto_data; @@ -33,24 +36,44 @@ namespace pv { namespace data { namespace decode { +class RowData; + class Annotation { public: - typedef uint32_t Class; + Annotation(uint64_t start_sample, uint64_t end_sample, + const vector* texts, uint32_t ann_class_id, const RowData *data); + Annotation(Annotation&& a); + Annotation& operator=(Annotation&& a); -public: - Annotation(const srd_proto_data *const pdata); + const RowData* row_data() const; + const Row* row() const; uint64_t start_sample() const; uint64_t end_sample() const; - Class ann_class() const; - const vector& annotations() const; + uint64_t length() const; + + uint32_t ann_class_id() const; + const QString ann_class_name() const; + const QString ann_class_description() const; + + const vector* annotations() const; + const QString longest_annotation() const; + + bool visible() const; + + const QColor color() const; + const QColor bright_color() const; + const QColor dark_color() const; + + bool operator<(const Annotation &other) const; private: uint64_t start_sample_; uint64_t end_sample_; - Class ann_class_; - vector annotations_; + const vector* texts_; + uint32_t ann_class_id_; + const RowData* data_; }; } // namespace decode