| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | ///////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							| 
									
										
										
										
											2023-11-19 06:43:20 +01:00
										 |  |  | // Copyright (C) 2021-2022 Edouard Griffiths, F4EXB <f4exb06@gmail.com>          //
 | 
					
						
							|  |  |  | // Copyright (C) 2022 Jon Beniston, M7RCE <jon@beniston.com>                     //
 | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // This program is free software; you can redistribute it and/or modify          //
 | 
					
						
							|  |  |  | // it under the terms of the GNU General Public License as published by          //
 | 
					
						
							|  |  |  | // the Free Software Foundation as version 3 of the License, or                  //
 | 
					
						
							|  |  |  | // (at your option) any later version.                                           //
 | 
					
						
							|  |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // This program is distributed in the hope that it will be useful,               //
 | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of                //
 | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the                  //
 | 
					
						
							|  |  |  | // GNU General Public License V3 for more details.                               //
 | 
					
						
							|  |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // You should have received a copy of the GNU General Public License             //
 | 
					
						
							|  |  |  | // along with this program. If not, see <http://www.gnu.org/licenses/>.          //
 | 
					
						
							|  |  |  | ///////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef INCLUDE_SPECTRUMMARKERS_H
 | 
					
						
							|  |  |  | #define INCLUDE_SPECTRUMMARKERS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QString>
 | 
					
						
							|  |  |  | #include <QPointF>
 | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  | #include <QColor>
 | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  | #include "export.h"
 | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-07 19:45:48 +02:00
										 |  |  | struct SDRBASE_API SpectrumHistogramMarker | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  |     enum SpectrumMarkerType | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         SpectrumMarkerTypeManual, | 
					
						
							|  |  |  |         SpectrumMarkerTypePower, | 
					
						
							|  |  |  |         SpectrumMarkerTypePowerMax | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |     QPointF m_point; | 
					
						
							|  |  |  |     float m_frequency; | 
					
						
							|  |  |  |     int m_fftBin; | 
					
						
							|  |  |  |     float m_power; | 
					
						
							| 
									
										
										
										
											2021-08-03 23:12:13 +02:00
										 |  |  |     bool m_holdReset; | 
					
						
							|  |  |  |     float m_powerMax; | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  |     SpectrumMarkerType m_markerType; | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |     QColor m_markerColor; | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |     bool m_show; | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |     QString m_frequencyStr; | 
					
						
							|  |  |  |     QString m_powerStr; | 
					
						
							|  |  |  |     QString m_deltaFrequencyStr; | 
					
						
							|  |  |  |     QString m_deltaPowerStr; | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     static const int m_maxNbOfMarkers = 4; | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     SpectrumHistogramMarker() : | 
					
						
							|  |  |  |         m_point(0, 0), | 
					
						
							|  |  |  |         m_frequency(0), | 
					
						
							|  |  |  |         m_fftBin(0), | 
					
						
							|  |  |  |         m_power(0), | 
					
						
							| 
									
										
										
										
											2021-08-03 23:12:13 +02:00
										 |  |  |         m_holdReset(true), | 
					
						
							|  |  |  |         m_powerMax(0), | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  |         m_markerType(SpectrumMarkerTypeManual), | 
					
						
							|  |  |  |         m_markerColor("white"), | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         m_show(true), | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |         m_frequencyStr(), | 
					
						
							|  |  |  |         m_powerStr(), | 
					
						
							|  |  |  |         m_deltaFrequencyStr(), | 
					
						
							|  |  |  |         m_deltaPowerStr() | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumHistogramMarker( | 
					
						
							|  |  |  |         const QPointF& point, | 
					
						
							|  |  |  |         float frequency, | 
					
						
							|  |  |  |         int   fftBin, | 
					
						
							|  |  |  |         float power, | 
					
						
							| 
									
										
										
										
											2021-08-03 23:12:13 +02:00
										 |  |  |         bool  holdReset, | 
					
						
							|  |  |  |         float powerMax, | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  |         SpectrumMarkerType markerType, | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |         QColor markerColor, | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         bool show, | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |         const QString& frequencyStr, | 
					
						
							|  |  |  |         const QString& powerStr, | 
					
						
							|  |  |  |         const QString& deltaFrequencyStr, | 
					
						
							|  |  |  |         const QString& deltaPowerStr | 
					
						
							|  |  |  |     ) : | 
					
						
							|  |  |  |         m_point(point), | 
					
						
							|  |  |  |         m_frequency(frequency), | 
					
						
							|  |  |  |         m_fftBin(fftBin), | 
					
						
							|  |  |  |         m_power(power), | 
					
						
							| 
									
										
										
										
											2021-08-03 23:12:13 +02:00
										 |  |  |         m_holdReset(holdReset), | 
					
						
							|  |  |  |         m_powerMax(powerMax), | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |         m_markerType(markerType), | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |         m_markerColor(markerColor), | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         m_show(show), | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |         m_frequencyStr(frequencyStr), | 
					
						
							|  |  |  |         m_powerStr(powerStr), | 
					
						
							|  |  |  |         m_deltaFrequencyStr(deltaFrequencyStr), | 
					
						
							|  |  |  |         m_deltaPowerStr(deltaPowerStr) | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumHistogramMarker(const SpectrumHistogramMarker& other) = default; | 
					
						
							|  |  |  |     SpectrumHistogramMarker& operator=(const SpectrumHistogramMarker&) = default; | 
					
						
							| 
									
										
										
										
											2021-08-05 21:03:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QByteArray serialize() const; | 
					
						
							|  |  |  |     bool deserialize(const QByteArray& data); | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-07 19:45:48 +02:00
										 |  |  | struct SDRBASE_API SpectrumWaterfallMarker | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     QPointF m_point; | 
					
						
							|  |  |  |     float m_frequency; | 
					
						
							|  |  |  |     float m_time; | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |     QColor m_markerColor; | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |     bool m_show; | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |     QString m_frequencyStr; | 
					
						
							|  |  |  |     QString m_timeStr; | 
					
						
							|  |  |  |     QString m_deltaFrequencyStr; | 
					
						
							|  |  |  |     QString m_deltaTimeStr; | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     static const int m_maxNbOfMarkers = 4; | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     SpectrumWaterfallMarker() : | 
					
						
							|  |  |  |         m_point(0, 0), | 
					
						
							|  |  |  |         m_frequency(0), | 
					
						
							|  |  |  |         m_time(0), | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  |         m_markerColor("white"), | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         m_show(true), | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |         m_frequencyStr(), | 
					
						
							|  |  |  |         m_timeStr(), | 
					
						
							|  |  |  |         m_deltaFrequencyStr(), | 
					
						
							|  |  |  |         m_deltaTimeStr() | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumWaterfallMarker( | 
					
						
							|  |  |  |         const QPointF& point, | 
					
						
							|  |  |  |         float frequency, | 
					
						
							|  |  |  |         float time, | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |         QColor markerColor, | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         bool show, | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |         const QString& frequencyStr, | 
					
						
							|  |  |  |         const QString& timeStr, | 
					
						
							|  |  |  |         const QString& deltaFrequencyStr, | 
					
						
							|  |  |  |         const QString& deltaTimeStr | 
					
						
							|  |  |  |     ) : | 
					
						
							|  |  |  |         m_point(point), | 
					
						
							|  |  |  |         m_frequency(frequency), | 
					
						
							|  |  |  |         m_time(time), | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |         m_markerColor(markerColor), | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         m_show(show), | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  |         m_frequencyStr(frequencyStr), | 
					
						
							|  |  |  |         m_timeStr(timeStr), | 
					
						
							|  |  |  |         m_deltaFrequencyStr(deltaFrequencyStr), | 
					
						
							|  |  |  |         m_deltaTimeStr(deltaTimeStr) | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumWaterfallMarker(const SpectrumWaterfallMarker& other) = default; | 
					
						
							|  |  |  |     SpectrumWaterfallMarker& operator=(const SpectrumWaterfallMarker&) = default; | 
					
						
							| 
									
										
										
										
											2021-08-05 21:03:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QByteArray serialize() const; | 
					
						
							|  |  |  |     bool deserialize(const QByteArray& data); | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | struct SDRBASE_API SpectrumAnnotationMarker | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |     enum ShowState | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         Hidden, | 
					
						
							|  |  |  |         ShowTop, | 
					
						
							| 
									
										
										
										
											2022-06-24 16:44:44 +01:00
										 |  |  |         ShowFull, | 
					
						
							|  |  |  |         ShowText | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     qint64 m_startFrequency; | 
					
						
							|  |  |  |     uint32_t m_bandwidth; | 
					
						
							|  |  |  |     QColor m_markerColor; | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |     ShowState m_show; | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     QString m_text; | 
					
						
							|  |  |  |     float m_startPos; | 
					
						
							|  |  |  |     float m_stopPos; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumAnnotationMarker() : | 
					
						
							|  |  |  |         m_startFrequency(0), | 
					
						
							|  |  |  |         m_bandwidth(0), | 
					
						
							|  |  |  |         m_markerColor("white"), | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |         m_show(ShowTop), | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         m_text("Text"), | 
					
						
							|  |  |  |         m_startPos(0.0f), | 
					
						
							|  |  |  |         m_stopPos(1.0f) | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumAnnotationMarker( | 
					
						
							|  |  |  |         qint64 startFrequency, | 
					
						
							|  |  |  |         uint32_t bandwidth, | 
					
						
							|  |  |  |         QColor markerColor, | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |         ShowState show, | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         const QString& text | 
					
						
							|  |  |  |     ) : | 
					
						
							|  |  |  |         m_startFrequency(startFrequency), | 
					
						
							|  |  |  |         m_bandwidth(bandwidth), | 
					
						
							|  |  |  |         m_markerColor(markerColor), | 
					
						
							|  |  |  |         m_show(show), | 
					
						
							|  |  |  |         m_text(text), | 
					
						
							|  |  |  |         m_startPos(0.0f), | 
					
						
							|  |  |  |         m_stopPos(1.0f) | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumAnnotationMarker(const SpectrumAnnotationMarker& other) = default; | 
					
						
							|  |  |  |     SpectrumAnnotationMarker& operator=(const SpectrumAnnotationMarker&) = default; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QByteArray serialize() const; | 
					
						
							|  |  |  |     bool deserialize(const QByteArray& data); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-25 11:21:03 +02:00
										 |  |  | #endif // INCLUDE_SPECTRUMMARKERS_H
 |