GNU Radio Manual and C++ API Reference 3.9.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 * 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
18namespace gr {
19namespace qtgui {
20
22 INT = 0,
31};
32
33} /* namespace qtgui */
34} /* namespace gr */
35
37{
38public:
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
58protected:
59private:
60 unsigned int _frequencyPrecision;
61 double _centerFrequency;
62};
63
65{
66public:
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
87protected:
88private:
90 double _secondsPerLine;
91};
92
93/***********************************************************************
94 * Text scale widget to provide X (freq) axis text
95 **********************************************************************/
97{
98public:
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
111protected:
112private:
113};
114
115namespace gr {
116namespace qtgui {
117
122};
123
132};
133
134} /* namespace qtgui */
135} /* namespace gr */
136
137
138class ColorMap_MultiColor : public QwtLinearColorMap
139{
140public:
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
149class ColorMap_WhiteHot : public QwtLinearColorMap
150{
151public:
152 ColorMap_WhiteHot() : QwtLinearColorMap(Qt::black, Qt::white) {}
153};
154
155class ColorMap_BlackHot : public QwtLinearColorMap
156{
157public:
158 ColorMap_BlackHot() : QwtLinearColorMap(Qt::white, Qt::black) {}
159};
160
161class ColorMap_Incandescent : public QwtLinearColorMap
162{
163public:
164 ColorMap_Incandescent() : QwtLinearColorMap(Qt::black, Qt::white)
165 {
166 addColorStop(0.5, Qt::darkRed);
167 }
168};
169
170class ColorMap_Sunset : public QwtLinearColorMap
171{
172public:
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
183class ColorMap_Cool : public QwtLinearColorMap
184{
185public:
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
196class ColorMap_UserDefined : public QwtLinearColorMap
197{
198public:
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