PonyPlayer
playlist.h
浏览该文件的文档.
1#pragma once
2
3#include <QtCore>
4#include <utility>
5#include "kv_engine.h"
6#include <QThread>
7#include <QMetaType>
8
9class PlayListItem : public ListItem {
10 Q_OBJECT
11 Q_PROPERTY(QString _uuid_ READ getUUID WRITE setUUID)
12 Q_PROPERTY(QString fileName READ getFileName WRITE setFileName) // 文件名
13 Q_PROPERTY(QString dir READ getDirectory WRITE setDirectoryByStr)
14 Q_PROPERTY(QString duration READ getDuration WRITE setDuration) // 视频时长
15 Q_PROPERTY(int frameRate READ getFrameRate WRITE setFrameRate) // 视频帧率
16 Q_PROPERTY(int bitRate READ getBitRate WRITE setBitRate) // 视频码率
17 Q_PROPERTY(float videoSize READ getVideoSize WRITE setVideoSize) // 视频流大小
18 Q_PROPERTY(int videoWidth READ getVideoWidth WRITE setVideoWidth) // 视频宽度
19 Q_PROPERTY(int videoHeight READ getVideoHeight WRITE setVideoHeight) // 视频高度
20 Q_PROPERTY(QString videoFormat READ getVideoFormat WRITE setVideoFormat) // 视频编码格式
21 Q_PROPERTY(QString audioFormat READ getAudioFormat WRITE setAudioFormat) // 音频编码格式
22 Q_PROPERTY(int audioAverageBitRate READ getAudioAverageBitRate WRITE setAudioAverageBitRate) // 音频平均码率
23 Q_PROPERTY(int channelNumbers READ getChannelNumbers WRITE setChannelNumbers) // 音频通道数
24 Q_PROPERTY(int sampleRate READ getSampleRate WRITE setSampleRate) // 音频采样率
25 Q_PROPERTY(float audioSize READ getAudioSize WRITE setAudioSize) // 音频大小
26 Q_PROPERTY(QString format READ getFormat WRITE setFormat) // 封装格式
27 Q_PROPERTY(QString path READ getPath WRITE setPath) // 路径
28 Q_PROPERTY(QString iconPath READ getIconPath WRITE setIconPath) // icon 路径
29
30
31protected:
32 QString fileName;
33 QDir dir;
34 QString path;
35 QString duration;
36 int frameRate;
37 int bitRate;
38 float videoSize;
39 int videoWidth;
40 int videoHeight;
41 QString videoFormat;
42 QString audioFormat;
45 int sampleRate;
46 float audioSize;
48 QString format;
49 QString iconPath;
50
51public:
52 Q_INVOKABLE PlayListItem(QString _fileName, const QDir &_dir)
53 : ListItem(), fileName(std::move(_fileName)), dir(_dir) {
54 };
55
56 Q_INVOKABLE PlayListItem() = default;
57
58 Q_INVOKABLE QString getFileName();
59 Q_INVOKABLE void setFileName(QString _fileName) { fileName = _fileName; }
60
61 Q_INVOKABLE QString getIconPath() { return iconPath; }
62 Q_INVOKABLE void setIconPath(QString _iconPath) { iconPath = _iconPath; }
63
64 Q_INVOKABLE QString getPath() { return path; }
65 Q_INVOKABLE void setPath(QString _path) { path = _path; }
66
67 Q_INVOKABLE QString getDirectory();
68 Q_INVOKABLE void setDirectory(QDir _dir) { dir = _dir; }
69 Q_INVOKABLE void setDirectoryByStr(QString _dir) { dir = _dir; }
70
71 Q_INVOKABLE QString getDuration() { return duration; }
72 Q_INVOKABLE void setDuration(QString _duration) { duration = _duration; }
73
74 Q_INVOKABLE int getFrameRate() { return frameRate; }
75 Q_INVOKABLE void setFrameRate(int _frameRate) { frameRate = _frameRate; }
76
77 Q_INVOKABLE int getBitRate() { return bitRate; }
78 Q_INVOKABLE void setBitRate(int _bitRate) { bitRate = _bitRate; }
79
80 Q_INVOKABLE float getVideoSize() { return videoSize; }
81 Q_INVOKABLE void setVideoSize(float _videoSize) { videoSize = _videoSize; }
82
83 Q_INVOKABLE int getVideoWidth() { return videoWidth; }
84 Q_INVOKABLE void setVideoWidth(int _videoWidth) { videoWidth = _videoWidth; }
85
86 Q_INVOKABLE int getVideoHeight() { return videoHeight; }
87 Q_INVOKABLE void setVideoHeight(int _videoHeight) { videoHeight = _videoHeight; }
88
89 Q_INVOKABLE QString getVideoFormat() { return videoFormat; }
90 Q_INVOKABLE void setVideoFormat(QString _videoFormat) { videoFormat = _videoFormat; }
91
92 Q_INVOKABLE QString getAudioFormat() { return audioFormat; }
93 Q_INVOKABLE void setAudioFormat(QString _audioFormat) { audioFormat = _audioFormat; }
94
95 Q_INVOKABLE int getAudioAverageBitRate() { return audioAverageBitRate; }
96 Q_INVOKABLE void setAudioAverageBitRate(int _audioAverageBitRate) { audioAverageBitRate = _audioAverageBitRate; }
97
98 Q_INVOKABLE int getChannelNumbers() { return channelNumbers; }
99 Q_INVOKABLE void setChannelNumbers(int _channelNumbers) { channelNumbers = _channelNumbers; }
100
101 Q_INVOKABLE int getSampleRate() { return sampleRate; }
102 Q_INVOKABLE void setSampleRate(int _sampleRate) { sampleRate = _sampleRate; }
103
104 Q_INVOKABLE QString getFormat() { return format; }
105 Q_INVOKABLE void setFormat(QString _format) { format = _format; }
106
107 Q_INVOKABLE float getAudioSize() { return audioSize; }
108 Q_INVOKABLE void setAudioSize(float _audioSize) { audioSize = _audioSize; }
109
110 Q_INVOKABLE int getStreamNumbers() { return streamNumbers; }
111 Q_INVOKABLE void setStreamNumbers(int _streamNumbers) { streamNumbers = _streamNumbers; }
112
113 Q_INVOKABLE ~PlayListItem() override = default;
114
115// Q_INVOKABLE PlayListItem(const PlayListItem &listItem);
116};
117
118/*
119 * 用于播放列表左侧条目简单信息
120 */
121class simpleListItem: public QObject {
122 Q_OBJECT
123 Q_PROPERTY(QString fileName READ getFileName WRITE setFileName)
124 Q_PROPERTY(QString filePath READ getFilePath WRITE setFilePath)
125 Q_PROPERTY(QString iconPath READ getIconPath WRITE setIconPath)
126
127public:
128 Q_INVOKABLE simpleListItem() = default;
129
130 Q_INVOKABLE simpleListItem(QString _fileName, QString _filePath, QString _iconPath)
131 : fileName(_fileName), filePath(_filePath), iconPath(_iconPath) { };
132
133 Q_INVOKABLE QString getFileName() { return fileName; }
134 Q_INVOKABLE void setFileName(QString _fileName) { fileName = _fileName; }
135
136 Q_INVOKABLE QString getFilePath() { return filePath; }
137 Q_INVOKABLE void setFilePath(QString _filePath) { filePath = _filePath; }
138
139 Q_INVOKABLE QString getIconPath() { return iconPath; }
140 Q_INVOKABLE void setIconPath(QString _iconPath) { iconPath = _iconPath; }
141
142 Q_INVOKABLE ~simpleListItem() = default;
143
144 Q_INVOKABLE simpleListItem(const simpleListItem& other): QObject(other.parent()) {
145 fileName = other.fileName;
146 filePath = other.filePath;
147 iconPath = other.iconPath;
148 }
149
150
151
152private:
153 QString fileName;
154 QString filePath;
155 QString iconPath;
156};
158
159class PlayList : public QObject {
160 Q_OBJECT
161// Q_PROPERTY(QQmlListProperty<QObject*> playListItems READ playListItems)
162
163private:
164 QList<QObject *> data;
166
167// static void appendPlayList(QQmlListProperty<QObject*>* list,QObject *qobj);
168// static int playListCount(QQmlListProperty<QObject*>*) const;
169// static QObject* listItem(QQmlListProperty<QObject*>*,int) const;
170// static void clearPlayList(QQmlListProperty<QObject*>*);
171public:
172// QList<ListItem> getData();
173 PlayList(QString _dbName, QString _tableName, QString _className);
174// QQmlListProperty<QObject*> playListItems();
175
176// void appendPlayList(QObject *qobj);
177// int playListCount() const;
178// QObject* listItem(int) const;
179// void clearPlayList();
180
181// void insert(ListItem item);
182
183 explicit PlayList(const QString &name);
184
185public slots:
186 void insert(PlayListItem *item);
187 void remove(QString filepath);
188 PlayListItem* search(QString key);
189 void extractAndProcess();
190 void getInfo(QString path);
191
192signals:
193 void insertDone(int resultcode);
194 void removeDone(int resultcode);
196 void extractDone(QList<simpleListItem*> res);
198};
199
Definition: kv_engine.h:40
Q_INVOKABLE QString getUUID()
Definition: kv_engine.h:50
Q_INVOKABLE void setUUID(QString uuid)
Definition: kv_engine.h:48
Definition: playlist.h:159
void extractDone(QList< simpleListItem * > res)
void remove(QString filepath)
Definition: playlist.cpp:77
void getInfoDone(PlayListItem *item)
void searchDone(PlayListItem *item)
PlayList(QString _dbName, QString _tableName, QString _className)
Definition: playlist.cpp:16
void insertDone(int resultcode)
void getInfo(QString path)
Definition: playlist.cpp:88
PlayListItem * search(QString key)
Definition: playlist.cpp:83
PlayList(const QString &name)
void extractAndProcess()
Definition: playlist.cpp:97
void removeDone(int resultcode)
void insert(PlayListItem *item)
Definition: playlist.cpp:67
Definition: playlist.h:9
int bitRate
Definition: playlist.h:16
Q_INVOKABLE float getVideoSize()
Definition: playlist.h:80
Q_INVOKABLE void setFileName(QString _fileName)
Definition: playlist.h:59
Q_INVOKABLE void setBitRate(int _bitRate)
Definition: playlist.h:78
Q_INVOKABLE void setSampleRate(int _sampleRate)
Definition: playlist.h:102
Q_INVOKABLE void setPath(QString _path)
Definition: playlist.h:65
int sampleRate
Definition: playlist.h:24
QString duration
Definition: playlist.h:14
Q_INVOKABLE QString getAudioFormat()
Definition: playlist.h:92
Q_INVOKABLE int getAudioAverageBitRate()
Definition: playlist.h:95
Q_INVOKABLE PlayListItem()=default
QString dir
Definition: playlist.h:13
Q_INVOKABLE void setChannelNumbers(int _channelNumbers)
Definition: playlist.h:99
float videoSize
Definition: playlist.h:17
Q_INVOKABLE QString getDuration()
Definition: playlist.h:71
Q_INVOKABLE int getVideoWidth()
Definition: playlist.h:83
Q_INVOKABLE void setDirectory(QDir _dir)
Definition: playlist.h:68
Q_INVOKABLE int getFrameRate()
Definition: playlist.h:74
QDir dir
Definition: playlist.h:33
Q_INVOKABLE QString getFileName()
Definition: playlist.cpp:3
QString path
Definition: playlist.h:27
QString _uuid_
Definition: playlist.h:11
int videoHeight
Definition: playlist.h:19
Q_INVOKABLE int getSampleRate()
Definition: playlist.h:101
Q_INVOKABLE void setFrameRate(int _frameRate)
Definition: playlist.h:75
Q_INVOKABLE int getBitRate()
Definition: playlist.h:77
QString audioFormat
Definition: playlist.h:21
QString fileName
Definition: playlist.h:12
Q_INVOKABLE void setIconPath(QString _iconPath)
Definition: playlist.h:62
Q_INVOKABLE QString getDirectory()
Definition: playlist.cpp:7
Q_INVOKABLE void setDirectoryByStr(QString _dir)
Definition: playlist.h:69
int audioAverageBitRate
Definition: playlist.h:22
int channelNumbers
Definition: playlist.h:23
Q_INVOKABLE ~PlayListItem() override=default
Q_INVOKABLE float getAudioSize()
Definition: playlist.h:107
Q_INVOKABLE void setStreamNumbers(int _streamNumbers)
Definition: playlist.h:111
Q_INVOKABLE void setVideoWidth(int _videoWidth)
Definition: playlist.h:84
QString videoFormat
Definition: playlist.h:20
Q_INVOKABLE int getChannelNumbers()
Definition: playlist.h:98
Q_INVOKABLE int getVideoHeight()
Definition: playlist.h:86
Q_INVOKABLE QString getVideoFormat()
Definition: playlist.h:89
Q_INVOKABLE void setVideoHeight(int _videoHeight)
Definition: playlist.h:87
Q_INVOKABLE QString getIconPath()
Definition: playlist.h:61
Q_INVOKABLE void setVideoSize(float _videoSize)
Definition: playlist.h:81
Q_INVOKABLE void setFormat(QString _format)
Definition: playlist.h:105
Q_INVOKABLE int getStreamNumbers()
Definition: playlist.h:110
int frameRate
Definition: playlist.h:15
Q_INVOKABLE void setDuration(QString _duration)
Definition: playlist.h:72
int streamNumbers
Definition: playlist.h:47
Q_INVOKABLE void setAudioAverageBitRate(int _audioAverageBitRate)
Definition: playlist.h:96
Q_INVOKABLE void setAudioFormat(QString _audioFormat)
Definition: playlist.h:93
Q_INVOKABLE QString getFormat()
Definition: playlist.h:104
QString format
Definition: playlist.h:26
Q_INVOKABLE void setAudioSize(float _audioSize)
Definition: playlist.h:108
Q_INVOKABLE void setVideoFormat(QString _videoFormat)
Definition: playlist.h:90
Q_INVOKABLE PlayListItem(QString _fileName, const QDir &_dir)
Definition: playlist.h:52
float audioSize
Definition: playlist.h:25
QString iconPath
Definition: playlist.h:28
Q_INVOKABLE QString getPath()
Definition: playlist.h:64
int videoWidth
Definition: playlist.h:18
Definition: kv_engine.h:58
Definition: playlist.h:121
QString filePath
Definition: playlist.h:124
Q_INVOKABLE QString getIconPath()
Definition: playlist.h:139
QString fileName
Definition: playlist.h:123
Q_INVOKABLE simpleListItem(const simpleListItem &other)
Definition: playlist.h:144
Q_INVOKABLE void setFileName(QString _fileName)
Definition: playlist.h:134
Q_INVOKABLE void setIconPath(QString _iconPath)
Definition: playlist.h:140
Q_INVOKABLE void setFilePath(QString _filePath)
Definition: playlist.h:137
Q_INVOKABLE simpleListItem()=default
Q_INVOKABLE simpleListItem(QString _fileName, QString _filePath, QString _iconPath)
Definition: playlist.h:130
Q_INVOKABLE QString getFileName()
Definition: playlist.h:133
Q_INVOKABLE QString getFilePath()
Definition: playlist.h:136
QString iconPath
Definition: playlist.h:125
Q_INVOKABLE ~simpleListItem()=default
Q_DECLARE_METATYPE(simpleListItem)