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.h155
1 files changed, 88 insertions, 67 deletions
diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.h b/gr-qtgui/lib/FrequencyDisplayPlot.h
index 5c3ea708c3..22d2be0055 100644
--- a/gr-qtgui/lib/FrequencyDisplayPlot.h
+++ b/gr-qtgui/lib/FrequencyDisplayPlot.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2008,2009,2010,2011 Free Software Foundation, Inc.
+ * Copyright 2008-2011 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -25,115 +25,136 @@
#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,
- const double, const bool,
+ void setFrequencyRange(const double, const double,
const double units=1000.0,
const std::string &strunits = "kHz");
- double GetStartFrequency()const;
- double GetStopFrequency()const;
+ 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);
- void ClearMaxData();
- void ClearMinData();
-
- void SetMaxFFTVisible(const bool);
- void SetMinFFTVisible(const bool);
+ // 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);
- virtual void replot();
+ void clearMaxData();
+ void clearMinData();
- void set_yaxis(double min, double max);
+ void replot();
- void SetTraceColour (QColor);
- void SetBGColour (QColor c);
- void ShowCFMarker (const bool);
+ void setYaxis(double min, double max);
-public slots:
- void resizeSlot( QSize *e );
- void SetLowerIntensityLevel(const double);
- void SetUpperIntensityLevel(const double);
+ void setTraceColour (QColor);
+ void setBGColour (QColor c);
+ void showCFMarker (const bool);
- // 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);
+ 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;
-signals:
- void plotPointSelected(const QPointF p);
-
-protected:
+public slots:
+ 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);
+
+ void onPickerPointSelected(const QwtDoublePoint & p);
+ void onPickerPointSelected6(const QPointF & p);
+
+ void setAutoScale(bool state);
private:
-
void _resetXAxisPoints();
+ void _autoScale(double bottom, double top);
+
+ 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;
};
#endif /* FREQUENCY_DISPLAY_PLOT_HPP */