00001 // Copyright (c) 2000-2001 Brad Hughes <bhughes@trolltech.com> 00002 // 00003 // Use, modification and distribution is allowed without limitation, 00004 // warranty, or liability of any kind. 00005 // 00006 00007 #ifndef __mainvisual_h 00008 #define __mainvisual_h 00009 00010 #include <vector> 00011 using namespace std; 00012 00013 #include "constants.h" 00014 00015 #include <QResizeEvent> 00016 #include <QPaintEvent> 00017 #include <QStringList> 00018 #include <QHideEvent> 00019 #include <QWidget> 00020 #include <QPixmap> 00021 #include <QTimer> 00022 #include <QList> 00023 00024 // MythTV headers 00025 #include <visual.h> 00026 00027 // MythMusic 00028 #include "visualize.h" 00029 00030 class MythUIVideo; 00031 00032 // base class to handle things like frame rate... 00033 class MainVisual : public QObject, public MythTV::Visual 00034 { 00035 Q_OBJECT 00036 00037 public: 00038 MainVisual(MythUIVideo *visualizer); 00039 virtual ~MainVisual(); 00040 00041 VisualBase *visual(void) const { return m_vis; } 00042 void setVisual(const QString &name); 00043 00044 void stop(void); 00045 00046 void resize(const QSize &size); 00047 00048 void add(uchar *, unsigned long, unsigned long, int, int); 00049 void prepare(void); 00050 00051 void customEvent(QEvent *); 00052 00053 void setFrameRate(int newfps); 00054 int frameRate(void) const { return m_fps; } 00055 00056 QStringList getVisualizations(void) { return m_visualizers; } 00057 00058 int getCurrentVisual(void) { return m_currentVisualizer; } 00059 00060 public slots: 00061 void timeout(); 00062 00063 private: 00064 MythUIVideo *m_visualizerVideo; 00065 QStringList m_visualizers; 00066 int m_currentVisualizer; 00067 VisualBase *m_vis; 00068 QPixmap m_pixmap; 00069 QList<VisualNode*> m_nodes; 00070 bool m_playing; 00071 int m_fps; 00072 unsigned long m_samples; 00073 QTimer *m_updateTimer; 00074 }; 00075 00076 #endif // __mainvisual_h 00077
1.6.3