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 
31 class MythUIVideo;
32 
33 // base class to handle things like frame rate...
34 class 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
MainVisual::~MainVisual
~MainVisual() override
Definition: mainvisual.cpp:54
MainVisual::setFrameRate
void setFrameRate(int newfps)
SAMPLES_DEFAULT_SIZE
static constexpr uint16_t SAMPLES_DEFAULT_SIZE
Definition: visualize.h:36
VisualBase
Definition: visualize.h:62
MainVisual::customEvent
void customEvent(QEvent *event) override
Definition: mainvisual.cpp:262
MainVisual::m_fps
int m_fps
Definition: mainvisual.h:73
MainVisual::prepare
void prepare(void) override
Definition: mainvisual.cpp:136
MainVisual::setVisual
void setVisual(const QString &name)
Definition: mainvisual.cpp:78
MythTV::Visual
Definition: visual.h:16
MainVisual::m_samples
unsigned long m_samples
Definition: mainvisual.h:74
MainVisual::m_playing
bool m_playing
Definition: mainvisual.h:72
MainVisual::resize
void resize(QSize size)
Definition: mainvisual.cpp:253
MainVisual::timeout
void timeout()
Definition: mainvisual.cpp:208
visualize.h
MainVisual::visual
VisualBase * visual(void) const
Definition: mainvisual.h:42
MainVisual::m_visualizerVideo
MythUIVideo * m_visualizerVideo
Definition: mainvisual.h:66
MainVisual::stop
void stop(void)
Definition: mainvisual.cpp:67
MainVisual::getVisualizations
QStringList getVisualizations(void)
Definition: mainvisual.h:58
MainVisual::getCurrentVisual
int getCurrentVisual(void) const
Definition: mainvisual.h:60
MainVisual
Definition: mainvisual.h:34
MainVisual::m_currentVisualizer
int m_currentVisualizer
Definition: mainvisual.h:68
MainVisual::frameRate
int frameRate(void) const
Definition: mainvisual.h:56
MythUIVideo
Video widget, displays raw image data.
Definition: mythuivideo.h:14
constants.h
MainVisual::add
void add(const void *buffer, unsigned long b_len, std::chrono::milliseconds timecode, int source_channel, int bits_per_sample) override
Definition: mainvisual.cpp:145
MainVisual::m_updateTimer
QTimer * m_updateTimer
Definition: mainvisual.h:75
MainVisual::m_nodes
QList< VisualNode * > m_nodes
Definition: mainvisual.h:71
MainVisual::m_visualizers
QStringList m_visualizers
Definition: mainvisual.h:67
MainVisual::m_vis
VisualBase * m_vis
Definition: mainvisual.h:69
MainVisual::m_pixmap
QPixmap m_pixmap
Definition: mainvisual.h:70
MainVisual::MainVisual
MainVisual(MythUIVideo *visualizer)
Definition: mainvisual.cpp:32
visual.h