add basic combobox to choose output device, start using spdlog

This commit is contained in:
ouwou
2022-11-05 02:32:43 -04:00
parent cb690b6def
commit f8f9a907c9
9 changed files with 186 additions and 21 deletions

33
src/audio/devices.cpp Normal file
View File

@@ -0,0 +1,33 @@
#include "devices.hpp"
AudioDevices::AudioDevices()
: m_playback(Gtk::ListStore::create(m_playback_columns)) {
}
Glib::RefPtr<Gtk::ListStore> AudioDevices::GetPlaybackDeviceModel() {
return m_playback;
}
void AudioDevices::SetDevices(ma_device_info *pPlayback, ma_uint32 playback_count, ma_device_info *pCapture, ma_uint32 capture_count) {
m_playback->clear();
for (ma_uint32 i = 0; i < playback_count; i++) {
auto &d = pPlayback[i];
auto row = *m_playback->append();
row[m_playback_columns.Name] = d.name;
row[m_playback_columns.DeviceID] = d.id;
}
}
std::optional<ma_device_id> AudioDevices::GetDeviceIDFromModel(const Gtk::TreeModel::iterator &iter) {
if (iter) {
return static_cast<ma_device_id>((*iter)[m_playback_columns.DeviceID]);
} else {
return std::nullopt;
}
}
AudioDevices::PlaybackColumns::PlaybackColumns() {
add(Name);
add(DeviceID);
}