diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-18 00:35:51 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-18 00:35:51 +0200 |
commit | 9840a115373247eaac804e87f63346c175c99c70 (patch) | |
tree | 200b543dbf9ca8d0985f81e495098e1387e3fc36 /libs/backends | |
parent | 78c915f5ebdc15a68eec85ecdcdfd38569c275b5 (diff) |
implement metadata-set for remaining backends
Diffstat (limited to 'libs/backends')
-rw-r--r-- | libs/backends/alsa/alsa_audiobackend.cc | 4 | ||||
-rw-r--r-- | libs/backends/coreaudio/coreaudio_backend.cc | 14 | ||||
-rw-r--r-- | libs/backends/coreaudio/coreaudio_backend.h | 1 | ||||
-rw-r--r-- | libs/backends/dummy/dummy_audiobackend.cc | 5 | ||||
-rw-r--r-- | libs/backends/jack/jack_audiobackend.h | 1 | ||||
-rw-r--r-- | libs/backends/jack/jack_portengine.cc | 14 | ||||
-rw-r--r-- | libs/backends/portaudio/portaudio_backend.cc | 18 | ||||
-rw-r--r-- | libs/backends/portaudio/portaudio_backend.h | 1 |
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; |