diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2018-10-17 14:10:50 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2018-10-17 14:11:37 -0400 |
commit | e047b01aa2560b137d45a131c0168145a27b953e (patch) | |
tree | feab53edc9ae2cda6180d712a502e5b513bad1f9 | |
parent | 319a6a52ba071dd94bd4bf0669c94806df4d3727 (diff) |
add new API for retrieving port flags from backend
-rw-r--r-- | libs/ardour/ardour/port_engine.h | 5 | ||||
-rw-r--r-- | libs/backends/alsa/alsa_audiobackend.cc | 10 | ||||
-rw-r--r-- | libs/backends/alsa/alsa_audiobackend.h | 1 | ||||
-rw-r--r-- | libs/backends/coreaudio/coreaudio_backend.cc | 10 | ||||
-rw-r--r-- | libs/backends/coreaudio/coreaudio_backend.h | 1 | ||||
-rw-r--r-- | libs/backends/dummy/dummy_audiobackend.cc | 10 | ||||
-rw-r--r-- | libs/backends/dummy/dummy_audiobackend.h | 1 | ||||
-rw-r--r-- | libs/backends/jack/jack_audiobackend.h | 1 | ||||
-rw-r--r-- | libs/backends/jack/jack_portengine.cc | 6 | ||||
-rw-r--r-- | libs/backends/portaudio/portaudio_backend.cc | 12 | ||||
-rw-r--r-- | libs/backends/portaudio/portaudio_backend.h | 1 |
11 files changed, 57 insertions, 1 deletions
diff --git a/libs/ardour/ardour/port_engine.h b/libs/ardour/ardour/port_engine.h index 9c72b77550..e93e78db4a 100644 --- a/libs/ardour/ardour/port_engine.h +++ b/libs/ardour/ardour/port_engine.h @@ -120,6 +120,11 @@ public: */ virtual std::string get_port_name (PortHandle) const = 0; + /** Return the flags of the port referred to by @param port. If the port + * does not exist, return an empty string. + */ + virtual PortFlags get_port_flags (PortHandle) const = 0; + /** Return the port-property value and type for a given key. * (eg query a human readable port name) * diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc index 42af5a4b92..9594f31d98 100644 --- a/libs/backends/alsa/alsa_audiobackend.cc +++ b/libs/backends/alsa/alsa_audiobackend.cc @@ -1212,6 +1212,16 @@ AlsaAudioBackend::get_port_name (PortEngine::PortHandle port) const return static_cast<AlsaPort*>(port)->name (); } +PortFlags +AlsaAudioBackend::get_port_flags (PortEngine::PortHandle port) const +{ + if (!valid_port (port)) { + PBD::warning << _("AlsaBackend::get_port_flags: Invalid Port(s)") << endmsg; + return PortFlags (0); + } + return static_cast<AlsaPort*>(port)->flags (); +} + int AlsaAudioBackend::get_port_property (PortHandle port, const std::string& key, std::string& value, std::string& type) const { diff --git a/libs/backends/alsa/alsa_audiobackend.h b/libs/backends/alsa/alsa_audiobackend.h index f6887fe346..11623cfcf4 100644 --- a/libs/backends/alsa/alsa_audiobackend.h +++ b/libs/backends/alsa/alsa_audiobackend.h @@ -275,6 +275,7 @@ class AlsaAudioBackend : public AudioBackend { int set_port_name (PortHandle, const std::string&); std::string get_port_name (PortHandle) const; + PortFlags get_port_flags (PortHandle) const; PortHandle get_port_by_name (const std::string&) const; int get_port_property (PortHandle, const std::string& key, std::string& value, std::string& type) const; diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc index 8480686416..4c02c32ec8 100644 --- a/libs/backends/coreaudio/coreaudio_backend.cc +++ b/libs/backends/coreaudio/coreaudio_backend.cc @@ -957,6 +957,16 @@ CoreAudioBackend::get_port_name (PortEngine::PortHandle port) const return static_cast<CoreBackendPort*>(port)->name (); } +PortFlags +CoreAudioBackend::get_port_flags (PortEngine::PortHandle port) const +{ + if (!valid_port (port)) { + PBD::warning << _("CoreAudioBackend::get_port_flags: Invalid Port(s)") << endmsg; + return PortFlags (0); + } + return static_cast<CoreBackendPort*>(port)->flags (); +} + int CoreAudioBackend::get_port_property (PortHandle port, const std::string& key, std::string& value, std::string& type) const { diff --git a/libs/backends/coreaudio/coreaudio_backend.h b/libs/backends/coreaudio/coreaudio_backend.h index b0a9727ae3..712deca97b 100644 --- a/libs/backends/coreaudio/coreaudio_backend.h +++ b/libs/backends/coreaudio/coreaudio_backend.h @@ -321,6 +321,7 @@ class CoreAudioBackend : public AudioBackend { int set_port_name (PortHandle, const std::string&); std::string get_port_name (PortHandle) const; + PortFlags get_port_flags (PortHandle) const; PortHandle get_port_by_name (const std::string&) const; int get_port_property (PortHandle, const std::string& key, std::string& value, std::string& type) const; int set_port_property (PortHandle, const std::string& key, const std::string& value, const std::string& type); diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc index a8dcb8509e..8f0daf6aec 100644 --- a/libs/backends/dummy/dummy_audiobackend.cc +++ b/libs/backends/dummy/dummy_audiobackend.cc @@ -678,6 +678,16 @@ DummyAudioBackend::get_port_name (PortEngine::PortHandle port) const return static_cast<DummyPort*>(port)->name (); } +PortFlags +DummyAudioBackend::get_port_flags (PortEngine::PortHandle port) const +{ + if (!valid_port (port)) { + PBD::error << _("DummyBackend::get_port_flags: Invalid Port(s)") << endmsg; + return PortFlags (0); + } + return static_cast<DummyPort*>(port)->flags (); +} + int DummyAudioBackend::get_port_property (PortHandle port, const std::string& key, std::string& value, std::string& type) const { diff --git a/libs/backends/dummy/dummy_audiobackend.h b/libs/backends/dummy/dummy_audiobackend.h index 48e588d364..e687321abf 100644 --- a/libs/backends/dummy/dummy_audiobackend.h +++ b/libs/backends/dummy/dummy_audiobackend.h @@ -328,6 +328,7 @@ class DummyAudioBackend : public AudioBackend { int set_port_name (PortHandle, const std::string&); std::string get_port_name (PortHandle) const; + PortFlags get_port_flags (PortHandle) const; PortHandle get_port_by_name (const std::string&) const; int get_port_property (PortHandle, const std::string& key, std::string& value, std::string& type) const; diff --git a/libs/backends/jack/jack_audiobackend.h b/libs/backends/jack/jack_audiobackend.h index e14396ea24..bd4886651f 100644 --- a/libs/backends/jack/jack_audiobackend.h +++ b/libs/backends/jack/jack_audiobackend.h @@ -132,6 +132,7 @@ class JACKAudioBackend : public AudioBackend { int set_port_name (PortHandle, const std::string&); std::string get_port_name (PortHandle) const; + PortFlags get_port_flags (PortHandle) const; PortHandle get_port_by_name (const std::string&) const; int get_port_property (PortHandle, const std::string& key, std::string& value, std::string& type) const; int set_port_property (PortHandle, const std::string& key, const std::string& value, const std::string& type); diff --git a/libs/backends/jack/jack_portengine.cc b/libs/backends/jack/jack_portengine.cc index 70dded77c4..a9cca6fc30 100644 --- a/libs/backends/jack/jack_portengine.cc +++ b/libs/backends/jack/jack_portengine.cc @@ -124,6 +124,12 @@ JACKAudioBackend::get_port_name (PortHandle port) const return jack_port_name ((jack_port_t*) port); } +PortFlags +JACKAudioBackend::get_port_flags (PortHandle port) const +{ + return PortFlags (jack_port_flags ((jack_port_t*) port)); +} + int JACKAudioBackend::get_port_property (PortHandle port, const std::string& key, std::string& value, std::string& type) const { diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc index 01753803c9..398347b8db 100644 --- a/libs/backends/portaudio/portaudio_backend.cc +++ b/libs/backends/portaudio/portaudio_backend.cc @@ -1223,11 +1223,21 @@ PortAudioBackend::get_port_name (PortEngine::PortHandle port) const { if (!valid_port (port)) { DEBUG_PORTS("get_port_name: Invalid Port(s)\n"); - return std::string (); + return PortFlags (0); } return static_cast<PamPort*>(port)->name (); } +PortFlags +PortAudioBackend::get_port_flags (PortEngine::PortHandle port) const +{ + if (!valid_port (port)) { + DEBUG_PORTS("get_port_flags: Invalid Port(s)\n"); + return std::string (); + } + return static_cast<PamPort*>(port)->flags (); +} + int PortAudioBackend::get_port_property (PortHandle port, const std::string& key, diff --git a/libs/backends/portaudio/portaudio_backend.h b/libs/backends/portaudio/portaudio_backend.h index bc493101fc..da16d826c4 100644 --- a/libs/backends/portaudio/portaudio_backend.h +++ b/libs/backends/portaudio/portaudio_backend.h @@ -255,6 +255,7 @@ class PortAudioBackend : public AudioBackend { int set_port_name (PortHandle, const std::string&); std::string get_port_name (PortHandle) const; + PortFlags get_port_flags (PortHandle) const; PortHandle get_port_by_name (const std::string&) const; int get_port_property (PortHandle, const std::string& key, std::string& value, std::string& type) const; int set_port_property (PortHandle, const std::string& key, const std::string& value, const std::string& type); |