zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit c84b301765a5eef031c03294879444850f7e3234
parent a8f94e538c676cc58ce097863d94dba5345addab
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Fri, 18 Jul 2014 23:15:23 -0400

JACK: Merge OSC Metadata Patch

Add JACK Metadata for the (JACK) OSC port
Patch by Hanspeter Portner

Diffstat:
Msrc/Nio/CMakeLists.txt | 5+++++
Msrc/Nio/JackEngine.cpp | 14+++++++++++++-
2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/Nio/CMakeLists.txt b/src/Nio/CMakeLists.txt @@ -24,6 +24,11 @@ if(JackEnable) include_directories(${JACK_INCLUDE_DIR}) list(APPEND zynaddsubfx_nio_SRCS JackEngine.cpp) list(APPEND zynaddsubfx_nio_lib ${JACK_LIBRARIES}) + + CHECK_INCLUDE_FILES("jack/metadata.h" JACK_HAS_METADATA_API) + if(JACK_HAS_METADATA_API) + add_definitions(-DJACK_HAS_METADATA_API) + endif(JACK_HAS_METADATA_API) endif(JackEnable) if(PaEnable) diff --git a/src/Nio/JackEngine.cpp b/src/Nio/JackEngine.cpp @@ -21,6 +21,9 @@ #include <iostream> #include <jack/midiport.h> +#ifdef JACK_HAS_METADATA_API +# include <jack/metadata.h> +#endif // JACK_HAS_METADATA_API #include "jack_osc.h" #include <fcntl.h> #include <sys/stat.h> @@ -218,6 +221,10 @@ bool JackEngine::openAudio() midi.jack_sync = true; osc.oscport = jack_port_register(jackClient, "osc", JACK_DEFAULT_OSC_TYPE, JackPortIsInput, 0); +#ifdef JACK_HAS_METADATA_API + jack_uuid_t uuid = jack_port_uuid(osc.oscport); + jack_set_property(jackClient, uuid, "http://jackaudio.org/metadata/event-types", JACK_EVENT_TYPE__OSC, "text/plain"); +#endif // JACK_HAS_METADATA_API return true; } else @@ -235,8 +242,13 @@ void JackEngine::stopAudio() jack_port_unregister(jackClient, port); } midi.jack_sync = false; - if(osc.oscport) + if(osc.oscport) { jack_port_unregister(jackClient, osc.oscport); +#ifdef JACK_HAS_METADATA_API + jack_uuid_t uuid = jack_port_uuid(osc.oscport); + jack_remove_property(jackClient, uuid, "http://jackaudio.org/metadata/event-types"); +#endif // JACK_HAS_METADATA_API + } if(!getMidiEn()) disconnectJack(); }