summaryrefslogtreecommitdiff
path: root/src/audio/devices.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/devices.hpp')
-rw-r--r--src/audio/devices.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/audio/devices.hpp b/src/audio/devices.hpp
new file mode 100644
index 0000000..0a88873
--- /dev/null
+++ b/src/audio/devices.hpp
@@ -0,0 +1,26 @@
+#pragma once
+
+#include <gtkmm/liststore.h>
+#include <miniaudio.h>
+#include <optional>
+
+class AudioDevices {
+public:
+ AudioDevices();
+
+ Glib::RefPtr<Gtk::ListStore> GetPlaybackDeviceModel();
+
+ void SetDevices(ma_device_info *pPlayback, ma_uint32 playback_count, ma_device_info *pCapture, ma_uint32 capture_count);
+ std::optional<ma_device_id> GetDeviceIDFromModel(const Gtk::TreeModel::iterator &iter);
+
+private:
+ class PlaybackColumns : public Gtk::TreeModel::ColumnRecord {
+ public:
+ PlaybackColumns();
+
+ Gtk::TreeModelColumn<Glib::ustring> Name;
+ Gtk::TreeModelColumn<ma_device_id> DeviceID;
+ };
+ PlaybackColumns m_playback_columns;
+ Glib::RefPtr<Gtk::ListStore> m_playback;
+};