From b98fd4bc7b8548cc2be538a91ce799fabbd3054f Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 9 Oct 2007 03:45:24 +0000 Subject: Fix OSC patching. Add OSC "bang" LV2 plugin, with GUI (just a button). Make OSC metronome suck slightly less. git-svn-id: http://svn.drobilla.net/lad/ingen@857 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/engine/events/SetPortValueEvent.cpp | 10 ++++++++++ src/libs/engine/events/SetPortValueEvent.hpp | 14 +++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'src/libs/engine/events') diff --git a/src/libs/engine/events/SetPortValueEvent.cpp b/src/libs/engine/events/SetPortValueEvent.cpp index f278c083..592c09b3 100644 --- a/src/libs/engine/events/SetPortValueEvent.cpp +++ b/src/libs/engine/events/SetPortValueEvent.cpp @@ -16,6 +16,7 @@ */ #include +#include "lv2_osc_print.h" #include "Responder.hpp" #include "SetPortValueEvent.hpp" #include "Engine.hpp" @@ -25,6 +26,7 @@ #include "ObjectStore.hpp" #include "AudioBuffer.hpp" #include "MidiBuffer.hpp" +#include "OSCBuffer.hpp" #include "ProcessContext.hpp" using namespace std; @@ -111,6 +113,14 @@ SetPortValueEvent::execute(ProcessContext& context) if (mbuf) { const double stamp = std::max((double)(_time - context.start()), mbuf->latest_stamp()); mbuf->append(stamp, _data_size, (const unsigned char*)_data); + return; + } + + OSCBuffer* const obuf = dynamic_cast(buf); + if (obuf) { + //cerr << "Appending OSC message:" << endl; + //lv2_osc_message_print((LV2Message*)_data); + lv2_osc_buffer_append_message(obuf->data(), (LV2Message*)_data); } } } diff --git a/src/libs/engine/events/SetPortValueEvent.hpp b/src/libs/engine/events/SetPortValueEvent.hpp index c9d46a8e..e6497aa5 100644 --- a/src/libs/engine/events/SetPortValueEvent.hpp +++ b/src/libs/engine/events/SetPortValueEvent.hpp @@ -58,13 +58,13 @@ public: private: enum ErrorType { NO_ERROR, PORT_NOT_FOUND, NO_SPACE }; - bool _omni; - uint32_t _voice_num; - string _port_path; - uint32_t _data_size; - void* _data; - PortImpl* _port; - ErrorType _error; + bool _omni; + uint32_t _voice_num; + const string _port_path; + uint32_t _data_size; + void* _data; + PortImpl* _port; + ErrorType _error; }; -- cgit v1.2.1