implement metadata-set for remaining backends
authorRobin Gareus <robin@gareus.org>
Sun, 17 Apr 2016 22:35:51 +0000 (00:35 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 17 Apr 2016 22:35:51 +0000 (00:35 +0200)
libs/backends/alsa/alsa_audiobackend.cc
libs/backends/coreaudio/coreaudio_backend.cc
libs/backends/coreaudio/coreaudio_backend.h
libs/backends/dummy/dummy_audiobackend.cc
libs/backends/jack/jack_audiobackend.h
libs/backends/jack/jack_portengine.cc
libs/backends/portaudio/portaudio_backend.cc
libs/backends/portaudio/portaudio_backend.h

index d5e75b11ec52499328e50bbc71907b24f386e430..df5a7706ea1d386ee8cece52c29621358ba36092 100644 (file)
@@ -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;
 }
index a620bf08267fcdafd16b63e32da16b051f26e430..8dcdf796437763a994f13b7488642ccd5ea35c68 100644 (file)
@@ -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
 {
index e36e9369180efc1357e944a2061ecfe8e6546d6a..11e8445ab5f6c41b28150e163e1d8386ff03fc45 100644 (file)
@@ -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;
 
index b168d4e32b393b4d45df7e00ccdbef5076bb214e..d1fe378e9f9ce602144b0f45aeeb380754477b3c 100644 (file)
@@ -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
 {
index 54eea35f02c81bd84d4d0fe52fe45c303857976e..847b21b767c703692a035fac96aaa53e7d6fcc94 100644 (file)
@@ -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;
 
index 10b2efed6b39949abaaeb2a61b9f9acf6f9a252a..0b25ecbe012d3692b37b443a27b8305069aafbd6 100644 (file)
@@ -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
 {
index 52049caea1573756088f3fd142b8228d8352a2cf..26e3264e1f64d26f09c98638e74b2f5fa42faea3 100644 (file)
@@ -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
 {
index 3e329a42e02fdf75f1a09a1e340990f2654a885a..601c3433cb1a24a153229bc76f2ad3c5e9e1f7cb 100644 (file)
@@ -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;