GNU Radio Manual and C++ API Reference  v3.9.2.0-89-gb7c7001e
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  * SPDX-License-Identifier: GPL-3.0-or-later
8  *
9  */
10 
11 #ifndef QTGUI_TYPES_H
12 #define QTGUI_TYPES_H
13 
15 #include <qwt_color_map.h>
16 #include <qwt_scale_draw.h>
17 
18 namespace gr {
19 namespace qtgui {
20 
22  INT = 0,
31 };
32 
33 } /* namespace qtgui */
34 } /* namespace gr */
35 
37 {
38 public:
39  FreqOffsetAndPrecisionClass(const int freqPrecision)
40  {
41  _frequencyPrecision = freqPrecision;
42  _centerFrequency = 0;
43  }
44 
46 
47  virtual unsigned int getFrequencyPrecision() const { return _frequencyPrecision; }
48 
49  virtual void setFrequencyPrecision(const unsigned int newPrecision)
50  {
51  _frequencyPrecision = newPrecision;
52  }
53 
54  virtual double getCenterFrequency() const { return _centerFrequency; }
55 
56  virtual void setCenterFrequency(const double newFreq) { _centerFrequency = newFreq; }
57 
58 protected:
59 private:
60  unsigned int _frequencyPrecision;
61  double _centerFrequency;
62 };
63 
65 {
66 public:
68  {
69  _zeroTime = 0;
70  _secondsPerLine = 1.0;
71  }
72 
73  virtual ~TimeScaleData() {}
74 
75  virtual gr::high_res_timer_type getZeroTime() const { return _zeroTime; }
76 
77  virtual void setZeroTime(const gr::high_res_timer_type newTime)
78  {
79  _zeroTime = newTime - gr::high_res_timer_epoch();
80  }
81 
82  virtual void setSecondsPerLine(const double newTime) { _secondsPerLine = newTime; }
83 
84  virtual double getSecondsPerLine() const { return _secondsPerLine; }
85 
86 
87 protected:
88 private:
89  gr::high_res_timer_type _zeroTime;
90  double _secondsPerLine;
91 };
92 
93 /***********************************************************************
94  * Text scale widget to provide X (freq) axis text
95  **********************************************************************/
97 {
98 public:
99  FreqDisplayScaleDraw(const unsigned int precision)
100  : QwtScaleDraw(), FreqOffsetAndPrecisionClass(precision)
101  {
102  }
103 
104  QwtText label(double value) const override
105  {
106  return QString("%1").arg(value, 0, 'f', getFrequencyPrecision());
107  }
108 
109  virtual void initiateUpdate(void) { invalidateCache(); }
110 
111 protected:
112 private:
113 };
114 
115 namespace gr {
116 namespace qtgui {
117 
118 enum graph_t {
122 };
123 
132 };
133 
134 } /* namespace qtgui */
135 } /* namespace gr */
136 
137 
138 class ColorMap_MultiColor : public QwtLinearColorMap
139 {
140 public:
141  ColorMap_MultiColor() : QwtLinearColorMap(Qt::darkCyan, Qt::white)
142  {
143  addColorStop(0.25, Qt::cyan);
144  addColorStop(0.5, Qt::yellow);
145  addColorStop(0.75, Qt::red);
146  }
147 };
148 
149 class ColorMap_WhiteHot : public QwtLinearColorMap
150 {
151 public:
152  ColorMap_WhiteHot() : QwtLinearColorMap(Qt::black, Qt::white) {}
153 };
154 
155 class ColorMap_BlackHot : public QwtLinearColorMap
156 {
157 public:
158  ColorMap_BlackHot() : QwtLinearColorMap(Qt::white, Qt::black) {}
159 };
160 
161 class ColorMap_Incandescent : public QwtLinearColorMap
162 {
163 public:
164  ColorMap_Incandescent() : QwtLinearColorMap(Qt::black, Qt::white)
165  {
166  addColorStop(0.5, Qt::darkRed);
167  }
168 };
169 
170 class ColorMap_Sunset : public QwtLinearColorMap
171 {
172 public:
173  ColorMap_Sunset() : QwtLinearColorMap(QColor(0, 0, 0, 0), QColor(255, 255, 193, 255))
174  {
175  addColorStop(0.167, QColor(86, 0, 153, 45));
176  addColorStop(0.333, QColor(147, 51, 119, 91));
177  addColorStop(0.500, QColor(226, 51, 71, 140));
178  addColorStop(0.667, QColor(255, 109, 0, 183));
179  addColorStop(0.833, QColor(255, 183, 0, 221));
180  }
181 };
182 
183 class ColorMap_Cool : public QwtLinearColorMap
184 {
185 public:
186  ColorMap_Cool() : QwtLinearColorMap(QColor(0, 0, 0, 0), QColor(255, 255, 255, 255))
187  {
188  addColorStop(0.167, QColor(0, 0, 127, 25));
189  addColorStop(0.333, QColor(0, 63, 153, 86));
190  addColorStop(0.500, QColor(76, 114, 178, 127));
191  addColorStop(0.667, QColor(153, 165, 204, 178));
192  addColorStop(0.833, QColor(204, 216, 229, 211));
193  }
194 };
195 
196 class ColorMap_UserDefined : public QwtLinearColorMap
197 {
198 public:
199  ColorMap_UserDefined(QColor low, QColor high) : QwtLinearColorMap(low, high) {}
200 };
201 
202 #endif // QTGUI_TYPES_H
Definition: qtgui_types.h:156
ColorMap_BlackHot()
Definition: qtgui_types.h:158
Definition: qtgui_types.h:184
ColorMap_Cool()
Definition: qtgui_types.h:186
Definition: qtgui_types.h:162
ColorMap_Incandescent()
Definition: qtgui_types.h:164
Definition: qtgui_types.h:139
ColorMap_MultiColor()
Definition: qtgui_types.h:141
Definition: qtgui_types.h:171
ColorMap_Sunset()
Definition: qtgui_types.h:173
Definition: qtgui_types.h:197
ColorMap_UserDefined(QColor low, QColor high)
Definition: qtgui_types.h:199
Definition: qtgui_types.h:150
ColorMap_WhiteHot()
Definition: qtgui_types.h:152
Definition: qtgui_types.h:97
FreqDisplayScaleDraw(const unsigned int precision)
Definition: qtgui_types.h:99
virtual void initiateUpdate(void)
Definition: qtgui_types.h:109
QwtText label(double value) const override
Definition: qtgui_types.h:104
Definition: qtgui_types.h:37
virtual void setCenterFrequency(const double newFreq)
Definition: qtgui_types.h:56
virtual ~FreqOffsetAndPrecisionClass()
Definition: qtgui_types.h:45
virtual unsigned int getFrequencyPrecision() const
Definition: qtgui_types.h:47
FreqOffsetAndPrecisionClass(const int freqPrecision)
Definition: qtgui_types.h:39
virtual void setFrequencyPrecision(const unsigned int newPrecision)
Definition: qtgui_types.h:49
virtual double getCenterFrequency() const
Definition: qtgui_types.h:54
Definition: qtgui_types.h:65
TimeScaleData()
Definition: qtgui_types.h:67
virtual ~TimeScaleData()
Definition: qtgui_types.h:73
virtual double getSecondsPerLine() const
Definition: qtgui_types.h:84
virtual void setZeroTime(const gr::high_res_timer_type newTime)
Definition: qtgui_types.h:77
virtual void setSecondsPerLine(const double newTime)
Definition: qtgui_types.h:82
virtual gr::high_res_timer_type getZeroTime() const
Definition: qtgui_types.h:75
intensity_t
Definition: qtgui_types.h:124
@ INTENSITY_COLOR_MAP_TYPE_MULTI_COLOR
Definition: qtgui_types.h:125
@ INTENSITY_COLOR_MAP_TYPE_USER_DEFINED
Definition: qtgui_types.h:129
@ INTENSITY_COLOR_MAP_TYPE_WHITE_HOT
Definition: qtgui_types.h:126
@ INTENSITY_COLOR_MAP_TYPE_SUNSET
Definition: qtgui_types.h:130
@ INTENSITY_COLOR_MAP_TYPE_COOL
Definition: qtgui_types.h:131
@ INTENSITY_COLOR_MAP_TYPE_BLACK_HOT
Definition: qtgui_types.h:127
@ INTENSITY_COLOR_MAP_TYPE_INCANDESCENT
Definition: qtgui_types.h:128
data_type_t
Definition: qtgui_types.h:21
@ INT_VEC
Definition: qtgui_types.h:27
@ INT
Definition: qtgui_types.h:22
@ DOUBLE
Definition: qtgui_types.h:24
@ FLOAT_VEC
Definition: qtgui_types.h:28
@ STRING
Definition: qtgui_types.h:26
@ DOUBLE_VEC
Definition: qtgui_types.h:29
@ COMPLEX_VEC
Definition: qtgui_types.h:30
@ COMPLEX
Definition: qtgui_types.h:25
@ FLOAT
Definition: qtgui_types.h:23
graph_t
Definition: qtgui_types.h:118
@ NUM_GRAPH_VERT
Definition: qtgui_types.h:121
@ NUM_GRAPH_NONE
Definition: qtgui_types.h:119
@ NUM_GRAPH_HORIZ
Definition: qtgui_types.h:120
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition: basic_block.h:29
high_res_timer_type high_res_timer_epoch(void)
Get the tick count at the epoch.
Definition: high_res_timer.h:145
signed long long high_res_timer_type
Typedef for the timer tick count.
Definition: high_res_timer.h:39