From 322e065b19c922e2a9cc1710876e32d100453181 Mon Sep 17 00:00:00 2001
From: trondeau
Date: Wed, 15 Apr 2009 03:49:04 +0000
Subject: Merging qtdevel2 branch -r10565:10849. This adds a lot of fixes and
 capabilities to the qtgui package. Most importantly, it allows interaction
 between PyQt and the C++ Qt routines in the gnuradio library.

git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10850 221aa14e-8319-0410-a670-987f0aec2ac5
---
 gr-qtgui/src/lib/qtgui_sink_f.h | 57 +++++++++++++++++++++++++++++++----------
 1 file changed, 44 insertions(+), 13 deletions(-)

(limited to 'gr-qtgui/src/lib/qtgui_sink_f.h')

diff --git a/gr-qtgui/src/lib/qtgui_sink_f.h b/gr-qtgui/src/lib/qtgui_sink_f.h
index 3f0e785c6..f220bc6c1 100644
--- a/gr-qtgui/src/lib/qtgui_sink_f.h
+++ b/gr-qtgui/src/lib/qtgui_sink_f.h
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2008 Free Software Foundation, Inc.
+ * Copyright 2008,2009 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -24,27 +24,46 @@
 #define INCLUDED_QTGUI_SINK_F_H
 
 #include <gr_block.h>
+#include <gr_firdes.h>
 #include <gri_fft.h>
 #include <qapplication.h>
 #include <qtgui.h>
+#include <Python.h>
 #include "SpectrumGUIClass.h"
 
-
 class qtgui_sink_f;
 typedef boost::shared_ptr<qtgui_sink_f> qtgui_sink_f_sptr;
 
-qtgui_sink_f_sptr qtgui_make_sink_f (int fftsize, const std::vector<float> &window,
-				     float fmin=-0.5, float fmax=0.5, const std::string &name="Display");
+qtgui_sink_f_sptr qtgui_make_sink_f (int fftsize, int wintype,
+				     float fmin=-0.5, float fmax=0.5,
+				     const std::string &name="Spectrum Display",
+				     bool plotfreq=true, bool plotwaterfall=true,
+				     bool plotwaterfall3d=true, bool plottime=true,
+				     bool plotconst=true,
+				     QWidget *parent=NULL);
 
 class qtgui_sink_f : public gr_block
 {
 private:
-  friend qtgui_sink_f_sptr qtgui_make_sink_f (int fftsize, const std::vector<float> &window,
-					      float fmin, float fmax, const std::string &name);
-  qtgui_sink_f (int fftsize, const std::vector<float> &window,
-		float fmin, float fmax, const std::string &name);
-  
+  friend qtgui_sink_f_sptr qtgui_make_sink_f (int fftsize, int wintype,
+					      float fmin, float fmax,
+					      const std::string &name,
+					      bool plotfreq, bool plotwaterfall,
+					      bool plotwaterfall3d, bool plottime,
+					      bool plotconst,
+					      QWidget *parent);
+  qtgui_sink_f (int fftsize, int wintype,
+		float fmin, float fmax, 
+		const std::string &name,
+		bool plotfreq, bool plotwaterfall,
+		bool plotwaterfall3d, bool plottime,
+		bool plotconst,
+		QWidget *parent);
+
+  void initialize();
+
   int d_fftsize;
+  gr_firdes::win_type d_wintype;
   std::vector<float> d_window;
   float d_fmin;
   float d_fmax;
@@ -54,23 +73,35 @@ private:
 
   bool d_shift;
   gri_fft_complex *d_fft;
-  gr_complex *fftdata;
+  gr_complex *d_fftdata;
 
   int d_index;
   float *d_residbuf;
 
+  bool d_plotfreq, d_plotwaterfall, d_plotwaterfall3d, d_plottime, d_plotconst;
+
+  QWidget *d_parent;
   SpectrumGUIClass *d_main_gui; 
 
+  void windowreset();
+  void buildwindow();
+  void fftresize();
   void fft(const float *data_in, int size, gr_complex *data_out);
   
 public:
   ~qtgui_sink_f();
-  void start_app();
+  void exec_();
   void lock();
   void unlock();
+  QWidget*  qwidget();
+  PyObject* pyqwidget();
+
+  void set_frequency_range(const double centerfreq,
+			   const double startfreq,
+			   const double stopfreq);
 
-  QApplication *d_qApplication
-;
+  QApplication *d_qApplication;
+  qtgui_obj *d_object;
 
   int general_work (int noutput_items,
 		    gr_vector_int &ninput_items,
-- 
cgit