GNU Radio Manual and C++ API Reference  3.7.13.4
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 
26 #include <qwt_color_map.h>
27 #include <qwt_scale_draw.h>
29 
30 namespace gr {
31  namespace qtgui {
32 
33  enum data_type_t {
34  INT = 0,
43  };
44 
45  } /* namespace qtgui */
46 } /* namespace gr */
47 
49 {
50 public:
51  FreqOffsetAndPrecisionClass(const int freqPrecision)
52  {
53  _frequencyPrecision = freqPrecision;
54  _centerFrequency = 0;
55  }
56 
58  {
59  }
60 
61  virtual unsigned int getFrequencyPrecision() const
62  {
63  return _frequencyPrecision;
64  }
65 
66  virtual void setFrequencyPrecision(const unsigned int newPrecision)
67  {
68  _frequencyPrecision = newPrecision;
69  }
70 
71  virtual double getCenterFrequency() const
72  {
73  return _centerFrequency;
74  }
75 
76  virtual void setCenterFrequency(const double newFreq)
77  {
78  _centerFrequency = newFreq;
79  }
80 
81 protected:
82 
83 private:
84  unsigned int _frequencyPrecision;
85  double _centerFrequency;
86 };
87 
89 {
90 public:
92  {
93  _zeroTime = 0;
94  _secondsPerLine = 1.0;
95  }
96 
97  virtual ~TimeScaleData()
98  {
99  }
100 
102  {
103  return _zeroTime;
104  }
105 
106  virtual void setZeroTime(const gr::high_res_timer_type newTime)
107  {
108  _zeroTime = newTime - gr::high_res_timer_epoch();
109  }
110 
111  virtual void setSecondsPerLine(const double newTime)
112  {
113  _secondsPerLine = newTime;
114  }
115 
116  virtual double getSecondsPerLine() const
117  {
118  return _secondsPerLine;
119  }
120 
121 
122 protected:
123 
124 private:
125  gr::high_res_timer_type _zeroTime;
126  double _secondsPerLine;
127 
128 };
129 
130 /***********************************************************************
131  * Text scale widget to provide X (freq) axis text
132  **********************************************************************/
134 {
135 public:
136  FreqDisplayScaleDraw(const unsigned int precision)
137  : QwtScaleDraw(), FreqOffsetAndPrecisionClass(precision)
138  {
139  }
140 
141  virtual QwtText label(double value) const
142  {
143  return QString("%1").arg(value, 0, 'f', getFrequencyPrecision());
144  }
145 
146  virtual void initiateUpdate(void)
147  {
148  invalidateCache();
149  }
150 
151 protected:
152 
153 private:
154 
155 };
156 
157 namespace gr {
158  namespace qtgui {
159 
160  enum graph_t {
164  };
165 
166  } /* namespace qtgui */
167 } /* namespace gr */
168 
169 
170 enum{
178 };
179 
180 class ColorMap_MultiColor: public QwtLinearColorMap
181 {
182 public:
184  QwtLinearColorMap(Qt::darkCyan, Qt::white)
185  {
186  addColorStop(0.25, Qt::cyan);
187  addColorStop(0.5, Qt::yellow);
188  addColorStop(0.75, Qt::red);
189  }
190 };
191 
192 class ColorMap_WhiteHot: public QwtLinearColorMap
193 {
194 public:
196  QwtLinearColorMap(Qt::black, Qt::white)
197  {
198  }
199 };
200 
201 class ColorMap_BlackHot: public QwtLinearColorMap
202 {
203 public:
205  QwtLinearColorMap(Qt::white, Qt::black)
206  {
207  }
208 };
209 
210 class ColorMap_Incandescent: public QwtLinearColorMap
211 {
212 public:
214  QwtLinearColorMap(Qt::black, Qt::white)
215  {
216  addColorStop(0.5, Qt::darkRed);
217  }
218 };
219 
220 class ColorMap_Sunset: public QwtLinearColorMap
221 {
222 public:
224  QwtLinearColorMap(QColor(0, 0, 0, 0),
225  QColor(255, 255, 193, 255))
226  {
227  addColorStop(0.167, QColor( 86, 0, 153, 45));
228  addColorStop(0.333, QColor(147, 51, 119, 91));
229  addColorStop(0.500, QColor(226, 51, 71, 140));
230  addColorStop(0.667, QColor(255, 109, 0, 183));
231  addColorStop(0.833, QColor(255, 183, 0, 221));
232  }
233 };
234 
235 class ColorMap_Cool: public QwtLinearColorMap
236 {
237 public:
239  QwtLinearColorMap(QColor(0, 0, 0, 0),
240  QColor(255, 255, 255, 255))
241  {
242  addColorStop(0.167, QColor( 0, 0, 127, 25));
243  addColorStop(0.333, QColor( 0, 63, 153, 86));
244  addColorStop(0.500, QColor(76, 114, 178, 127));
245  addColorStop(0.667, QColor(153, 165, 204, 178));
246  addColorStop(0.833, QColor(204, 216, 229, 211));
247  }
248 };
249 
250 class ColorMap_UserDefined: public QwtLinearColorMap
251 {
252 public:
253  ColorMap_UserDefined(QColor low, QColor high):
254  QwtLinearColorMap(low, high)
255  {
256  }
257 };
258 
259 #endif //QTGUI_TYPES_H
data_type_t
Definition: qtgui_types.h:33
Definition: qtgui_types.h:162
TimeScaleData()
Definition: qtgui_types.h:91
virtual gr::high_res_timer_type getZeroTime() const
Definition: qtgui_types.h:101
ColorMap_Incandescent()
Definition: qtgui_types.h:213
virtual double getCenterFrequency() const
Definition: qtgui_types.h:71
Definition: qtgui_types.h:176
high_res_timer_type high_res_timer_epoch(void)
Get the tick count at the epoch.
Definition: high_res_timer.h:150
Definition: qtgui_types.h:88
Definition: qtgui_types.h:133
ColorMap_MultiColor()
Definition: qtgui_types.h:183
Definition: qtgui_types.h:41
Definition: qtgui_types.h:40
Definition: qtgui_types.h:173
virtual void setCenterFrequency(const double newFreq)
Definition: qtgui_types.h:76
Definition: qtgui_types.h:42
graph_t
Definition: qtgui_types.h:160
Definition: qtgui_types.h:38
virtual ~TimeScaleData()
Definition: qtgui_types.h:97
Definition: qtgui_types.h:235
virtual ~FreqOffsetAndPrecisionClass()
Definition: qtgui_types.h:57
Definition: qtgui_types.h:175
Definition: qtgui_types.h:177
Definition: qtgui_types.h:39
virtual unsigned int getFrequencyPrecision() const
Definition: qtgui_types.h:61
Definition: qtgui_types.h:34
Definition: qtgui_types.h:48
Definition: qtgui_types.h:36
Definition: qtgui_types.h:37
Definition: qtgui_types.h:172
Definition: qtgui_types.h:174
Include this header to use the message passing features.
Definition: logger.h:695
Definition: qtgui_types.h:163
virtual void setZeroTime(const gr::high_res_timer_type newTime)
Definition: qtgui_types.h:106
Definition: qtgui_types.h:220
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:204
Definition: qtgui_types.h:35
virtual void initiateUpdate(void)
Definition: qtgui_types.h:146
Definition: qtgui_types.h:180
ColorMap_Sunset()
Definition: qtgui_types.h:223
virtual QwtText label(double value) const
Definition: qtgui_types.h:141
ColorMap_WhiteHot()
Definition: qtgui_types.h:195
Definition: qtgui_types.h:192
virtual void setSecondsPerLine(const double newTime)
Definition: qtgui_types.h:111
FreqDisplayScaleDraw(const unsigned int precision)
Definition: qtgui_types.h:136
Definition: qtgui_types.h:171
virtual double getSecondsPerLine() const
Definition: qtgui_types.h:116
Definition: qtgui_types.h:250
Definition: qtgui_types.h:210
FreqOffsetAndPrecisionClass(const int freqPrecision)
Definition: qtgui_types.h:51
virtual void setFrequencyPrecision(const unsigned int newPrecision)
Definition: qtgui_types.h:66
ColorMap_Cool()
Definition: qtgui_types.h:238
Definition: qtgui_types.h:161
Definition: qtgui_types.h:201
ColorMap_UserDefined(QColor low, QColor high)
Definition: qtgui_types.h:253