52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
#include <QApplication>
|
|
#include <QCheckBox>
|
|
#include <QComboBox>
|
|
#include <QDirIterator>
|
|
#include <QFileDialog>
|
|
#include <QHBoxLayout>
|
|
#include <QLabel>
|
|
#include <QListWidget>
|
|
#include <QPushButton>
|
|
#include <QSlider>
|
|
#include <QVBoxLayout>
|
|
#include <QWidget>
|
|
|
|
#include "pipewire.hpp"
|
|
|
|
class Soundboard : public QWidget
|
|
{
|
|
public:
|
|
Soundboard(QWidget* parent = nullptr);
|
|
~Soundboard();
|
|
|
|
private:
|
|
QComboBox* m_combo_box = nullptr;
|
|
QPushButton* m_refresh_button = nullptr;
|
|
QPushButton* m_folder_button = nullptr;
|
|
QLabel* m_label = nullptr;
|
|
QLabel* m_volume_label = nullptr;
|
|
QSlider* m_volume_slider = nullptr;
|
|
QLabel* m_speed_label = nullptr;
|
|
QSlider* m_speed_slider = nullptr;
|
|
QListWidget* m_sound_list = nullptr;
|
|
QPushButton* m_stop_button = nullptr;
|
|
QCheckBox* m_monitor_toggle = nullptr;
|
|
|
|
Pipewire::Graph m_graph;
|
|
Pipewire::Player m_player;
|
|
std::optional<Pipewire::Sink> m_sink;
|
|
|
|
std::vector<Pipewire::Node> m_apps;
|
|
QString m_audio_directory;
|
|
float m_speed = 1.0f;
|
|
|
|
void on_app_selected(int index);
|
|
void refresh_apps();
|
|
void load_directory();
|
|
void play_sound();
|
|
void stop_sounds();
|
|
void set_volume(int value);
|
|
void set_speed(int value);
|
|
void toggle_monitor(Qt::CheckState state);
|
|
};
|