summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-11-26 14:30:46 +0100
committerRobin Gareus <robin@gareus.org>2016-11-26 15:31:21 +0100
commit335debfa2fed045dc80c43fb2ef62d89262fc8f8 (patch)
tree1c53a70e42aa95a20232851986077ffb0373848f
parent5bf8a5537b7771a7f523ab242f186e513c3a4c76 (diff)
Add API to enforce valid device selection.
-rw-r--r--libs/ardour/ardour/audio_backend.h8
-rw-r--r--libs/backends/alsa/alsa_audiobackend.h1
-rw-r--r--libs/backends/portaudio/portaudio_backend.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h
index 9a00cf281e..6523eb5081 100644
--- a/libs/ardour/ardour/audio_backend.h
+++ b/libs/ardour/ardour/audio_backend.h
@@ -202,6 +202,14 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
*/
virtual bool use_separate_input_and_output_devices () const { return false; }
+ /* Return true if the backend uses separate I/O devices only for the case
+ * of allowing one to be "None".
+ *
+ * ie. Input Device must match Output Device, except if either of them
+ * is get_standard_device_name (DeviceNone).
+ */
+ virtual bool match_input_output_devices_or_none () const { return false; }
+
/** Returns a collection of DeviceStatuses identifying devices discovered
* by this backend since the start of the process.
*
diff --git a/libs/backends/alsa/alsa_audiobackend.h b/libs/backends/alsa/alsa_audiobackend.h
index d8dfb31725..bc2620ed9e 100644
--- a/libs/backends/alsa/alsa_audiobackend.h
+++ b/libs/backends/alsa/alsa_audiobackend.h
@@ -172,6 +172,7 @@ class AlsaAudioBackend : public AudioBackend {
bool is_realtime () const;
bool use_separate_input_and_output_devices () const { return true; }
+ bool match_input_output_devices_or_none () const { return true; }
bool can_set_period_size () const { return true; }
std::vector<DeviceStatus> enumerate_devices () const;
diff --git a/libs/backends/portaudio/portaudio_backend.h b/libs/backends/portaudio/portaudio_backend.h
index 601c3433cb..692e4c0e61 100644
--- a/libs/backends/portaudio/portaudio_backend.h
+++ b/libs/backends/portaudio/portaudio_backend.h
@@ -179,6 +179,7 @@ class PortAudioBackend : public AudioBackend {
bool get_use_buffered_io () { return _use_blocking_api; }
bool use_separate_input_and_output_devices () const;
+ bool match_input_output_devices_or_none () const { return true; }
std::vector<DeviceStatus> enumerate_devices () const;
std::vector<DeviceStatus> enumerate_input_devices () const;
std::vector<DeviceStatus> enumerate_output_devices () const;