4f8fb978269b3407bf886a2ac9bd344569c79e8b
[debian/gnuradio] / gr-qtgui / src / lib / SpectrumGUIClass.h
1 #ifndef SPECTRUM_GUI_CLASS_HPP
2 #define SPECTRUM_GUI_CLASS_HPP
3
4 //#include <mutexClass.hpp>
5 #include <qwidget.h>
6 #include <qapplication.h>
7 #include <qlabel.h>
8 #include <qslider.h>
9 #include <spectrumUpdateEvents.h>
10
11 //#include <Windowing.hpp>
12
13 class SpectrumDisplayForm;
14 #include <spectrumdisplayform.h>
15
16 #include <cmath>
17
18 #include <complex>
19 #include <vector>
20 #include <string>
21
22 class SpectrumGUIClass{
23 public:
24   SpectrumGUIClass(const uint64_t, const uint64_t, const double, const double);
25   ~SpectrumGUIClass();
26   void Reset();
27
28   void OpenSpectrumWindow(QWidget*);
29   void SetDisplayTitle(const std::string);
30
31   bool GetWindowOpenFlag();
32   void SetWindowOpenFlag(const bool);
33
34   void SetFrequencyRange(const double, const double, const double);
35   double GetStartFrequency()const;
36   double GetStopFrequency()const;
37   double GetCenterFrequency()const;
38
39   void UpdateWindow(const bool, const std::complex<float>*, const uint64_t, const float*, const uint64_t, const float*, const uint64_t, const double, const timespec, const bool);
40
41   float GetPowerValue()const;
42   void SetPowerValue(const float);
43
44   int GetWindowType()const;
45   void SetWindowType(const int);
46
47   int GetFFTSize()const;
48   int GetFFTSizeIndex()const;
49   void SetFFTSize(const int);
50
51   timespec GetLastGUIUpdateTime()const;
52   void SetLastGUIUpdateTime(const timespec);
53
54   unsigned int GetPendingGUIUpdateEvents()const;
55   void IncrementPendingGUIUpdateEvents();
56   void DecrementPendingGUIUpdateEvents();
57   void ResetPendingGUIUpdateEvents();
58
59   static const long MAX_FFT_SIZE = /*1048576*/32768;
60   static const long MIN_FFT_SIZE = 1024;
61
62 protected:
63
64 private:
65
66   //MutexClass* _windowStateLock;
67   int64_t _dataPoints;
68   std::string _title;
69   double _centerFrequency;
70   double _startFrequency;
71   double _stopFrequency;
72   float _powerValue;
73   bool _windowOpennedFlag;
74   int _windowType;
75   int64_t _lastDataPointCount;
76   int _fftSize;
77   timespec _lastGUIUpdateTime;
78   unsigned int _pendingGUIUpdateEventsCount;
79   int _droppedEntriesCount;
80   bool _fftBuffersCreatedFlag;
81
82   SpectrumDisplayForm* _spectrumDisplayForm;
83
84   std::complex<float>* _fftPoints;
85   double* _realTimeDomainPoints;
86   double* _imagTimeDomainPoints;
87 };
88
89 #endif /* SPECTRUM_GUI_CLASS_HPP */