src/LED.cpp

Wed, 29 Jun 2022 21:28:13 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 29 Jun 2022 21:28:13 +0200
changeset 316
dcd472be9ae8
parent 314
04b93b656b60
permissions
-rw-r--r--

Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.

314
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 #include <math.h>
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 #include <QPainter>
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 #include <QGradient>
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 #include <QPaintDevice>
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 #include <QTimer>
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 #include "LED.h"
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 LED(QWidget* parent) :
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 QWidget(parent),
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 diameter_(5),
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 color_(QColor("red")),
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 alignment_(Qt::AlignCenter),
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 initialState_(true),
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 state_(true),
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 flashRate_(200),
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 flashing_(false)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 timer_ = new QTimer(this);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 connect(timer_, SIGNAL(timeout()), this, SLOT(toggleState()));
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 setDiameter(diameter_);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 ~LED()
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 double LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 diameter() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 return diameter_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 setDiameter(double diameter)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 diameter_ = diameter;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 pixX_ = round(double(height())/heightMM());
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 pixY_ = round(double(width())/widthMM());
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 diamX_ = diameter_*pixX_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 diamY_ = diameter_*pixY_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 update();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 QColor LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 color() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 return color_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 setColor(const QColor& color)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 color_ = color;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 update();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 Qt::Alignment LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 alignment() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 return alignment_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 setAlignment(Qt::Alignment alignment)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 alignment_ = alignment;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 update();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 setFlashRate(int rate)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 flashRate_ = rate;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 update();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 setFlashing(bool flashing)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 flashing_ = flashing;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 update();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 startFlashing()
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 setFlashing(true);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 stopFlashing()
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 setFlashing(false);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 setState(bool state)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 state_ = state;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 update();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 toggleState()
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 state_ = !state_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
121 update();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124 int LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 heightForWidth(int width) const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 return width;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 QSize LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 sizeHint() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 return QSize(diamX_, diamY_);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 QSize LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137 minimumSizeHint() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
139 return QSize(diamX_, diamY_);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
140 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
141
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
142 void LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 paintEvent(QPaintEvent *event)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145 Q_UNUSED(event);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
146
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 QPainter p(this);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
148
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
149 QRect geo = geometry();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
150 int width = geo.width();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
151 int height = geo.height();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
152
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
153 int x=0, y=0;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
154 if ( alignment_ & Qt::AlignLeft )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
155 x = 0;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 else if ( alignment_ & Qt::AlignRight )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
157 x = width-diamX_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 else if ( alignment_ & Qt::AlignHCenter )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 x = (width-diamX_)/2;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160 else if ( alignment_ & Qt::AlignJustify )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161 x = 0;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
162
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
163 if ( alignment_ & Qt::AlignTop )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
164 y = 0;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 else if ( alignment_ & Qt::AlignBottom )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166 y = height-diamY_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
167 else if ( alignment_ & Qt::AlignVCenter )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 y = (height-diamY_)/2;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
170 QRadialGradient g(x+diamX_/2, y+diamY_/2, diamX_*0.4,
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
171 diamX_*0.4, diamY_*0.4);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
173 g.setColorAt(0, Qt::white);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
174 if ( state_ )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
175 g.setColorAt(1, color_);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
176 else
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
177 g.setColorAt(1, Qt::black);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 QBrush brush(g);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
180 p.setPen(color_);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 p.setRenderHint(QPainter::Antialiasing, true);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
182 p.setBrush(brush);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
183 p.drawEllipse(x, y, diamX_-1, diamY_-1);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 if ( flashRate_ > 0 && flashing_ )
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186 timer_->start(flashRate_);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
187 else
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
188 timer_->stop();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
190
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
191 bool LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
192 state() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 return state_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
196
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
197 bool LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
198 isFlashing() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
199 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
200 return flashing_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
201 }
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
202
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
203 int LED::
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
204 flashRate() const
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
205 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
206 return flashRate_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
207 }

mercurial