// Maintainer: Max Howell // Authors: Mark Kretschmann & Max Howell (C) 2003-4 // Copyright: See COPYING file that comes with this distribution // #ifndef BARANALYZER_H #define BARANALYZER_H #include "analyzerbase.h" typedef std::vector aroofMemVec; class BarAnalyzer : public Analyzer::Base { Q_OBJECT public: Q_INVOKABLE BarAnalyzer(QWidget*); void init(); virtual void analyze(QPainter& p, const Scope&, bool new_frame); // virtual void transform( Scope& ); /** * Resizes the widget to a new geometry according to @p e * @param e The resize-event */ void resizeEvent(QResizeEvent* e); uint BAND_COUNT; int MAX_DOWN; int MAX_UP; static const uint ROOF_HOLD_TIME = 48; static const int ROOF_VELOCITY_REDUCTION_FACTOR = 32; static const uint NUM_ROOFS = 16; static const uint COLUMN_WIDTH = 4; static const char* kName; protected: QPixmap m_pixRoof[NUM_ROOFS]; // vector m_roofMem[BAND_COUNT]; // Scope m_bands; //copy of the Scope to prevent creating/destroying a Scope // every iteration uint m_lvlMapper[256]; std::vector m_roofMem; std::vector barVector; // positions of bars std::vector roofVector; // positions of roofs std::vector roofVelocityVector; // speed that roofs falls const QPixmap* gradient() const { return &m_pixBarGradient; } private: QPixmap m_pixBarGradient; QPixmap m_pixCompose; Scope m_scope; // so we don't create a vector every frame QColor m_bg; }; #endif