00001 #ifndef VIDEOVISUALSPECTRUM_H 00002 #define VIDEOVISUALSPECTRUM_H 00003 00004 #include <QVector> 00005 #include "videovisual.h" 00006 00007 class VideoVisualSpectrum : public VideoVisual 00008 { 00009 public: 00010 VideoVisualSpectrum(AudioPlayer *audio, MythRender *render); 00011 virtual ~VideoVisualSpectrum(); 00012 00013 virtual void Draw(const QRect &area, MythPainter *painter, 00014 QPaintDevice* device); 00015 virtual QString Name(void) { return "Spectrum"; } 00016 virtual void prepare(); 00017 00018 protected: 00019 virtual bool Initialise(const QRect &area); 00020 virtual bool InitialisePriv(void); 00021 virtual void DrawPriv(MythPainter *painter, QPaintDevice* device); 00022 00023 int m_numSamples; 00024 QVector<double> m_magnitudes; 00025 double m_range; 00026 LogScale m_scale; 00027 double m_scaleFactor; 00028 double m_falloff; 00029 00030 fftw_plan lplan; 00031 fftw_plan rplan; 00032 myth_fftw_float *lin; 00033 myth_fftw_float *rin; 00034 myth_fftw_complex *lout; 00035 myth_fftw_complex *rout; 00036 00037 private: 00038 QVector<QRect> m_rects; 00039 int m_barWidth; 00040 }; 00041 00042 #endif // VIDEOVISUALSPECTRUM_H
1.6.3