GNU Radio Manual and C++ API Reference  3.9.1.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  * 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
high_res_timer.h
gr::qtgui::INTENSITY_COLOR_MAP_TYPE_INCANDESCENT
@ INTENSITY_COLOR_MAP_TYPE_INCANDESCENT
Definition: qtgui_types.h:128
FreqDisplayScaleDraw::label
QwtText label(double value) const override
Definition: qtgui_types.h:106
FreqOffsetAndPrecisionClass::getFrequencyPrecision
virtual unsigned int getFrequencyPrecision() const
Definition: qtgui_types.h:47
gr::qtgui::INTENSITY_COLOR_MAP_TYPE_USER_DEFINED
@ INTENSITY_COLOR_MAP_TYPE_USER_DEFINED
Definition: qtgui_types.h:129
gr::qtgui::INTENSITY_COLOR_MAP_TYPE_MULTI_COLOR
@ INTENSITY_COLOR_MAP_TYPE_MULTI_COLOR
Definition: qtgui_types.h:125
TimeScaleData::~TimeScaleData
virtual ~TimeScaleData()
Definition: qtgui_types.h:73
gr::qtgui::NUM_GRAPH_HORIZ
@ NUM_GRAPH_HORIZ
Definition: qtgui_types.h:120
gr::qtgui::FLOAT
@ FLOAT
Definition: qtgui_types.h:23
gr::qtgui::intensity_t
intensity_t
Definition: qtgui_types.h:124
ColorMap_WhiteHot
Definition: qtgui_types.h:149
ColorMap_BlackHot
Definition: qtgui_types.h:155
gr::qtgui::INTENSITY_COLOR_MAP_TYPE_WHITE_HOT
@ INTENSITY_COLOR_MAP_TYPE_WHITE_HOT
Definition: qtgui_types.h:126
TimeScaleData::getSecondsPerLine
virtual double getSecondsPerLine() const
Definition: qtgui_types.h:84
FreqOffsetAndPrecisionClass
Definition: qtgui_types.h:36
ColorMap_MultiColor::ColorMap_MultiColor
ColorMap_MultiColor()
Definition: qtgui_types.h:141
ColorMap_MultiColor
Definition: qtgui_types.h:138
gr::qtgui::INT
@ INT
Definition: qtgui_types.h:22
ColorMap_UserDefined::ColorMap_UserDefined
ColorMap_UserDefined(QColor low, QColor high)
Definition: qtgui_types.h:199
gr::qtgui::DOUBLE_VEC
@ DOUBLE_VEC
Definition: qtgui_types.h:29
gr::qtgui::STRING
@ STRING
Definition: qtgui_types.h:26
gr::qtgui::INTENSITY_COLOR_MAP_TYPE_COOL
@ INTENSITY_COLOR_MAP_TYPE_COOL
Definition: qtgui_types.h:131
gr::qtgui::DOUBLE
@ DOUBLE
Definition: qtgui_types.h:24
gr::qtgui::COMPLEX
@ COMPLEX
Definition: qtgui_types.h:25
gr::qtgui::INTENSITY_COLOR_MAP_TYPE_BLACK_HOT
@ INTENSITY_COLOR_MAP_TYPE_BLACK_HOT
Definition: qtgui_types.h:127
gr::qtgui::FLOAT_VEC
@ FLOAT_VEC
Definition: qtgui_types.h:28
FreqOffsetAndPrecisionClass::~FreqOffsetAndPrecisionClass
virtual ~FreqOffsetAndPrecisionClass()
Definition: qtgui_types.h:45
gr::high_res_timer_epoch
high_res_timer_type high_res_timer_epoch(void)
Get the tick count at the epoch.
Definition: high_res_timer.h:148
ColorMap_Incandescent
Definition: qtgui_types.h:161
FreqOffsetAndPrecisionClass::setCenterFrequency
virtual void setCenterFrequency(const double newFreq)
Definition: qtgui_types.h:56
ColorMap_Cool::ColorMap_Cool
ColorMap_Cool()
Definition: qtgui_types.h:186
gr::qtgui::NUM_GRAPH_VERT
@ NUM_GRAPH_VERT
Definition: qtgui_types.h:121
TimeScaleData::setZeroTime
virtual void setZeroTime(const gr::high_res_timer_type newTime)
Definition: qtgui_types.h:77
FreqDisplayScaleDraw::initiateUpdate
virtual void initiateUpdate(void)
Definition: qtgui_types.h:111
ColorMap_Sunset::ColorMap_Sunset
ColorMap_Sunset()
Definition: qtgui_types.h:173
gr::qtgui::data_type_t
data_type_t
Definition: qtgui_types.h:21
gr::qtgui::graph_t
graph_t
Definition: qtgui_types.h:118
ColorMap_Sunset
Definition: qtgui_types.h:170
TimeScaleData
Definition: qtgui_types.h:64
ColorMap_Incandescent::ColorMap_Incandescent
ColorMap_Incandescent()
Definition: qtgui_types.h:164
FreqDisplayScaleDraw::FreqDisplayScaleDraw
FreqDisplayScaleDraw(const unsigned int precision)
Definition: qtgui_types.h:101
TimeScaleData::setSecondsPerLine
virtual void setSecondsPerLine(const double newTime)
Definition: qtgui_types.h:82
gr::high_res_timer_type
signed long long high_res_timer_type
Typedef for the timer tick count.
Definition: high_res_timer.h:38
gr::qtgui::INTENSITY_COLOR_MAP_TYPE_SUNSET
@ INTENSITY_COLOR_MAP_TYPE_SUNSET
Definition: qtgui_types.h:130
TimeScaleData::TimeScaleData
TimeScaleData()
Definition: qtgui_types.h:67
FreqOffsetAndPrecisionClass::FreqOffsetAndPrecisionClass
FreqOffsetAndPrecisionClass(const int freqPrecision)
Definition: qtgui_types.h:39
FreqDisplayScaleDraw
Definition: qtgui_types.h:96
ColorMap_BlackHot::ColorMap_BlackHot
ColorMap_BlackHot()
Definition: qtgui_types.h:158
gr
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition: basic_block.h:29
FreqOffsetAndPrecisionClass::setFrequencyPrecision
virtual void setFrequencyPrecision(const unsigned int newPrecision)
Definition: qtgui_types.h:49
ColorMap_UserDefined
Definition: qtgui_types.h:196
ColorMap_Cool
Definition: qtgui_types.h:183
ColorMap_WhiteHot::ColorMap_WhiteHot
ColorMap_WhiteHot()
Definition: qtgui_types.h:152
FreqOffsetAndPrecisionClass::getCenterFrequency
virtual double getCenterFrequency() const
Definition: qtgui_types.h:54
gr::qtgui::INT_VEC
@ INT_VEC
Definition: qtgui_types.h:27
gr::qtgui::NUM_GRAPH_NONE
@ NUM_GRAPH_NONE
Definition: qtgui_types.h:119
gr::qtgui::COMPLEX_VEC
@ COMPLEX_VEC
Definition: qtgui_types.h:30
TimeScaleData::getZeroTime
virtual gr::high_res_timer_type getZeroTime() const
Definition: qtgui_types.h:75