1 #ifndef WATERFALL_DISPLAY_PLOT_HPP
2 #define WATERFALL_DISPLAY_PLOT_HPP
6 #include <qwt_plot_zoomer.h>
7 #include <qwt_plot_panner.h>
9 #include <plot_waterfall.h>
11 #include <highResTimeFunctions.h>
13 class WaterfallDisplayPlot:public QwtPlot{
17 WaterfallDisplayPlot(QWidget*);
18 virtual ~WaterfallDisplayPlot();
22 void SetFrequencyRange(const double, const double,
23 const double, const bool,
24 const double units=1000.0,
25 const std::string &strunits = "kHz");
26 double GetStartFrequency()const;
27 double GetStopFrequency()const;
29 void PlotNewData(const double* dataPoints, const int64_t numDataPoints,
30 const double timePerFFT, const timespec timestamp,
31 const int droppedFrames);
33 void SetIntensityRange(const double minIntensity, const double maxIntensity);
35 virtual void replot(void);
37 int GetIntensityColorMapType()const;
38 void SetIntensityColorMapType( const int, const QColor, const QColor );
39 const QColor GetUserDefinedLowIntensityColor()const;
40 const QColor GetUserDefinedHighIntensityColor()const;
42 static const int INTENSITY_COLOR_MAP_TYPE_MULTI_COLOR = 0;
43 static const int INTENSITY_COLOR_MAP_TYPE_WHITE_HOT = 1;
44 static const int INTENSITY_COLOR_MAP_TYPE_BLACK_HOT = 2;
45 static const int INTENSITY_COLOR_MAP_TYPE_INCANDESCENT = 3;
46 static const int INTENSITY_COLOR_MAP_TYPE_USER_DEFINED = 4;
49 void resizeSlot( QSize *s );
52 void UpdatedLowerIntensityLevel(const double);
53 void UpdatedUpperIntensityLevel(const double);
58 void _UpdateIntensityRangeDisplay();
60 double _startFrequency;
61 double _stopFrequency;
63 PlotWaterfall *d_spectrogram;
65 QwtPlotPanner* _panner;
66 QwtPlotZoomer* _zoomer;
68 WaterfallData* _waterfallData;
72 bool _useCenterFrequencyFlag;
76 double _displayIntervalTime;
78 int _intensityColorMapType;
79 QColor _userDefinedLowIntensityColor;
80 QColor _userDefinedHighIntensityColor;
83 #endif /* WATERFALL_DISPLAY_PLOT_HPP */