Signed-off-by: falkTX <falktx@falktx.com>tags/v2.5.2
| @@ -4352,6 +4352,37 @@ public: | |||
| fExt.worker->end_run(fHandle2); | |||
| } | |||
| #ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // Control Output | |||
| if (pData->event.portOut != nullptr) | |||
| { | |||
| uint8_t channel; | |||
| uint16_t param; | |||
| float value; | |||
| for (uint32_t k=0; k < pData->param.count; ++k) | |||
| { | |||
| if (pData->param.data[k].type != PARAMETER_OUTPUT) | |||
| continue; | |||
| if (fStrictBounds >= 0 && (pData->param.data[k].hints & PARAMETER_IS_STRICT_BOUNDS) != 0) | |||
| // plugin is responsible to ensure correct bounds | |||
| pData->param.ranges[k].fixValue(fParamBuffers[k]); | |||
| if (pData->param.data[k].mappedControlIndex > 0) | |||
| { | |||
| channel = pData->param.data[k].midiChannel; | |||
| param = static_cast<uint16_t>(pData->param.data[k].mappedControlIndex); | |||
| value = pData->param.ranges[k].getNormalizedValue(fParamBuffers[k]); | |||
| pData->event.portOut->writeControlEvent(0, channel, kEngineControlEventTypeParameter, | |||
| param, -1, value); | |||
| } | |||
| } | |||
| } // End of Control Output | |||
| #endif | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // Events/MIDI Output | |||
| @@ -4458,37 +4489,6 @@ public: | |||
| } | |||
| } | |||
| #ifndef BUILD_BRIDGE_ALTERNATIVE_ARCH | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| // Control Output | |||
| if (pData->event.portOut != nullptr) | |||
| { | |||
| uint8_t channel; | |||
| uint16_t param; | |||
| float value; | |||
| for (uint32_t k=0; k < pData->param.count; ++k) | |||
| { | |||
| if (pData->param.data[k].type != PARAMETER_OUTPUT) | |||
| continue; | |||
| if (fStrictBounds >= 0 && (pData->param.data[k].hints & PARAMETER_IS_STRICT_BOUNDS) != 0) | |||
| // plugin is responsible to ensure correct bounds | |||
| pData->param.ranges[k].fixValue(fParamBuffers[k]); | |||
| if (pData->param.data[k].mappedControlIndex > 0) | |||
| { | |||
| channel = pData->param.data[k].midiChannel; | |||
| param = static_cast<uint16_t>(pData->param.data[k].mappedControlIndex); | |||
| value = pData->param.ranges[k].getNormalizedValue(fParamBuffers[k]); | |||
| pData->event.portOut->writeControlEvent(0, channel, kEngineControlEventTypeParameter, | |||
| param, -1, value); | |||
| } | |||
| } | |||
| } // End of Control Output | |||
| #endif | |||
| fFirstActive = false; | |||
| // -------------------------------------------------------------------------------------------------------- | |||
| @@ -1235,17 +1235,17 @@ public: | |||
| { | |||
| fMidiEventCount = MAX_MIDI_CHANNELS*2; | |||
| for (uint8_t i=0, k=MAX_MIDI_CHANNELS; i < MAX_MIDI_CHANNELS; ++i) | |||
| for (uint8_t i=0; i < MAX_MIDI_CHANNELS; ++i) | |||
| { | |||
| fMidiEvents[k].type = kVstMidiType; | |||
| fMidiEvents[k].byteSize = kVstMidiEventSize; | |||
| fMidiEvents[k].midiData[0] = char(MIDI_STATUS_CONTROL_CHANGE | (k & MIDI_CHANNEL_BIT)); | |||
| fMidiEvents[k].midiData[1] = MIDI_CONTROL_ALL_NOTES_OFF; | |||
| fMidiEvents[k+i].type = kVstMidiType; | |||
| fMidiEvents[k+i].byteSize = kVstMidiEventSize; | |||
| fMidiEvents[k+i].midiData[0] = char(MIDI_STATUS_CONTROL_CHANGE | (k & MIDI_CHANNEL_BIT)); | |||
| fMidiEvents[k+i].midiData[1] = MIDI_CONTROL_ALL_SOUND_OFF; | |||
| fMidiEvents[i].type = kVstMidiType; | |||
| fMidiEvents[i].byteSize = kVstMidiEventSize; | |||
| fMidiEvents[i].midiData[0] = char(MIDI_STATUS_CONTROL_CHANGE | (i & MIDI_CHANNEL_BIT)); | |||
| fMidiEvents[i].midiData[1] = MIDI_CONTROL_ALL_NOTES_OFF; | |||
| fMidiEvents[MAX_MIDI_CHANNELS + i].type = kVstMidiType; | |||
| fMidiEvents[MAX_MIDI_CHANNELS + i].byteSize = kVstMidiEventSize; | |||
| fMidiEvents[MAX_MIDI_CHANNELS + i].midiData[0] = char(MIDI_STATUS_CONTROL_CHANGE | (i & MIDI_CHANNEL_BIT)); | |||
| fMidiEvents[MAX_MIDI_CHANNELS + i].midiData[1] = MIDI_CONTROL_ALL_SOUND_OFF; | |||
| } | |||
| } | |||
| else if (pData->ctrlChannel >= 0 && pData->ctrlChannel < MAX_MIDI_CHANNELS) | |||
| @@ -1342,7 +1342,7 @@ public: | |||
| if (pData->extNotes.mutex.tryLock()) | |||
| { | |||
| ExternalMidiNote note = { 0, 0, 0 }; | |||
| ExternalMidiNote note = { -1, 0, 0 }; | |||
| for (; fMidiEventCount < kPluginMaxMidiEvents*2 && ! pData->extNotes.data.isEmpty();) | |||
| { | |||
| @@ -28,6 +28,7 @@ TARGETS = $(BINDIR)/libcarla_utils$(LIB_EXT) | |||
| LIBS = $(MODULEDIR)/lilv.a | |||
| LIBS += $(MODULEDIR)/water.files.a | |||
| LIBS += $(MODULEDIR)/ysfx.a | |||
| ifeq ($(USING_JUCE),true) | |||
| LIBS += $(MODULEDIR)/carla_juce.a | |||
| @@ -43,6 +44,7 @@ endif | |||
| LINK_FLAGS += $(LILV_LIBS) | |||
| LINK_FLAGS += $(WATER_LIBS) | |||
| LINK_FLAGS += $(YSFX_GRAPHICS_LIBS) | |||
| ifeq ($(HAVE_X11),true) | |||
| LINK_FLAGS += $(X11_LIBS) | |||
| @@ -65,9 +67,6 @@ LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) | |||
| LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS) | |||
| endif | |||
| LINK_FLAGS += $(MODULEDIR)/ysfx.a | |||
| LINK_FLAGS += $(YSFX_GRAPHICS_LIBS) | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| all: $(TARGETS) | |||
| @@ -49,7 +49,6 @@ from carla_backend import ( | |||
| PLUGIN_SF2, | |||
| PLUGIN_SFZ, | |||
| PLUGIN_JACK, | |||
| PLUGIN_JSFX, | |||
| PLUGIN_CATEGORY_NONE, | |||
| PLUGIN_CATEGORY_SYNTH, | |||
| PLUGIN_CATEGORY_DELAY, | |||
| @@ -98,8 +97,6 @@ def getPluginTypeAsString(ptype): | |||
| return "SFZ" | |||
| if ptype == PLUGIN_JACK: | |||
| return "JACK" | |||
| if ptype == PLUGIN_JSFX: | |||
| return "JSFX" | |||
| print("getPluginTypeAsString(%i) - invalid type" % ptype) | |||
| return "Unknown" | |||
| @@ -138,8 +135,6 @@ def getPluginTypeFromString(stype): | |||
| return PLUGIN_SFZ | |||
| if stype == "jack": | |||
| return PLUGIN_JACK | |||
| if stype == "jsfx": | |||
| return PLUGIN_JSFX | |||
| print("getPluginTypeFromString(\"%s\") - invalid string type" % stype) | |||
| return PLUGIN_NONE | |||
| @@ -76,8 +76,8 @@ | |||
| # if __cplusplus >= 201103L || (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && defined(__GXX_EXPERIMENTAL_CXX0X__)) || __has_extension(cxx_noexcept) | |||
| # define CARLA_PROPER_CPP11_SUPPORT | |||
| # if (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) < 407 && ! defined(__clang__)) || (defined(__clang__) && ! __has_extension(cxx_override_control)) | |||
| # define override // gcc4.7+ only | |||
| # define final // gcc4.7+ only | |||
| # define override /* gcc4.7+ only */ | |||
| # define final /* gcc4.7+ only */ | |||
| # endif | |||
| # endif | |||
| #endif | |||
| @@ -27,7 +27,6 @@ | |||
| #include "water/memory/SharedResourcePointer.h" | |||
| #include "water/text/StringArray.h" | |||
| using water::Array; | |||
| using water::File; | |||
| using water::SharedResourcePointer; | |||
| using water::String; | |||
| @@ -22,10 +22,6 @@ | |||
| #include "CarlaString.hpp" | |||
| #include "CarlaProcessUtils.hpp" | |||
| #ifdef CARLA_OS_LINUX | |||
| # include <sys/prctl.h> | |||
| #endif | |||
| #ifdef CARLA_OS_WASM | |||
| # error Threads do not work under wasm! | |||
| #endif | |||