GNU Radio Manual and C++ API Reference 3.8.5.0
The Free & Open Software Radio Ecosystem
 
Loading...
Searching...
No Matches
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
31namespace gr {
32namespace qtgui {
33
45
46} /* namespace qtgui */
47} /* namespace gr */
48
50{
51public:
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
71protected:
72private:
73 unsigned int _frequencyPrecision;
74 double _centerFrequency;
75};
76
78{
79public:
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
100protected:
101private:
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{
111public:
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
124protected:
125private:
126};
127
128namespace gr {
129namespace qtgui {
130
131enum graph_t {
132 NUM_GRAPH_NONE = 0,
133 NUM_GRAPH_HORIZ,
134 NUM_GRAPH_VERT,
135};
136
137} /* namespace qtgui */
138} /* namespace gr */
139
140
141enum {
149};
150
151class ColorMap_MultiColor : public QwtLinearColorMap
152{
153public:
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
162class ColorMap_WhiteHot : public QwtLinearColorMap
163{
164public:
165 ColorMap_WhiteHot() : QwtLinearColorMap(Qt::black, Qt::white) {}
166};
167
168class ColorMap_BlackHot : public QwtLinearColorMap
169{
170public:
171 ColorMap_BlackHot() : QwtLinearColorMap(Qt::white, Qt::black) {}
172};
173
174class ColorMap_Incandescent : public QwtLinearColorMap
175{
176public:
177 ColorMap_Incandescent() : QwtLinearColorMap(Qt::black, Qt::white)
178 {
179 addColorStop(0.5, Qt::darkRed);
180 }
181};
182
183class ColorMap_Sunset : public QwtLinearColorMap
184{
185public:
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
196class ColorMap_Cool : public QwtLinearColorMap
197{
198public:
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
209class ColorMap_UserDefined : public QwtLinearColorMap
210{
211public:
212 ColorMap_UserDefined(QColor low, QColor high) : QwtLinearColorMap(low, high) {}
213};
214
215#endif // QTGUI_TYPES_H
Definition qtgui_types.h:169
ColorMap_BlackHot()
Definition qtgui_types.h:171
Definition qtgui_types.h:197
ColorMap_Cool()
Definition qtgui_types.h:199
Definition qtgui_types.h:175
ColorMap_Incandescent()
Definition qtgui_types.h:177
Definition qtgui_types.h:152
ColorMap_MultiColor()
Definition qtgui_types.h:154
Definition qtgui_types.h:184
ColorMap_Sunset()
Definition qtgui_types.h:186
Definition qtgui_types.h:210
ColorMap_UserDefined(QColor low, QColor high)
Definition qtgui_types.h:212
Definition qtgui_types.h:163
ColorMap_WhiteHot()
Definition qtgui_types.h:165
Definition qtgui_types.h:110
FreqDisplayScaleDraw(const unsigned int precision)
Definition qtgui_types.h:112
virtual void initiateUpdate(void)
Definition qtgui_types.h:122
virtual QwtText label(double value) const
Definition qtgui_types.h:117
Definition qtgui_types.h:50
virtual void setCenterFrequency(const double newFreq)
Definition qtgui_types.h:69
virtual ~FreqOffsetAndPrecisionClass()
Definition qtgui_types.h:58
virtual unsigned int getFrequencyPrecision() const
Definition qtgui_types.h:60
FreqOffsetAndPrecisionClass(const int freqPrecision)
Definition qtgui_types.h:52
virtual void setFrequencyPrecision(const unsigned int newPrecision)
Definition qtgui_types.h:62
virtual double getCenterFrequency() const
Definition qtgui_types.h:67
Definition qtgui_types.h:78
TimeScaleData()
Definition qtgui_types.h:80
virtual ~TimeScaleData()
Definition qtgui_types.h:86
virtual double getSecondsPerLine() const
Definition qtgui_types.h:97
virtual void setZeroTime(const gr::high_res_timer_type newTime)
Definition qtgui_types.h:90
virtual void setSecondsPerLine(const double newTime)
Definition qtgui_types.h:95
virtual gr::high_res_timer_type getZeroTime() const
Definition qtgui_types.h:88
data_type_t
Definition qtgui_types.h:34
@ INT_VEC
Definition qtgui_types.h:40
@ INT
Definition qtgui_types.h:35
@ DOUBLE
Definition qtgui_types.h:37
@ FLOAT_VEC
Definition qtgui_types.h:41
@ STRING
Definition qtgui_types.h:39
@ DOUBLE_VEC
Definition qtgui_types.h:42
@ COMPLEX_VEC
Definition qtgui_types.h:43
@ COMPLEX
Definition qtgui_types.h:38
@ FLOAT
Definition qtgui_types.h:36
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition basic_block.h:46
high_res_timer_type high_res_timer_epoch(void)
Get the tick count at the epoch.
Definition high_res_timer.h:159
signed long long high_res_timer_type
Typedef for the timer tick count.
Definition high_res_timer.h:49
@ INTENSITY_COLOR_MAP_TYPE_BLACK_HOT
Definition qtgui_types.h:144
@ INTENSITY_COLOR_MAP_TYPE_WHITE_HOT
Definition qtgui_types.h:143
@ INTENSITY_COLOR_MAP_TYPE_USER_DEFINED
Definition qtgui_types.h:146
@ INTENSITY_COLOR_MAP_TYPE_INCANDESCENT
Definition qtgui_types.h:145
@ INTENSITY_COLOR_MAP_TYPE_COOL
Definition qtgui_types.h:148
@ INTENSITY_COLOR_MAP_TYPE_SUNSET
Definition qtgui_types.h:147
@ INTENSITY_COLOR_MAP_TYPE_MULTI_COLOR
Definition qtgui_types.h:142