summaryrefslogtreecommitdiff
path: root/libs/backends
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-04-18 00:35:51 +0200
committerRobin Gareus <robin@gareus.org>2016-04-18 00:35:51 +0200
commit9840a115373247eaac804e87f63346c175c99c70 (patch)
tree200b543dbf9ca8d0985f81e495098e1387e3fc36 /libs/backends
parent78c915f5ebdc15a68eec85ecdcdfd38569c275b5 (diff)
implement metadata-set for remaining backends
Diffstat (limited to 'libs/backends')
-rw-r--r--libs/backends/alsa/alsa_audiobackend.cc4
-rw-r--r--libs/backends/coreaudio/coreaudio_backend.cc14
-rw-r--r--libs/backends/coreaudio/coreaudio_backend.h1
-rw-r--r--libs/backends/dummy/dummy_audiobackend.cc5
-rw-r--r--libs/backends/jack/jack_audiobackend.h1
-rw-r--r--libs/backends/jack/jack_portengine.cc14
-rw-r--r--libs/backends/portaudio/portaudio_backend.cc18
-rw-r--r--libs/backends/portaudio/portaudio_backend.h1
8 files changed, 53 insertions, 5 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc
index d5e75b11ec..df5a7706ea 100644
--- a/libs/backends/alsa/alsa_audiobackend.cc
+++ b/libs/backends/alsa/alsa_audiobackend.cc
@@ -1251,8 +1251,8 @@ AlsaAudioBackend::set_port_property (PortHandle port, const std::string& key, co
return -1;
}
if (key == "http://jackaudio.org/metadata/pretty-name" && type.empty ()) {
- static_cast<AlsaPort*>(port)->set_pretty_name (value);
- return 0;
+ static_cast<AlsaPort*>(port)->set_pretty_name (value);
+ return 0;
}
return -1;
}
diff --git a/libs/backends/coreaudio/coreaudio_backend.cc b/libs/backends/coreaudio/coreaudio_backend.cc
index a620bf0826..8dcdf79643 100644
--- a/libs/backends/coreaudio/coreaudio_backend.cc
+++ b/libs/backends/coreaudio/coreaudio_backend.cc
@@ -935,6 +935,20 @@ CoreAudioBackend::get_port_property (PortHandle port, const std::string& key, st
return -1;
}
+int
+CoreAudioBackend::set_port_property (PortHandle port, const std::string& key, const std::string& value, const std::string& type)
+{
+ if (!valid_port (port)) {
+ PBD::warning << _("CoreAudioBackend::set_port_property: Invalid Port(s)") << endmsg;
+ return -1;
+ }
+ if (key == "http://jackaudio.org/metadata/pretty-name" && type.empty ()) {
+ static_cast<CoreBackendPort*>(port)->set_pretty_name (value);
+ return 0;
+ }
+ return -1;
+}
+
PortEngine::PortHandle
CoreAudioBackend::get_port_by_name (const std::string& name) const
{
diff --git a/libs/backends/coreaudio/coreaudio_backend.h b/libs/backends/coreaudio/coreaudio_backend.h
index e36e936918..11e8445ab5 100644
--- a/libs/backends/coreaudio/coreaudio_backend.h
+++ b/libs/backends/coreaudio/coreaudio_backend.h
@@ -330,6 +330,7 @@ class CoreAudioBackend : public AudioBackend {
std::string get_port_name (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);
int get_ports (const std::string& port_name_pattern, DataType type, PortFlags flags, std::vector<std::string>&) const;
diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc
index b168d4e32b..d1fe378e9f 100644
--- a/libs/backends/dummy/dummy_audiobackend.cc
+++ b/libs/backends/dummy/dummy_audiobackend.cc
@@ -684,13 +684,12 @@ DummyAudioBackend::set_port_property (PortHandle port, const std::string& key, c
return -1;
}
if (key == "http://jackaudio.org/metadata/pretty-name" && type.empty ()) {
- static_cast<DummyPort*>(port)->set_pretty_name (value);
- return 0;
+ static_cast<DummyPort*>(port)->set_pretty_name (value);
+ return 0;
}
return -1;
}
-
PortEngine::PortHandle
DummyAudioBackend::get_port_by_name (const std::string& name) const
{
diff --git a/libs/backends/jack/jack_audiobackend.h b/libs/backends/jack/jack_audiobackend.h
index 54eea35f02..847b21b767 100644
--- a/libs/backends/jack/jack_audiobackend.h
+++ b/libs/backends/jack/jack_audiobackend.h
@@ -133,6 +133,7 @@ class JACKAudioBackend : public AudioBackend {
std::string get_port_name (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);
int get_ports (const std::string& port_name_pattern, DataType type, PortFlags flags, std::vector<std::string>&) const;
diff --git a/libs/backends/jack/jack_portengine.cc b/libs/backends/jack/jack_portengine.cc
index 10b2efed6b..0b25ecbe01 100644
--- a/libs/backends/jack/jack_portengine.cc
+++ b/libs/backends/jack/jack_portengine.cc
@@ -147,6 +147,20 @@ JACKAudioBackend::get_port_property (PortHandle port, const std::string& key, st
#endif
}
+int
+JACKAudioBackend::set_port_property (PortHandle port, const std::string& key, const std::string& value, const std::string& type)
+{
+#ifdef HAVE_JACK_METADATA // really everyone ought to have this by now.
+ int rv = -1;
+ jack_client_t* client = _jack_connection->jack();
+ jack_uuid_t uuid = jack_port_uuid((jack_port_t*) port);
+ return jack_set_property(client, uuid, key.c_str(), value.c_str(), type.c_str());
+ return rv;
+#else
+ return -1;
+#endif
+}
+
PortEngine::PortHandle
JACKAudioBackend:: get_port_by_name (const std::string& name) const
{
diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc
index 52049caea1..26e3264e1f 100644
--- a/libs/backends/portaudio/portaudio_backend.cc
+++ b/libs/backends/portaudio/portaudio_backend.cc
@@ -1238,6 +1238,24 @@ PortAudioBackend::get_port_property (PortHandle port,
return -1;
}
+int
+PortAudioBackend::set_port_property (PortHandle port,
+ const std::string& key,
+ const std::string& value,
+ const std::string& type)
+{
+ if (!valid_port (port)) {
+ DEBUG_PORTS("get_port_name: Invalid Port(s)\n");
+ return -1;
+ }
+
+ if (key == "http://jackaudio.org/metadata/pretty-name" && type.empty ()) {
+ static_cast<PamPort*>(port)->set_pretty_name (value);
+ return 0;
+ }
+ return -1;
+}
+
PortEngine::PortHandle
PortAudioBackend::get_port_by_name (const std::string& name) const
{
diff --git a/libs/backends/portaudio/portaudio_backend.h b/libs/backends/portaudio/portaudio_backend.h
index 3e329a42e0..601c3433cb 100644
--- a/libs/backends/portaudio/portaudio_backend.h
+++ b/libs/backends/portaudio/portaudio_backend.h
@@ -267,6 +267,7 @@ class PortAudioBackend : public AudioBackend {
std::string get_port_name (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);
int get_ports (const std::string& port_name_pattern, DataType type, PortFlags flags, std::vector<std::string>&) const;