summaryrefslogtreecommitdiff
path: root/gr-qtgui/lib/FrequencyDisplayPlot.h
diff options
context:
space:
mode:
Diffstat (limited to 'gr-qtgui/lib/FrequencyDisplayPlot.h')
-rw-r--r--gr-qtgui/lib/FrequencyDisplayPlot.h123
1 files changed, 72 insertions, 51 deletions
diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.h b/gr-qtgui/lib/FrequencyDisplayPlot.h
index 5c3ea708c3..679ebf1cc4 100644
--- a/gr-qtgui/lib/FrequencyDisplayPlot.h
+++ b/gr-qtgui/lib/FrequencyDisplayPlot.h
@@ -25,29 +25,28 @@
#include <stdint.h>
#include <cstdio>
-#include <qwt_plot.h>
-#include <qwt_painter.h>
-#include <qwt_plot_canvas.h>
-#include <qwt_plot_curve.h>
-#include <qwt_scale_engine.h>
-#include <qwt_scale_widget.h>
-#include <qwt_plot_zoomer.h>
-#include <qwt_plot_panner.h>
-#include <qwt_plot_marker.h>
-#include <qwt_plot_magnifier.h>
-#include <gruel/high_res_timer.h>
-#include <qwt_symbol.h>
-#include <qtgui_util.h>
-
-#if QWT_VERSION >= 0x060000
-#include <qwt_compat.h>
-#endif
-
-class FrequencyDisplayPlot:public QwtPlot{
+#include <vector>
+#include "DisplayPlot.h"
+
+class FrequencyDisplayPlot: public DisplayPlot
+{
Q_OBJECT
+ Q_PROPERTY ( QColor min_fft_color READ GetMinFFTColor WRITE SetMinFFTColor )
+ Q_PROPERTY ( QColor max_fft_color READ GetMaxFFTColor WRITE SetMaxFFTColor )
+ Q_PROPERTY ( bool min_fft_visible READ GetMinFFTVisible WRITE SetMinFFTVisible )
+ Q_PROPERTY ( bool max_fft_visible READ GetMaxFFTVisible WRITE SetMaxFFTVisible )
+ Q_PROPERTY ( QColor marker_lower_intensity_color READ GetMarkerLowerIntensityColor WRITE SetMarkerLowerIntensityColor )
+ Q_PROPERTY ( bool marker_lower_intensity_visible READ GetMarkerLowerIntensityVisible WRITE SetMarkerLowerIntensityVisible )
+ Q_PROPERTY ( QColor marker_upper_intensity_color READ GetMarkerUpperIntensityColor WRITE SetMarkerUpperIntensityColor )
+ Q_PROPERTY ( bool marker_upper_intensity_visible READ GetMarkerUpperIntensityVisible WRITE SetMarkerUpperIntensityVisible )
+ Q_PROPERTY ( QColor marker_peak_amplitude_color READ GetMarkerPeakAmplitudeColor WRITE SetMarkerPeakAmplitudeColor )
+ Q_PROPERTY ( QColor marker_noise_floor_amplitude_color READ GetMarkerNoiseFloorAmplitudeColor WRITE SetMarkerNoiseFloorAmplitudeColor )
+ Q_PROPERTY ( bool marker_noise_floor_amplitude_visible READ GetMarkerNoiseFloorAmplitudeVisible WRITE SetMarkerNoiseFloorAmplitudeVisible )
+ Q_PROPERTY ( QColor marker_CF_color READ GetMarkerCFColor WRITE SetMarkerCFColor )
+
public:
- FrequencyDisplayPlot(QWidget*);
+ FrequencyDisplayPlot(int nplots, QWidget*);
virtual ~FrequencyDisplayPlot();
void SetFrequencyRange(const double, const double,
@@ -57,82 +56,104 @@ public:
double GetStartFrequency()const;
double GetStopFrequency()const;
- void PlotNewData(const double* dataPoints, const int64_t numDataPoints,
+ void PlotNewData(const std::vector<double*> dataPoints,
+ const int64_t numDataPoints,
+ const double noiseFloorAmplitude, const double peakFrequency,
+ const double peakAmplitude, const double timeInterval);
+
+ // Old method to be removed
+ void PlotNewData(const double* dataPoints,
+ const int64_t numDataPoints,
const double noiseFloorAmplitude, const double peakFrequency,
const double peakAmplitude, const double timeInterval);
void ClearMaxData();
void ClearMinData();
- void SetMaxFFTVisible(const bool);
- void SetMinFFTVisible(const bool);
+ void replot();
- virtual void replot();
-
- void set_yaxis(double min, double max);
+ void setYaxis(double min, double max);
void SetTraceColour (QColor);
void SetBGColour (QColor c);
void ShowCFMarker (const bool);
+ const bool GetMaxFFTVisible() const;
+ const bool GetMinFFTVisible() const;
+ const QColor GetMinFFTColor() const;
+ const QColor GetMaxFFTColor() const;
+ const QColor GetMarkerLowerIntensityColor () const;
+ const bool GetMarkerLowerIntensityVisible () const;
+ const QColor GetMarkerUpperIntensityColor () const;
+ const bool GetMarkerUpperIntensityVisible () const;
+ const QColor GetMarkerPeakAmplitudeColor () const;
+ const bool GetMarkerNoiseFloorAmplitudeVisible () const;
+ const QColor GetMarkerNoiseFloorAmplitudeColor () const;
+ const QColor GetMarkerCFColor () const;
+
public slots:
- void resizeSlot( QSize *e );
+ void SetMaxFFTVisible(const bool);
+ void SetMinFFTVisible(const bool);
+ void SetMinFFTColor (QColor c);
+ void SetMaxFFTColor (QColor c);
+ void SetMarkerLowerIntensityColor (QColor c);
+ void SetMarkerLowerIntensityVisible (bool visible);
+ void SetMarkerUpperIntensityColor (QColor c);
+ void SetMarkerUpperIntensityVisible (bool visible);
+ void SetMarkerPeakAmplitudeColor (QColor c);
+ void SetMarkerNoiseFloorAmplitudeVisible (bool visible);
+ void SetMarkerNoiseFloorAmplitudeColor (QColor c);
+ void SetMarkerCFColor (QColor c);
+
void SetLowerIntensityLevel(const double);
void SetUpperIntensityLevel(const double);
- // Because of the preprocessing of slots in QT, these are no
- // easily separated by the version check. Make one for each
- // version until it's worked out.
void OnPickerPointSelected(const QwtDoublePoint & p);
void OnPickerPointSelected6(const QPointF & p);
-signals:
- void plotPointSelected(const QPointF p);
-
-protected:
-
private:
-
void _resetXAxisPoints();
+ std::vector<double*> _dataPoints;
+
+ QwtPlotCurve* _min_fft_plot_curve;
+ QwtPlotCurve* _max_fft_plot_curve;
+ QColor _min_fft_color;
+ bool _min_fft_visible;
+ QColor _max_fft_color;
+ bool _max_fft_visible;
+ QColor _marker_lower_intensity_color;
+ bool _marker_lower_intensity_visible;
+ QColor _marker_upper_intensity_color;
+ bool _marker_upper_intensity_visible;
+ QColor _marker_peak_amplitude_color;
+ QColor _marker_noise_floor_amplitude_color;
+ bool _marker_noise_floor_amplitude_visible;
+ QColor _marker_CF_color;
+
double _startFrequency;
double _stopFrequency;
double _maxYAxis;
double _minYAxis;
- QwtPlotCurve* _fft_plot_curve;
- QwtPlotCurve* _min_fft_plot_curve;
- QwtPlotCurve* _max_fft_plot_curve;
-
QwtPlotMarker* _lower_intensity_marker;
QwtPlotMarker* _upper_intensity_marker;
- QwtPlotPanner* _panner;
- QwtPlotZoomer* _zoomer;
-
QwtPlotMarker *_markerPeakAmplitude;
QwtPlotMarker *_markerNoiseFloorAmplitude;
QwtPlotMarker *_markerCF;
- QwtDblClickPlotPicker *_picker;
-
- QwtPlotMagnifier *_magnifier;
-
- double* _dataPoints;
double* _xAxisPoints;
int _xAxisMultiplier;
double* _minFFTPoints;
double* _maxFFTPoints;
- int64_t _numPoints;
double _peakFrequency;
double _peakAmplitude;
double _noiseFloorAmplitude;
- gruel::high_res_timer_type _lastReplot;
-
bool _useCenterFrequencyFlag;
};