better filter bandwidths
[debian/gnuradio] / gr-qtgui / src / lib / fftdisplay.h
1 #ifndef FFT_DISPLAY_H
2 #define FFT_DISPLAY_H
3
4 #include <gr_complex.h>
5
6 #include <vector>
7
8 #include <qwidget.h>
9 #include <qwt_plot.h>
10 #include <qevent.h>
11
12 class fft_display_event:public QCustomEvent{
13 public:
14         fft_display_event(std::vector<gr_complex>*, const float, const float);
15         ~fft_display_event();
16
17         const std::vector<gr_complex>& get_fft_data()const;
18         float get_start_frequency()const;
19         float get_stop_frequency()const;
20
21         static const int EVENT_TYPE_ID;
22 protected:
23
24 private:
25         std::vector<gr_complex> d_fft_data;
26         float d_start_frequency;
27         float d_stop_frequency;
28 };
29
30 class fft_display:public QwtPlot{
31         Q_OBJECT
32 public: 
33         fft_display(const unsigned int, QWidget* = ((QWidget*)0));
34         virtual ~fft_display();
35
36         virtual void customEvent(QCustomEvent*);
37
38         void set_start_frequency(const float);
39         float get_start_frequency()const;
40
41         void set_stop_frequency(const float);
42         float get_stop_frequency()const;
43
44         unsigned int get_fft_bin_size()const;
45
46 public slots:
47         virtual void set_data( const std::vector<gr_complex>& );
48         virtual void update_display();
49
50 protected:
51
52 private:
53         std::vector<gr_complex>* d_fft_data;
54         double* d_plot_data;
55         double* d_x_data;
56         unsigned int d_fft_bin_size;
57         float d_start_frequency;
58         float d_stop_frequency;
59 };
60
61 #endif /* FFT_DISPLAY_H */