#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: int fd[2]; // 声明无名管道 int fifo_fd; // 声明有名管道 int index = 0; // 歌曲索引 vector vectorSong; // 歌曲名动态数组 int play_btn_flag = 0; // play 按钮点击标识 int mute_flag = 0; // 静音状态标识 public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); public: void initMainWindow(); // 主窗体初始化 void mplayerInit(); // 初始化 mplayer void scanSong(); // 扫描歌曲文件 void setSongList(); // 向歌曲列表设置歌曲内容 public slots: void playNextSong(); // 切换歌曲槽函数I void playLastSong(); void player_rewind_or_forward(int seconds); // 快进快退函数 void volume_control(int value, int abs); // 音量设置函数 void volume_mute_switch(int mute_arg); // 静音切换函数 void setCurrentTimeLabel(int time); // 设置当前时间标签槽函数 void setCurrentSlider(int currentProgress); // 设置当前进度条 void setVolumeSlider(int currentVolume); // 设置当前音量条 signals: void currentTimeSignal(int time); // 当前时间信号 void currentProgressSignal(int currentProgress); // 当前进度信号 void currentVolumeSignal(int currentVolume); // 当前音量信号 private slots: void on_play_btn_clicked(); void on_back_btn_clicked(); void on_front_btn_clicked(); void on_last_btn_clicked(); void on_next_btn_clicked(); void on_mute_btn_clicked(); void on_volume_down_btn_clicked(); void on_volume_up_btn_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H