PulseView  unreleased development snapshot
A Qt-based sigrok GUI
row.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of the PulseView project.
3  *
4  * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef PULSEVIEW_PV_DATA_DECODE_ROW_HPP
21 #define PULSEVIEW_PV_DATA_DECODE_ROW_HPP
22 
23 #include <map>
24 #include <vector>
25 
26 #include <QObject>
27 #include <QColor>
28 
29 struct srd_decoder;
30 struct srd_decoder_annotation_row;
31 
32 using std::map;
33 using std::vector;
34 
35 namespace pv {
36 namespace data {
37 namespace decode {
38 
39 #define DECODE_COLOR_SATURATION (180) /* 0-255 */
40 #define DECODE_COLOR_VALUE (170) /* 0-255 */
41 
42 class AnnotationClass;
43 class Decoder;
44 
45 class Row: public QObject
46 {
47  Q_OBJECT
48 
49 public:
50  Row();
51 
52  Row(uint32_t index, Decoder* decoder,
53  const srd_decoder_annotation_row* srd_row = nullptr);
54 
55  const Decoder* decoder() const;
56  const srd_decoder_annotation_row* get_srd_row() const;
57 
58  const QString title() const;
59  const QString description() const;
60  vector<AnnotationClass*> ann_classes() const;
61  uint32_t index() const;
62 
63  bool visible() const;
64  void set_visible(bool visible);
65 
66  void set_base_color(QColor base_color);
67  const QColor color() const;
68  const QColor get_class_color(uint32_t ann_class_id) const;
69  const QColor get_bright_class_color(uint32_t ann_class_id) const;
70  const QColor get_dark_class_color(uint32_t ann_class_id) const;
71 
72  bool has_hidden_classes() const;
73  bool class_is_visible(uint32_t ann_class_id) const;
74 
75  bool operator<(const Row& other) const;
76  bool operator==(const Row& other) const;
77 
78 Q_SIGNALS:
79  void visibility_changed();
80 
81 private:
82  uint32_t index_;
84  const srd_decoder_annotation_row* srd_row_;
85  bool visible_;
86 
87  QColor color_;
88  map<uint32_t, QColor> ann_class_color_;
89  map<uint32_t, QColor> ann_bright_class_color_;
90  map<uint32_t, QColor> ann_dark_class_color_;
91 };
92 
93 } // namespace decode
94 } // namespace data
95 } // namespace pv
96 
97 #endif // PULSEVIEW_PV_DATA_DECODE_ROW_HPP
void set_visible(bool visible)
Definition: row.cpp:111
bool operator<(const Row &other) const
Definition: row.cpp:194
map< uint32_t, QColor > ann_dark_class_color_
Definition: row.hpp:90
uint32_t index_
Definition: row.hpp:82
const srd_decoder_annotation_row * srd_row_
Definition: row.hpp:84
bool has_hidden_classes() const
Definition: row.cpp:180
const QColor get_bright_class_color(uint32_t ann_class_id) const
Definition: row.cpp:162
map< uint32_t, QColor > ann_bright_class_color_
Definition: row.hpp:89
Decoder * decoder_
Definition: row.hpp:83
bool visible() const
Definition: row.cpp:106
static std::string data()
Definition: exprtk.hpp:39024
const QColor color() const
Definition: row.cpp:146
const srd_decoder_annotation_row * get_srd_row() const
Definition: row.cpp:53
bool operator==(const Row &other) const
Definition: row.cpp:200
uint32_t index() const
Definition: row.cpp:101
const QString description() const
Definition: row.cpp:72
const Decoder * decoder() const
Definition: row.cpp:48
map< uint32_t, QColor > ann_class_color_
Definition: row.hpp:88
const QString title() const
Definition: row.cpp:58
vector< AnnotationClass * > ann_classes() const
Definition: row.cpp:79
const QColor get_dark_class_color(uint32_t ann_class_id) const
Definition: row.cpp:171
const QColor get_class_color(uint32_t ann_class_id) const
Definition: row.cpp:151
void set_base_color(QColor base_color)
Definition: row.cpp:118
bool class_is_visible(uint32_t ann_class_id) const
Definition: row.cpp:189