summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-10-17 14:10:50 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2018-10-17 14:11:37 -0400
commite047b01aa2560b137d45a131c0168145a27b953e (patch)
treefeab53edc9ae2cda6180d712a502e5b513bad1f9 /libs
parent319a6a52ba071dd94bd4bf0669c94806df4d3727 (diff)
add new API for retrieving port flags from backend
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/port_engine.h5
-rw-r--r--libs/backends/alsa/alsa_audiobackend.cc10
-rw-r--r--libs/backends/alsa/alsa_audiobackend.h1
-rw-r--r--libs/backends/coreaudio/coreaudio_backend.cc10
-rw-r--r--libs/backends/coreaudio/coreaudio_backend.h1
-rw-r--r--libs/backends/dummy/dummy_audiobackend.cc10
-rw-r--r--libs/backends/dummy/dummy_audiobackend.h1
-rw-r--r--libs/backends/jack/jack_audiobackend.h1
-rw-r--r--libs/backends/jack/jack_portengine.cc6
-rw-r--r--libs/backends/portaudio/portaudio_backend.cc12
-rw-r--r--libs/backends/portaudio/portaudio_backend.h1
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);