#include #include #include #include #include #include #include #include #include #include #include #include #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 m_sink; std::vector 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); };