TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicvideoview.h
Go to the documentation of this file.
1 #ifndef MUSICVIDEOVIEW_H
2 #define MUSICVIDEOVIEW_H
3 
4 /***************************************************************************
5  * This file is part of the TTK Music Player project
6  * Copyright (C) 2015 - 2024 Greedysky Studio
7 
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12 
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17 
18  * You should have received a copy of the GNU General Public License along
19  * with this program; If not, see <http://www.gnu.org/licenses/>.
20  ***************************************************************************/
21 
22 #include <QAbstractScrollArea>
23 #include "musicglobaldefine.h"
25 
26 class MusicCoreMPlayer;
27 class MusicBarrageWidget;
28 
32 class TTK_MODULE_EXPORT MusicViewWidget : public QWidget
33 {
34  Q_OBJECT
36 public:
40  explicit MusicViewWidget(QWidget *parent = nullptr);
44  ~MusicViewWidget();
45 
46 Q_SIGNALS:
50  void fullScreenMode();
54  void timeToPlay();
55 
56 private:
60  virtual void mousePressEvent(QMouseEvent *event) override final;
61  virtual void mouseMoveEvent(QMouseEvent *event) override final;
62  virtual void mouseDoubleClickEvent(QMouseEvent *event) override final;
63  virtual void contextMenuEvent(QContextMenuEvent *event) override final;
64 
65  QTimer *m_clickedTimer;
67 
68 };
69 
70 
74 class TTK_MODULE_EXPORT MusicVideoView : public QAbstractScrollArea
75 {
76  Q_OBJECT
78 public:
82  explicit MusicVideoView(QWidget *parent = nullptr);
86  ~MusicVideoView();
87 
91  void setMedia(const QString &data);
95  void setBarrage(const QString &name, const QString &id);
96 
100  void resizeGeometry(int width, int height);
104  void createRightMenu();
105 
109  inline MusicVideoControlWidget *controlBarWidget() const { return m_videoControl; }
110 
111 Q_SIGNALS:
115  void searchButtonClicked();
119  void popupButtonClicked();
123  void fullscreenButtonClicked();
127  void downloadButtonClicked();
131  void shareButtonClicked();
132 
133 public Q_SLOTS:
137  void play();
138 
139 private Q_SLOTS:
143  void stop();
147  void positionChanged(qint64 position);
151  void durationChanged(qint64 duration);
155  void setPosition(int position);
159  void volumeChanged(int volume);
163  void mediaChanged(const QString &data);
167  void mediaPlayFinished(int code);
168 
172  void fullscreenButtonTrigger();
173 
174 private:
178  virtual void contextMenuEvent(QContextMenuEvent *event) override final;
179 
184 
185 };
186 
187 #endif // MUSICVIDEOVIEW_H
#define TTK_MODULE_EXPORT
MusicBarrageWidget * m_barrageWidget
The class of the video controller.
MusicViewWidget * m_videoWidget
const char * name
Definition: http_parser.c:458
MusicCoreMPlayer * m_player
QTimer * m_clickedTimer
#define TTK_DECLARE_MODULE(Class)
Definition: ttkqtglobal.h:152
The class of the video show widget.
The class of the mplayer core.
Definition: inftrees.h:24
MusicVideoControlWidget * m_videoControl
MusicVideoControlWidget * controlBarWidget() const
The class of the video view widget.
The class of the barrage widget.