diff options
author | David Robillard <d@drobilla.net> | 2014-05-05 14:39:24 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-05-05 14:39:24 +0000 |
commit | 9c2bcd14a5c3f72164a8395defce46e319189806 (patch) | |
tree | af80f798158eda2f6ceb633ce1574d1ec7f5c0f0 /src/server/JackDriver.cpp | |
parent | 99f86fd6a05ec00c8343d2f45a57e082c3c573fe (diff) | |
download | ingen-9c2bcd14a5c3f72164a8395defce46e319189806.tar.gz ingen-9c2bcd14a5c3f72164a8395defce46e319189806.tar.bz2 ingen-9c2bcd14a5c3f72164a8395defce46e319189806.zip |
Add support for Jack CV via metadata.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5400 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/JackDriver.cpp')
-rw-r--r-- | src/server/JackDriver.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/server/JackDriver.cpp b/src/server/JackDriver.cpp index 9b1bf512..04a07cc6 100644 --- a/src/server/JackDriver.cpp +++ b/src/server/JackDriver.cpp @@ -27,6 +27,7 @@ #endif #ifdef HAVE_JACK_METADATA #include <jack/metadata.h> +#include "jackey.h" #endif #include "ingen/Configuration.hpp" @@ -223,7 +224,8 @@ JackDriver::register_port(EnginePort& port) jack_port_t* jack_port = jack_port_register( _client, port.graph_port()->path().substr(1).c_str(), - (port.graph_port()->is_a(PortType::AUDIO) + ((port.graph_port()->is_a(PortType::AUDIO) || + port.graph_port()->is_a(PortType::CV)) ? JACK_DEFAULT_AUDIO_TYPE : JACK_DEFAULT_MIDI_TYPE), (port.graph_port()->is_input() ? JackPortIsInput : JackPortIsOutput), @@ -281,7 +283,12 @@ JackDriver::port_property_internal(const jack_port_t* jport, #ifdef HAVE_JACK_METADATA if (uri == _engine.world()->uris().lv2_name) { jack_set_property(_client, jack_port_uuid(jport), - JACK_METADATA_PRETTY_NAME, value.ptr<char>(), NULL); + JACK_METADATA_PRETTY_NAME, value.ptr<char>(), "text/plain"); + } else if (uri == _engine.world()->uris().rdf_type) { + if (value == _engine.world()->uris().lv2_CVPort) { + jack_set_property(_client, jack_port_uuid(jport), + JACKEY_SIGNAL_TYPE, "CV", "text/plain"); + } } #endif } @@ -291,6 +298,7 @@ JackDriver::create_port(DuplexPort* graph_port) { if (graph_port && (graph_port->is_a(PortType::AUDIO) || + graph_port->is_a(PortType::CV) || (graph_port->is_a(PortType::ATOM) && graph_port->buffer_type() == _engine.world()->uris().atom_Sequence))) { EnginePort* eport = new EnginePort(graph_port); |