MythTV master
mainvisual.h
Go to the documentation of this file.
1// Copyright (c) 2000-2001 Brad Hughes <bhughes@trolltech.com>
2//
3// Use, modification and distribution is allowed without limitation,
4// warranty, or liability of any kind.
5//
6
7#ifndef MAINVISUAL_H
8#define MAINVISUAL_H
9
10// C++
11#include <vector>
12
13#include "constants.h"
14
15// Qt
16#include <QHideEvent>
17#include <QList>
18#include <QPaintEvent>
19#include <QPixmap>
20#include <QResizeEvent>
21#include <QStringList>
22#include <QTimer>
23#include <QWidget>
24
25// MythTV headers
26#include <libmyth/visual.h>
27
28// MythMusic
29#include "visualize.h"
30
31class MythUIVideo;
32
33// base class to handle things like frame rate...
34class MainVisual : public QObject, public MythTV::Visual
35{
36 Q_OBJECT
37
38 public:
39 explicit MainVisual(MythUIVideo *visualizer);
40 ~MainVisual() override;
41
42 VisualBase *visual(void) const { return m_vis; }
43 void setVisual(const QString &name);
44
45 void stop(void);
46
47 void resize(QSize size);
48
49 void add(const void *buffer, unsigned long b_len, std::chrono::milliseconds timecode,
50 int source_channel, int bits_per_sample) override; // Visual
51 void prepare(void) override; // Visual
52
53 void customEvent(QEvent *event) override; // QObject
54
55 void setFrameRate(int newfps);
56 int frameRate(void) const { return m_fps; }
57
58 QStringList getVisualizations(void) { return m_visualizers; }
59
60 int getCurrentVisual(void) const { return m_currentVisualizer; }
61
62 public slots:
63 void timeout();
64
65 private:
67 QStringList m_visualizers;
69 VisualBase *m_vis {nullptr};
70 QPixmap m_pixmap;
71 QList<VisualNode*> m_nodes;
72 bool m_playing {false};
73 int m_fps {20};
75 QTimer *m_updateTimer {nullptr};
76};
77
78#endif // MAINVISUAL_H
void timeout()
Definition: mainvisual.cpp:211
void customEvent(QEvent *event) override
Definition: mainvisual.cpp:267
unsigned long m_samples
Definition: mainvisual.h:74
void add(const void *buffer, unsigned long b_len, std::chrono::milliseconds timecode, int source_channel, int bits_per_sample) override
Definition: mainvisual.cpp:147
~MainVisual() override
Definition: mainvisual.cpp:56
void setFrameRate(int newfps)
bool m_playing
Definition: mainvisual.h:72
QList< VisualNode * > m_nodes
Definition: mainvisual.h:71
void prepare(void) override
Definition: mainvisual.cpp:138
MythUIVideo * m_visualizerVideo
Definition: mainvisual.h:66
void stop(void)
Definition: mainvisual.cpp:69
MainVisual(MythUIVideo *visualizer)
Definition: mainvisual.cpp:34
int frameRate(void) const
Definition: mainvisual.h:56
QPixmap m_pixmap
Definition: mainvisual.h:70
QTimer * m_updateTimer
Definition: mainvisual.h:75
int m_currentVisualizer
Definition: mainvisual.h:68
void setVisual(const QString &name)
Definition: mainvisual.cpp:80
VisualBase * m_vis
Definition: mainvisual.h:69
QStringList getVisualizations(void)
Definition: mainvisual.h:58
int getCurrentVisual(void) const
Definition: mainvisual.h:60
void resize(QSize size)
Definition: mainvisual.cpp:258
QStringList m_visualizers
Definition: mainvisual.h:67
VisualBase * visual(void) const
Definition: mainvisual.h:42
Video widget, displays raw image data.
Definition: mythuivideo.h:15
static constexpr uint16_t SAMPLES_DEFAULT_SIZE
Definition: visualize.h:35