![]() |
Mixxx
|
00001 00002 #ifndef WAVEFORMVIEWERFACTORY_H 00003 #define WAVEFORMVIEWERFACTORY_H 00004 00005 #include <QList> 00006 #include <QDomNode> 00007 #include <QWidget> 00008 #include <QTimer> 00009 #include <QGLContext> 00010 00011 #include "configobject.h" 00012 #include "widget/wwidget.h" 00013 00014 class WVisualSimple; 00015 class WWaveformViewer; 00016 class WGLWaveformViewer; 00017 class WaveformRenderer; 00018 00019 enum WaveformViewerType { 00020 WAVEFORM_SIMPLE=0, 00021 WAVEFORM_WIDGET, 00022 WAVEFORM_GL, 00023 WAVEFORM_INVALID 00024 }; 00025 00026 00027 class WaveformViewerFactory { 00028 private: 00029 /* shouldn't be accessible */ 00030 WaveformViewerFactory() {}; 00031 ~WaveformViewerFactory() {}; 00032 static QList<QWidget*> m_viewers; 00033 static QList<WVisualSimple*> m_simpleViewers; 00034 static QList<WWaveformViewer*> m_visualViewers; 00035 static QList<WGLWaveformViewer*> m_visualGLViewers; 00036 static QTimer s_waveformUpdateTimer; 00037 00038 public: 00039 static WaveformViewerType createWaveformViewer(const char* group, QWidget *pParent, ConfigObject<ConfigValue> *pConfig, QWidget **target, WaveformRenderer *pWaveformRenderer); 00040 static void destroyWaveformViewer(QWidget *pWaveformViewer); 00041 static WaveformViewerType getWaveformViewerType(QWidget *pWaveformViewer); 00042 static int numViewers(WaveformViewerType type); 00043 static bool isDirectRenderingEnabled(); 00044 }; 00045 00046 #endif