Refactor PW and SB logic

This commit is contained in:
2026-07-07 03:16:10 +02:00
parent bd4db56cc0
commit 4c0b4c0e7a
6 changed files with 680 additions and 512 deletions

46
soundboard.hpp Normal file
View File

@@ -0,0 +1,46 @@
#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);
};