Files
soundboard/soundboard.hpp

47 lines
1.1 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;
QSlider* m_volume_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;
void on_app_selected(int index);
void refresh_apps();
void load_directory();
void play_sound();
void stop_sounds();
void set_volume(int value);
void toggle_monitor(Qt::CheckState state);
};