diff options
Diffstat (limited to 'src/audio/devices.cpp')
-rw-r--r-- | src/audio/devices.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/audio/devices.cpp b/src/audio/devices.cpp index c9636b7..5e7720b 100644 --- a/src/audio/devices.cpp +++ b/src/audio/devices.cpp @@ -7,13 +7,18 @@ // clang-format on AudioDevices::AudioDevices() - : m_playback(Gtk::ListStore::create(m_playback_columns)) { + : m_playback(Gtk::ListStore::create(m_playback_columns)) + , m_capture(Gtk::ListStore::create(m_capture_columns)) { } Glib::RefPtr<Gtk::ListStore> AudioDevices::GetPlaybackDeviceModel() { return m_playback; } +Glib::RefPtr<Gtk::ListStore> AudioDevices::GetCaptureDeviceModel() { + return m_capture; +} + void AudioDevices::SetDevices(ma_device_info *pPlayback, ma_uint32 playback_count, ma_device_info *pCapture, ma_uint32 capture_count) { m_playback->clear(); @@ -23,9 +28,18 @@ void AudioDevices::SetDevices(ma_device_info *pPlayback, ma_uint32 playback_coun row[m_playback_columns.Name] = d.name; row[m_playback_columns.DeviceID] = d.id; } + + m_capture->clear(); + + for (ma_uint32 i = 0; i < capture_count; i++) { + auto &d = pCapture[i]; + auto row = *m_capture->append(); + row[m_capture_columns.Name] = d.name; + row[m_capture_columns.DeviceID] = d.id; + } } -std::optional<ma_device_id> AudioDevices::GetDeviceIDFromModel(const Gtk::TreeModel::iterator &iter) { +std::optional<ma_device_id> AudioDevices::GetPlaybackDeviceIDFromModel(const Gtk::TreeModel::iterator &iter) const { if (iter) { return static_cast<ma_device_id>((*iter)[m_playback_columns.DeviceID]); } else { @@ -33,8 +47,21 @@ std::optional<ma_device_id> AudioDevices::GetDeviceIDFromModel(const Gtk::TreeMo } } +std::optional<ma_device_id> AudioDevices::GetCaptureDeviceIDFromModel(const Gtk::TreeModel::iterator &iter) const { + if (iter) { + return static_cast<ma_device_id>((*iter)[m_capture_columns.DeviceID]); + } else { + return std::nullopt; + } +} + AudioDevices::PlaybackColumns::PlaybackColumns() { add(Name); add(DeviceID); } + +AudioDevices::CaptureColumns::CaptureColumns() { + add(Name); + add(DeviceID); +} #endif |