qtmplayer/mainwindow.h

61 lines
1.4 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <dirent.h>
using namespace std;
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
int fd[2]; // 声明无名管道
int fifo_fd; // 声明有名管道
int index = 0; // 歌曲索引
vector<string> vectorSong; // 歌曲名动态数组
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
public:
void initMainWindow(); // 主窗体初始化
void mplayerInit(); // 初始化 mplayer
void scanSong(); // 扫描歌曲文件
void *getTimerThreadFunc(void *arg); // 发送获取当前时间的 mplayer 命令
void *readPipeMSG(void *arg); // 获取当前时间的线程
public slots:
void playNextSong(); // 切换歌曲槽函数I
void setCurrentTimeLabel(int time); // 设置当前时间标签槽函数
void setCurrentSlider(int currentProgress); // 设置当前进度条
signals:
void currentTimeSignal(int time); // 当前时间信号
void currentProgressSignal(int currentProgress); // 当前进度信号
private slots:
void on_play_btn_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H