GNU Radio Manual and C++ API Reference  3.8.4.0
The Free & Open Software Radio Ecosystem
qtgui_types.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2012,2016 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  *
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22 
23 #ifndef QTGUI_TYPES_H
24 #define QTGUI_TYPES_H
25 
27 #include <qwt_color_map.h>
28 #include <qwt_scale_draw.h>
29 #include <qwt_text.h>
30 
31 namespace gr {
32 namespace qtgui {
33 
35  INT = 0,
44 };
45 
46 } /* namespace qtgui */
47 } /* namespace gr */
48 
50 {
51 public:
52  FreqOffsetAndPrecisionClass(const int freqPrecision)
53  {
54  _frequencyPrecision = freqPrecision;
55  _centerFrequency = 0;
56  }
57 
59 
60  virtual unsigned int getFrequencyPrecision() const { return _frequencyPrecision; }
61 
62  virtual void setFrequencyPrecision(const unsigned int newPrecision)
63  {
64  _frequencyPrecision = newPrecision;
65  }
66 
67  virtual double getCenterFrequency() const { return _centerFrequency; }
68 
69  virtual void setCenterFrequency(const double newFreq) { _centerFrequency = newFreq; }
70 
71 protected:
72 private:
73  unsigned int _frequencyPrecision;
74  double _centerFrequency;
75 };
76 
78 {
79 public:
81  {
82  _zeroTime = 0;
83  _secondsPerLine = 1.0;
84  }
85 
86  virtual ~TimeScaleData() {}
87 
88  virtual gr::high_res_timer_type getZeroTime() const { return _zeroTime; }
89 
90  virtual void setZeroTime(const gr::high_res_timer_type newTime)
91  {
92  _zeroTime = newTime - gr::high_res_timer_epoch();
93  }
94 
95  virtual void setSecondsPerLine(const double newTime) { _secondsPerLine = newTime; }
96 
97  virtual double getSecondsPerLine() const { return _secondsPerLine; }
98 
99 
100 protected:
101 private:
102  gr::high_res_timer_type _zeroTime;
103  double _secondsPerLine;
104 };
105 
106 /***********************************************************************
107  * Text scale widget to provide X (freq) axis text
108  **********************************************************************/
110 {
111 public:
112  FreqDisplayScaleDraw(const unsigned int precision)
113  : QwtScaleDraw(), FreqOffsetAndPrecisionClass(precision)
114  {
115  }
116 
117  virtual QwtText label(double value) const
118  {
119  return QString("%1").arg(value, 0, 'f', getFrequencyPrecision());
120  }
121 
122  virtual void initiateUpdate(void) { invalidateCache(); }
123 
124 protected:
125 private:
126 };
127 
128 namespace gr {
129 namespace qtgui {
130 
131 enum graph_t {
135 };
136 
137 } /* namespace qtgui */
138 } /* namespace gr */
139 
140 
141 enum {
149 };
150 
151 class ColorMap_MultiColor : public QwtLinearColorMap
152 {
153 public:
154  ColorMap_MultiColor() : QwtLinearColorMap(Qt::darkCyan, Qt::white)
155  {
156  addColorStop(0.25, Qt::cyan);
157  addColorStop(0.5, Qt::yellow);
158  addColorStop(0.75, Qt::red);
159  }
160 };
161 
162 class ColorMap_WhiteHot : public QwtLinearColorMap
163 {
164 public:
165  ColorMap_WhiteHot() : QwtLinearColorMap(Qt::black, Qt::white) {}
166 };
167 
168 class ColorMap_BlackHot : public QwtLinearColorMap
169 {
170 public:
171  ColorMap_BlackHot() : QwtLinearColorMap(Qt::white, Qt::black) {}
172 };
173 
174 class ColorMap_Incandescent : public QwtLinearColorMap
175 {
176 public:
177  ColorMap_Incandescent() : QwtLinearColorMap(Qt::black, Qt::white)
178  {
179  addColorStop(0.5, Qt::darkRed);
180  }
181 };
182 
183 class ColorMap_Sunset : public QwtLinearColorMap
184 {
185 public:
186  ColorMap_Sunset() : QwtLinearColorMap(QColor(0, 0, 0, 0), QColor(255, 255, 193, 255))
187  {
188  addColorStop(0.167, QColor(86, 0, 153, 45));
189  addColorStop(0.333, QColor(147, 51, 119, 91));
190  addColorStop(0.500, QColor(226, 51, 71, 140));
191  addColorStop(0.667, QColor(255, 109, 0, 183));
192  addColorStop(0.833, QColor(255, 183, 0, 221));
193  }
194 };
195 
196 class ColorMap_Cool : public QwtLinearColorMap
197 {
198 public:
199  ColorMap_Cool() : QwtLinearColorMap(QColor(0, 0, 0, 0), QColor(255, 255, 255, 255))
200  {
201  addColorStop(0.167, QColor(0, 0, 127, 25));
202  addColorStop(0.333, QColor(0, 63, 153, 86));
203  addColorStop(0.500, QColor(76, 114, 178, 127));
204  addColorStop(0.667, QColor(153, 165, 204, 178));
205  addColorStop(0.833, QColor(204, 216, 229, 211));
206  }
207 };
208 
209 class ColorMap_UserDefined : public QwtLinearColorMap
210 {
211 public:
212  ColorMap_UserDefined(QColor low, QColor high) : QwtLinearColorMap(low, high) {}
213 };
214 
215 #endif // QTGUI_TYPES_H
data_type_t
Definition: qtgui_types.h:34
Definition: qtgui_types.h:133
TimeScaleData()
Definition: qtgui_types.h:80
ColorMap_Incandescent()
Definition: qtgui_types.h:177
virtual QwtText label(double value) const
Definition: qtgui_types.h:117
Definition: qtgui_types.h:147
virtual gr::high_res_timer_type getZeroTime() const
Definition: qtgui_types.h:88
high_res_timer_type high_res_timer_epoch(void)
Get the tick count at the epoch.
Definition: high_res_timer.h:159
virtual unsigned int getFrequencyPrecision() const
Definition: qtgui_types.h:60
Definition: qtgui_types.h:77
Definition: qtgui_types.h:109
ColorMap_MultiColor()
Definition: qtgui_types.h:154
Definition: qtgui_types.h:42
Definition: qtgui_types.h:41
Definition: qtgui_types.h:144
virtual void setCenterFrequency(const double newFreq)
Definition: qtgui_types.h:69
Definition: qtgui_types.h:43
graph_t
Definition: qtgui_types.h:131
Definition: qtgui_types.h:39
virtual ~TimeScaleData()
Definition: qtgui_types.h:86
Definition: qtgui_types.h:196
virtual double getSecondsPerLine() const
Definition: qtgui_types.h:97
virtual ~FreqOffsetAndPrecisionClass()
Definition: qtgui_types.h:58
Definition: qtgui_types.h:146
Definition: qtgui_types.h:148
Definition: qtgui_types.h:40
Definition: qtgui_types.h:35
Definition: qtgui_types.h:49
Definition: qtgui_types.h:37
Definition: qtgui_types.h:38
Definition: qtgui_types.h:143
Definition: qtgui_types.h:145
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition: basic_block.h:46
Definition: qtgui_types.h:134
virtual void setZeroTime(const gr::high_res_timer_type newTime)
Definition: qtgui_types.h:90
Definition: qtgui_types.h:183
signed long long high_res_timer_type
Typedef for the timer tick count.
Definition: high_res_timer.h:49
ColorMap_BlackHot()
Definition: qtgui_types.h:171
Definition: qtgui_types.h:36
virtual void initiateUpdate(void)
Definition: qtgui_types.h:122
Definition: qtgui_types.h:151
ColorMap_Sunset()
Definition: qtgui_types.h:186
virtual double getCenterFrequency() const
Definition: qtgui_types.h:67
ColorMap_WhiteHot()
Definition: qtgui_types.h:165
Definition: qtgui_types.h:162
virtual void setSecondsPerLine(const double newTime)
Definition: qtgui_types.h:95
FreqDisplayScaleDraw(const unsigned int precision)
Definition: qtgui_types.h:112
Definition: qtgui_types.h:142
Definition: qtgui_types.h:209
Definition: qtgui_types.h:174
FreqOffsetAndPrecisionClass(const int freqPrecision)
Definition: qtgui_types.h:52
virtual void setFrequencyPrecision(const unsigned int newPrecision)
Definition: qtgui_types.h:62
ColorMap_Cool()
Definition: qtgui_types.h:199
Definition: qtgui_types.h:132
Definition: qtgui_types.h:168
ColorMap_UserDefined(QColor low, QColor high)
Definition: qtgui_types.h:212