| @@ -45,22 +45,27 @@ public: | |||||
| fPlugin(plugin), | fPlugin(plugin), | ||||
| fUI(this, 0, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, setSizeCallback, plugin->getInstancePointer()) | fUI(this, 0, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, setSizeCallback, plugin->getInstancePointer()) | ||||
| { | { | ||||
| fUI.setTitle(host->uiName); | |||||
| fUI.setWindowTitle(host->uiName); | |||||
| if (host->uiParentId != 0) | if (host->uiParentId != 0) | ||||
| fUI.setTransientWinId(host->uiParentId); | |||||
| fUI.setWindowTransientWinId(host->uiParentId); | |||||
| } | |||||
| ~UICarla() | |||||
| { | |||||
| fUI.quit(); | |||||
| } | } | ||||
| // --------------------------------------------- | // --------------------------------------------- | ||||
| void carla_show(const bool yesNo) | void carla_show(const bool yesNo) | ||||
| { | { | ||||
| fUI.setVisible(yesNo); | |||||
| fUI.setWindowVisible(yesNo); | |||||
| } | } | ||||
| void carla_idle() | |||||
| bool carla_idle() | |||||
| { | { | ||||
| fUI.idle(); | |||||
| return fUI.idle(); | |||||
| } | } | ||||
| void carla_setParameterValue(const uint32_t index, const float value) | void carla_setParameterValue(const uint32_t index, const float value) | ||||
| @@ -84,7 +89,7 @@ public: | |||||
| void carla_setUiTitle(const char* const uiTitle) | void carla_setUiTitle(const char* const uiTitle) | ||||
| { | { | ||||
| fUI.setTitle(uiTitle); | |||||
| fUI.setWindowTitle(uiTitle); | |||||
| } | } | ||||
| // --------------------------------------------- | // --------------------------------------------- | ||||
| @@ -112,7 +117,7 @@ protected: | |||||
| void handleSetSize(const uint width, const uint height) | void handleSetSize(const uint width, const uint height) | ||||
| { | { | ||||
| fUI.setSize(width, height); | |||||
| fUI.setWindowSize(width, height); | |||||
| } | } | ||||
| // --------------------------------------------- | // --------------------------------------------- | ||||
| @@ -205,25 +210,23 @@ protected: | |||||
| static NativeParameter param; | static NativeParameter param; | ||||
| // reset | |||||
| param.hints = ::PARAMETER_IS_ENABLED; | |||||
| param.scalePointCount = 0; | param.scalePointCount = 0; | ||||
| param.scalePoints = nullptr; | param.scalePoints = nullptr; | ||||
| { | { | ||||
| int nativeParamHints = ::PARAMETER_IS_ENABLED; | |||||
| int nativeParamHints = ::NATIVE_PARAMETER_IS_ENABLED; | |||||
| const uint32_t paramHints = fPlugin.getParameterHints(index); | const uint32_t paramHints = fPlugin.getParameterHints(index); | ||||
| if (paramHints & kParameterIsAutomable) | if (paramHints & kParameterIsAutomable) | ||||
| nativeParamHints |= ::PARAMETER_IS_AUTOMABLE; | |||||
| nativeParamHints |= ::NATIVE_PARAMETER_IS_AUTOMABLE; | |||||
| if (paramHints & kParameterIsBoolean) | if (paramHints & kParameterIsBoolean) | ||||
| nativeParamHints |= ::PARAMETER_IS_BOOLEAN; | |||||
| nativeParamHints |= ::NATIVE_PARAMETER_IS_BOOLEAN; | |||||
| if (paramHints & kParameterIsInteger) | if (paramHints & kParameterIsInteger) | ||||
| nativeParamHints |= ::PARAMETER_IS_INTEGER; | |||||
| nativeParamHints |= ::NATIVE_PARAMETER_IS_INTEGER; | |||||
| if (paramHints & kParameterIsLogarithmic) | if (paramHints & kParameterIsLogarithmic) | ||||
| nativeParamHints |= ::PARAMETER_IS_LOGARITHMIC; | |||||
| nativeParamHints |= ::NATIVE_PARAMETER_IS_LOGARITHMIC; | |||||
| if (paramHints & kParameterIsOutput) | if (paramHints & kParameterIsOutput) | ||||
| nativeParamHints |= ::PARAMETER_IS_OUTPUT; | |||||
| nativeParamHints |= ::NATIVE_PARAMETER_IS_OUTPUT; | |||||
| param.hints = static_cast<NativeParameterHints>(nativeParamHints); | param.hints = static_cast<NativeParameterHints>(nativeParamHints); | ||||
| } | } | ||||
| @@ -329,7 +332,13 @@ protected: | |||||
| realMidiEvent.frame = midiEvent.time; | realMidiEvent.frame = midiEvent.time; | ||||
| realMidiEvent.size = midiEvent.size; | realMidiEvent.size = midiEvent.size; | ||||
| carla_copy<uint8_t>(realMidiEvent.buf, midiEvent.data, midiEvent.size); | |||||
| uint8_t j=0; | |||||
| for (; j<midiEvent.size; ++j) | |||||
| realMidiEvent.data[j] = midiEvent.data[j]; | |||||
| for (; j<midiEvent.size; ++j) | |||||
| realMidiEvent.data[j] = midiEvent.data[j]; | |||||
| realMidiEvent.dataExt = nullptr; | |||||
| } | } | ||||
| fPlugin.run(const_cast<const float**>(inBuffer), outBuffer, frames, realMidiEvents, midiEventCount); | fPlugin.run(const_cast<const float**>(inBuffer), outBuffer, frames, realMidiEvents, midiEventCount); | ||||
| @@ -348,17 +357,30 @@ protected: | |||||
| void uiShow(const bool show) override | void uiShow(const bool show) override | ||||
| { | { | ||||
| if (show) | if (show) | ||||
| { | |||||
| createUiIfNeeded(); | createUiIfNeeded(); | ||||
| CARLA_SAFE_ASSERT_RETURN(fUiPtr != nullptr,); | |||||
| if (fUiPtr != nullptr) | |||||
| fUiPtr->carla_show(show); | fUiPtr->carla_show(show); | ||||
| } | |||||
| else if (fUiPtr != nullptr) | |||||
| { | |||||
| delete fUiPtr; | |||||
| fUiPtr = nullptr; | |||||
| } | |||||
| } | } | ||||
| void uiIdle() override | void uiIdle() override | ||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN(fUiPtr != nullptr,); | CARLA_SAFE_ASSERT_RETURN(fUiPtr != nullptr,); | ||||
| fUiPtr->carla_idle(); | |||||
| if (! fUiPtr->carla_idle()) | |||||
| { | |||||
| uiClosed(); | |||||
| delete fUiPtr; | |||||
| fUiPtr = nullptr; | |||||
| } | |||||
| } | } | ||||
| void uiSetParameterValue(const uint32_t index, const float value) override | void uiSetParameterValue(const uint32_t index, const float value) override | ||||