PonyPlayer
controller.h
浏览该文件的文档.
1//
2// Created by 彭郑威 on 2022/4/29.
3//
4
5#ifndef PONYPLAYER_CONTROLLER_H
6#define PONYPLAYER_CONTROLLER_H
7
8#include <QObject>
9#include <QThread>
10#include <QDebug>
11#include "playlist.h"
12#include "info_accessor.h"
13
14class Controller : public QObject {
15Q_OBJECT
16 Q_PROPERTY(QVariantList recentFiles READ getRecentFiles NOTIFY recentFilesChanged)
17 QThread listOPThread;
18
19private:
20 QList<simpleListItem *> result;
21 PlayListItem *playListItemResult;
22
23public:
24 explicit Controller(QObject *parent = nullptr);
25
27
28 Q_INVOKABLE QVariantList getSimpleListItemList();
29
30 // 获取最近打开的文件
31 Q_INVOKABLE QVariantList getRecentFiles();
32
33 // 向最近打开的文件中写入最新的
34 Q_INVOKABLE void updateRecentFile(QString filePath);
35
36 Q_INVOKABLE QVariantMap getListItemInfo();
37
38public slots:
39
40 void getInsertRst(int resultCode) {
41 if (resultCode == 0)
42 qDebug() << "Insert to MediaLib Success!\n";
43 else
44 qDebug() << "Insert to MediaLib Fail!\n";
45 }
46
47 void getRemoveRst(int resultCode) {
48 if (resultCode == 0)
49 qDebug() << "Remove from MediaLib Success!\n";
50 else
51 qDebug() << "Remove from MediaLib Fail!\n";
52 }
53
54 void getSearchRst(PlayListItem *resultItem) {
55 if (!resultItem)
56 qDebug() << "Search Find!\n";
57 else
58 qDebug() << "Search Fail!\n";
59 }
60
61 void getExtractRst(QList<simpleListItem *> rst) {
62 result.clear();
63
64 for (int i = 0; i < rst.size(); i++) {
65 result.append(rst[i]);
66 }
67 emit finishExtractItems();
68 }
69
71 playListItemResult = rst;
72 emit finishGetInfo();
73 }
74
75 QString getFile(QString filename, QString path) {
76 PlayListItem *info = new PlayListItem;
77 info->setFileName(filename);
78 info->setPath(path);
79 QString iconPath = infoAccessor::getInfo(path, *info);
80 qDebug() << "文件:" << info->getFileName();
81 qDebug() << "路径:" << info->getPath();
82 qDebug() << "帧率:" << info->getFrameRate();
83 qDebug() << "比特率:" << info->getBitRate();
84 qDebug() << "视频流大小:" << info->getVideoSize();
85 qDebug() << "画面尺寸:" << info->getVideoWidth() << "*" << info->getVideoHeight();
86 qDebug() << "视频格式:" << info->getVideoFormat();
87 qDebug() << "音频格式:" << info->getAudioFormat();
88 qDebug() << "音频平均比特率:" << info->getAudioAverageBitRate();
89 qDebug() << "音频通道数:" << info->getChannelNumbers();
90 qDebug() << "音频采样率:" << info->getSampleRate();
91 qDebug() << "音频流大小:" << info->getAudioSize();
92 qDebug() << "流数量:" << info->getStreamNumbers();
93 emit insertItem(info);
94 return iconPath;
95 }
96
98
99 void sendRemoveRequirement(QString filepath, QString iconPath) { emit removeRequirement(filepath); }
100
101 void sendGetInfoRequirement(QString filepath) { emit getInfoRequirement(filepath); }
102
103signals:
104
105 //发送信号触发线程
107
109
110 void searchItem(QString primaryKey);
111
112 void extractRequirement(); // 向 PlayList 发送的提取请求
113
114 void finishExtractItems(); // 向 qml 发送的提取完毕的信号
115
116 void removeRequirement(QString path); // 向 PlayList 发送的删除请求
117
118 void getInfoRequirement(QString path); // 向 PLayList 发送获取信息请求
119
120 void finishGetInfo(); // 向 qml 发送查找完毕的信号
121
123};
124
125#endif //PONYPLAYER_CONTROLLER_H
Definition: controller.h:14
void removeRequirement(QString path)
~Controller()
Definition: controller.cpp:37
void searchItem(QString primaryKey)
void getSearchRst(PlayListItem *resultItem)
Definition: controller.h:54
void sendGetInfoRequirement(QString filepath)
Definition: controller.h:101
QString getFile(QString filename, QString path)
Definition: controller.h:75
void extractRequirement()
void sendExtractRequirement()
Definition: controller.h:97
Q_INVOKABLE void updateRecentFile(QString filePath)
Definition: controller.cpp:86
QVariantList recentFiles
Definition: controller.h:16
void sendRemoveRequirement(QString filepath, QString iconPath)
Definition: controller.h:99
void getInfoRequirement(QString path)
Q_INVOKABLE QVariantList getRecentFiles()
Definition: controller.cpp:56
void removeItem(PlayListItem *item)
void finishGetInfo()
void getExtractRst(QList< simpleListItem * > rst)
Definition: controller.h:61
Q_INVOKABLE QVariantMap getListItemInfo()
Definition: controller.cpp:131
void insertItem(PlayListItem *item)
Q_INVOKABLE QVariantList getSimpleListItemList()
Definition: controller.cpp:44
void finishExtractItems()
void getInfoRst(PlayListItem *rst)
Definition: controller.h:70
void getInsertRst(int resultCode)
Definition: controller.h:40
void getRemoveRst(int resultCode)
Definition: controller.h:47
void recentFilesChanged()
Controller(QObject *parent=nullptr)
Definition: controller.cpp:8
Definition: playlist.h:9
Q_INVOKABLE float getVideoSize()
Definition: playlist.h:80
Q_INVOKABLE void setFileName(QString _fileName)
Definition: playlist.h:59
Q_INVOKABLE void setPath(QString _path)
Definition: playlist.h:65
Q_INVOKABLE QString getAudioFormat()
Definition: playlist.h:92
Q_INVOKABLE int getAudioAverageBitRate()
Definition: playlist.h:95
Q_INVOKABLE int getVideoWidth()
Definition: playlist.h:83
Q_INVOKABLE int getFrameRate()
Definition: playlist.h:74
Q_INVOKABLE QString getFileName()
Definition: playlist.cpp:3
Q_INVOKABLE int getSampleRate()
Definition: playlist.h:101
Q_INVOKABLE int getBitRate()
Definition: playlist.h:77
Q_INVOKABLE float getAudioSize()
Definition: playlist.h:107
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 int getStreamNumbers()
Definition: playlist.h:110
Q_INVOKABLE QString getPath()
Definition: playlist.h:64
static QString getInfo(QString filename, PlayListItem &res)
Definition: info_accessor.cpp:23