summaryrefslogtreecommitdiff
path: root/libs/backends/portaudio/portaudio_backend.cc
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-04-01 16:55:34 +1000
committerTim Mayberry <mojofunk@gmail.com>2015-07-31 09:59:54 +1000
commitb6db19a5c67e4b58bc2555d7ff83f97bdba6811b (patch)
tree33f7eb2d71ae40282fda685622680692dd169b04 /libs/backends/portaudio/portaudio_backend.cc
parent2437bbbe2315a4f9991874ea8baa5d91230bc139 (diff)
Add host api/driver selection to PortaudioBackend
Diffstat (limited to 'libs/backends/portaudio/portaudio_backend.cc')
-rw-r--r--libs/backends/portaudio/portaudio_backend.cc29
1 files changed, 28 insertions, 1 deletions
diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc
index 0277ca1270..3e24ff28f0 100644
--- a/libs/backends/portaudio/portaudio_backend.cc
+++ b/libs/backends/portaudio/portaudio_backend.cc
@@ -89,10 +89,37 @@ PortAudioBackend::is_realtime () const
return true;
}
+bool
+PortAudioBackend::requires_driver_selection() const
+{
+ // we could do this but implementation would need changing
+ /*
+ if (enumerate_drivers().size() == 1) {
+ return false;
+ }
+ */
+ return true;
+}
+
+std::vector<std::string>
+PortAudioBackend::enumerate_drivers () const
+{
+ std::vector<std::string> currently_available;
+ _pcmio->host_api_list (currently_available);
+ return currently_available;
+}
+
+int
+PortAudioBackend::set_driver (const std::string& name)
+{
+ _target_driver = name;
+ return 0;
+}
+
std::vector<AudioBackend::DeviceStatus>
PortAudioBackend::enumerate_devices () const
{
- _pcmio->discover();
+ _pcmio->discover(_target_driver);
_audio_device_status.clear();
std::map<int, std::string> devices;
_pcmio->device_list(devices);