28 #define QMMP_VISUAL_INTERVAL 40
29 #define QMMP_VISUAL_NODE_SIZE 512 //samples
46 explicit Visual(QWidget *parent, Qt::WindowFlags f = Qt::WindowFlags());
55 static QList<VisualFactory*> factories();
66 static void setEnabled(
VisualFactory *factory,
bool enable =
true);
75 static void add(
Visual*visual);
79 static void remove(
Visual*);
86 static void initialize(QWidget *parent, QObject *receiver =
nullptr,
const char *member =
nullptr);
90 static QList<Visual *> *visuals();
99 static void addAudio(
float *pcm,
int samples,
int channels, qint64 ts, qint64 delay);
103 static void clearBuffer();
109 virtual void start();
121 void changeFullScreen(
bool state);
131 void fullscreenByUser(QWidget *widget,
bool state);
138 virtual void showEvent(QShowEvent *event)
override;
143 virtual void hideEvent(QHideEvent *event)
override;
148 virtual void closeEvent(QCloseEvent *event)
override final;
156 bool takeData(
float *left,
float *right =
nullptr);
160 virtual void process(
float *left,
float *right) = 0;
164 virtual void process(
bool state);
171 QTimer *m_timer =
nullptr;
172 bool m_running =
false;
173 int m_rows = 0, m_cols = 0;
174 int *m_intern_vis_data =
nullptr;
175 QAction *m_screenAction =
nullptr;
178 static void checkFactories();
179 static void createVisualization(
VisualFactory *factory, QWidget *parent);
182 static QHash<const VisualFactory*, QString> *
m_files;
static QWidget * m_parentClass
static QHash< const VisualFactory *, QString > * m_files
static VisualBuffer m_buffer
static const char * m_member
static QList< VisualFactory * > * m_factories
static QList< Visual * > m_visuals
The Visual class provides the base interface class of visualizations.
static QHash< VisualFactory *, Visual * > m_vis_map
Visual plugin interface (visual factory).
static QObject * m_receiver