Imported Upstream version 3.2.2
[debian/gnuradio] / gnuradio-core / src / lib / general / gr_fft_vcc.h
index b8bb0733fb52ab380bc272bac8e610b55626fca7..2ab9241ec3364f059bd57eef12fa7a3f6427ef25 100644 (file)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2004 Free Software Foundation, Inc.
+ * Copyright 2004,2007,2008 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
 
 #include <gr_sync_block.h>
 
-class gri_fft_complex;
-
 class gr_fft_vcc;
 typedef boost::shared_ptr<gr_fft_vcc> gr_fft_vcc_sptr;
 
 gr_fft_vcc_sptr
-gr_make_fft_vcc (int fft_size, bool forward, const std::vector<float> window);
+gr_make_fft_vcc (int fft_size, bool forward, const std::vector<float> &window, bool shift=false);
 
 /*!
  * \brief Compute forward or reverse FFT.  complex vector in / complex vector out.
- * \ingroup block
+ * \ingroup dft_blk
+ *
+ * Abstract base class
  */
-
 class gr_fft_vcc : public gr_sync_block
 {
+protected:
   friend gr_fft_vcc_sptr
-  gr_make_fft_vcc (int fft_size, bool forward, const std::vector<float> window);
+  gr_make_fft_vcc (int fft_size, bool forward, const std::vector<float> &window, bool shift);
 
-  unsigned int    d_fft_size;
+  unsigned int        d_fft_size;
   std::vector<float>   d_window;
-  gri_fft_complex *d_fft;
+  bool d_forward;
+  bool d_shift;
 
-  gr_fft_vcc (int fft_size, bool forward, const std::vector<float> window);
+  gr_fft_vcc (const std::string &name, int fft_size, bool forward,
+             const std::vector<float> &window, bool shift);
 
  public:
   ~gr_fft_vcc ();
 
-  int work (int noutput_items,
-           gr_vector_const_void_star &input_items,
-           gr_vector_void_star &output_items);
-  bool set_window(const std::vector<float> window);
+  bool set_window(const std::vector<float> &window);
 };
 
-
 #endif /* INCLUDED_GR_FFT_VCC_H */