Signed-off-by: falkTX <falktx@falktx.com>tags/v2.1-rc1
| @@ -352,7 +352,11 @@ public: | |||||
| if (pluginId != 0) | if (pluginId != 0) | ||||
| return; | return; | ||||
| pHost->ui_parameter_touch(pHost->handle, index, touch); | |||||
| pHost->dispatcher(pHost->handle, | |||||
| NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER, | |||||
| static_cast<int32_t>(index), | |||||
| touch ? 1 : 0, | |||||
| nullptr, 0.0f); | |||||
| } | } | ||||
| void reloadFromUI() | void reloadFromUI() | ||||
| @@ -2338,7 +2342,8 @@ static const NativePluginDescriptor carlaRackDesc = { | |||||
| CarlaEngineNative::_process, | CarlaEngineNative::_process, | ||||
| CarlaEngineNative::_get_state, | CarlaEngineNative::_get_state, | ||||
| CarlaEngineNative::_set_state, | CarlaEngineNative::_set_state, | ||||
| CarlaEngineNative::_dispatcher | |||||
| CarlaEngineNative::_dispatcher, | |||||
| /* _render_inline_dsplay */ nullptr | |||||
| }; | }; | ||||
| static const NativePluginDescriptor carlaRackNoMidiOutDesc = { | static const NativePluginDescriptor carlaRackNoMidiOutDesc = { | ||||
| @@ -2379,7 +2384,8 @@ static const NativePluginDescriptor carlaRackNoMidiOutDesc = { | |||||
| CarlaEngineNative::_process, | CarlaEngineNative::_process, | ||||
| CarlaEngineNative::_get_state, | CarlaEngineNative::_get_state, | ||||
| CarlaEngineNative::_set_state, | CarlaEngineNative::_set_state, | ||||
| CarlaEngineNative::_dispatcher | |||||
| CarlaEngineNative::_dispatcher, | |||||
| /* _render_inline_dsplay */ nullptr | |||||
| }; | }; | ||||
| static const NativePluginDescriptor carlaPatchbayDesc = { | static const NativePluginDescriptor carlaPatchbayDesc = { | ||||
| @@ -2420,7 +2426,8 @@ static const NativePluginDescriptor carlaPatchbayDesc = { | |||||
| CarlaEngineNative::_process, | CarlaEngineNative::_process, | ||||
| CarlaEngineNative::_get_state, | CarlaEngineNative::_get_state, | ||||
| CarlaEngineNative::_set_state, | CarlaEngineNative::_set_state, | ||||
| CarlaEngineNative::_dispatcher | |||||
| CarlaEngineNative::_dispatcher, | |||||
| /* _render_inline_dsplay */ nullptr | |||||
| }; | }; | ||||
| static const NativePluginDescriptor carlaPatchbay3sDesc = { | static const NativePluginDescriptor carlaPatchbay3sDesc = { | ||||
| @@ -2461,7 +2468,8 @@ static const NativePluginDescriptor carlaPatchbay3sDesc = { | |||||
| CarlaEngineNative::_process, | CarlaEngineNative::_process, | ||||
| CarlaEngineNative::_get_state, | CarlaEngineNative::_get_state, | ||||
| CarlaEngineNative::_set_state, | CarlaEngineNative::_set_state, | ||||
| CarlaEngineNative::_dispatcher | |||||
| CarlaEngineNative::_dispatcher, | |||||
| /* _render_inline_dsplay */ nullptr | |||||
| }; | }; | ||||
| static const NativePluginDescriptor carlaPatchbay16Desc = { | static const NativePluginDescriptor carlaPatchbay16Desc = { | ||||
| @@ -2502,7 +2510,8 @@ static const NativePluginDescriptor carlaPatchbay16Desc = { | |||||
| CarlaEngineNative::_process, | CarlaEngineNative::_process, | ||||
| CarlaEngineNative::_get_state, | CarlaEngineNative::_get_state, | ||||
| CarlaEngineNative::_set_state, | CarlaEngineNative::_set_state, | ||||
| CarlaEngineNative::_dispatcher | |||||
| CarlaEngineNative::_dispatcher, | |||||
| /* _render_inline_dsplay */ nullptr | |||||
| }; | }; | ||||
| static const NativePluginDescriptor carlaPatchbay32Desc = { | static const NativePluginDescriptor carlaPatchbay32Desc = { | ||||
| @@ -2543,7 +2552,8 @@ static const NativePluginDescriptor carlaPatchbay32Desc = { | |||||
| CarlaEngineNative::_process, | CarlaEngineNative::_process, | ||||
| CarlaEngineNative::_get_state, | CarlaEngineNative::_get_state, | ||||
| CarlaEngineNative::_set_state, | CarlaEngineNative::_set_state, | ||||
| CarlaEngineNative::_dispatcher | |||||
| CarlaEngineNative::_dispatcher, | |||||
| /* _render_inline_dsplay */ nullptr | |||||
| }; | }; | ||||
| CARLA_BACKEND_END_NAMESPACE | CARLA_BACKEND_END_NAMESPACE | ||||
| @@ -251,6 +251,7 @@ public: | |||||
| fIsOffline(false), | fIsOffline(false), | ||||
| fIsUiAvailable(false), | fIsUiAvailable(false), | ||||
| fIsUiVisible(false), | fIsUiVisible(false), | ||||
| fInlineDisplayNeedsRedraw(false), | |||||
| fAudioInBuffers(nullptr), | fAudioInBuffers(nullptr), | ||||
| fAudioOutBuffers(nullptr), | fAudioOutBuffers(nullptr), | ||||
| fMidiEventInCount(0), | fMidiEventInCount(0), | ||||
| @@ -279,7 +280,6 @@ public: | |||||
| fHost.get_time_info = carla_host_get_time_info; | fHost.get_time_info = carla_host_get_time_info; | ||||
| fHost.write_midi_event = carla_host_write_midi_event; | fHost.write_midi_event = carla_host_write_midi_event; | ||||
| fHost.ui_parameter_changed = carla_host_ui_parameter_changed; | fHost.ui_parameter_changed = carla_host_ui_parameter_changed; | ||||
| fHost.ui_parameter_touch = carla_host_ui_parameter_touch; | |||||
| fHost.ui_custom_data_changed = carla_host_ui_custom_data_changed; | fHost.ui_custom_data_changed = carla_host_ui_custom_data_changed; | ||||
| fHost.ui_closed = carla_host_ui_closed; | fHost.ui_closed = carla_host_ui_closed; | ||||
| fHost.ui_open_file = carla_host_ui_open_file; | fHost.ui_open_file = carla_host_ui_open_file; | ||||
| @@ -2394,11 +2394,6 @@ protected: | |||||
| setParameterValue(index, value, false, true, true); | setParameterValue(index, value, false, true, true); | ||||
| } | } | ||||
| void handleUiParameterTouch(const uint32_t index, const bool touch) const | |||||
| { | |||||
| pData->engine->touchPluginParameter(pData->id, index, touch); | |||||
| } | |||||
| void handleUiCustomDataChanged(const char* const key, const char* const value) | void handleUiCustomDataChanged(const char* const key, const char* const value) | ||||
| { | { | ||||
| setCustomData(CUSTOM_DATA_TYPE_STRING, key, value, false); | setCustomData(CUSTOM_DATA_TYPE_STRING, key, value, false); | ||||
| @@ -2460,13 +2455,18 @@ protected: | |||||
| case NATIVE_HOST_OPCODE_INTERNAL_PLUGIN: | case NATIVE_HOST_OPCODE_INTERNAL_PLUGIN: | ||||
| ret = 1; | ret = 1; | ||||
| break; | break; | ||||
| case NATIVE_HOST_OPCODE_QUEUE_INLINE_DISPLAY: | |||||
| fInlineDisplayNeedsRedraw = true; | |||||
| break; | |||||
| case NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER: | |||||
| CARLA_SAFE_ASSERT_RETURN(index >= 0, 0); | |||||
| pData->engine->touchPluginParameter(pData->id, static_cast<uint32_t>(index), value != 0); | |||||
| break; | |||||
| } | } | ||||
| return ret; | return ret; | ||||
| // unused for now | // unused for now | ||||
| (void)index; | |||||
| (void)value; | |||||
| (void)ptr; | (void)ptr; | ||||
| (void)opt; | (void)opt; | ||||
| } | } | ||||
| @@ -2651,6 +2651,7 @@ private: | |||||
| bool fIsOffline; | bool fIsOffline; | ||||
| bool fIsUiAvailable; | bool fIsUiAvailable; | ||||
| bool fIsUiVisible; | bool fIsUiVisible; | ||||
| bool fInlineDisplayNeedsRedraw; | |||||
| float** fAudioInBuffers; | float** fAudioInBuffers; | ||||
| float** fAudioOutBuffers; | float** fAudioOutBuffers; | ||||
| @@ -2702,11 +2703,6 @@ private: | |||||
| handlePtr->handleUiParameterChanged(index, value); | handlePtr->handleUiParameterChanged(index, value); | ||||
| } | } | ||||
| static void carla_host_ui_parameter_touch(NativeHostHandle handle, uint32_t index, bool touch) | |||||
| { | |||||
| handlePtr->handleUiParameterTouch(index, touch); | |||||
| } | |||||
| static void carla_host_ui_custom_data_changed(NativeHostHandle handle, const char* key, const char* value) | static void carla_host_ui_custom_data_changed(NativeHostHandle handle, const char* key, const char* value) | ||||
| { | { | ||||
| handlePtr->handleUiCustomDataChanged(key, value); | handlePtr->handleUiCustomDataChanged(key, value); | ||||
| @@ -63,7 +63,8 @@ typedef enum { | |||||
| NATIVE_PLUGIN_USES_PANNING = 1 << 8, /** uses stereo balance if unset (default) */ | NATIVE_PLUGIN_USES_PANNING = 1 << 8, /** uses stereo balance if unset (default) */ | ||||
| NATIVE_PLUGIN_USES_STATE = 1 << 9, | NATIVE_PLUGIN_USES_STATE = 1 << 9, | ||||
| NATIVE_PLUGIN_USES_TIME = 1 << 10, | NATIVE_PLUGIN_USES_TIME = 1 << 10, | ||||
| NATIVE_PLUGIN_USES_PARENT_ID = 1 << 11 /** can set transient hint to parent */ | |||||
| NATIVE_PLUGIN_USES_PARENT_ID = 1 << 11, /** can set transient hint to parent */ | |||||
| NATIVE_PLUGIN_HAS_INLINE_DISPLAY = 1 << 12 | |||||
| } NativePluginHints; | } NativePluginHints; | ||||
| typedef enum { | typedef enum { | ||||
| @@ -106,7 +107,9 @@ typedef enum { | |||||
| NATIVE_HOST_OPCODE_RELOAD_ALL = 5, /** nothing */ | NATIVE_HOST_OPCODE_RELOAD_ALL = 5, /** nothing */ | ||||
| NATIVE_HOST_OPCODE_UI_UNAVAILABLE = 6, /** nothing */ | NATIVE_HOST_OPCODE_UI_UNAVAILABLE = 6, /** nothing */ | ||||
| NATIVE_HOST_OPCODE_HOST_IDLE = 7, /** nothing */ | NATIVE_HOST_OPCODE_HOST_IDLE = 7, /** nothing */ | ||||
| NATIVE_HOST_OPCODE_INTERNAL_PLUGIN = 8 /** nothing */ | |||||
| NATIVE_HOST_OPCODE_INTERNAL_PLUGIN = 8, /** nothing */ | |||||
| NATIVE_HOST_OPCODE_QUEUE_INLINE_DISPLAY = 9, /** nothing */ | |||||
| NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER = 10 /** uses index, value as bool */ | |||||
| } NativeHostDispatcherOpcode; | } NativeHostDispatcherOpcode; | ||||
| /* ------------------------------------------------------------------------------------------------------------ | /* ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -175,6 +178,13 @@ typedef struct { | |||||
| NativeTimeInfoBBT bbt; | NativeTimeInfoBBT bbt; | ||||
| } NativeTimeInfo; | } NativeTimeInfo; | ||||
| typedef struct { | |||||
| unsigned char* data; | |||||
| int width; | |||||
| int height; | |||||
| int stride; | |||||
| } NativeInlineDisplayImageSurface; | |||||
| /* ------------------------------------------------------------------------------------------------------------ | /* ------------------------------------------------------------------------------------------------------------ | ||||
| * HostDescriptor */ | * HostDescriptor */ | ||||
| @@ -192,7 +202,6 @@ typedef struct { | |||||
| bool (*write_midi_event)(NativeHostHandle handle, const NativeMidiEvent* event); | bool (*write_midi_event)(NativeHostHandle handle, const NativeMidiEvent* event); | ||||
| void (*ui_parameter_changed)(NativeHostHandle handle, uint32_t index, float value); | void (*ui_parameter_changed)(NativeHostHandle handle, uint32_t index, float value); | ||||
| void (*ui_parameter_touch)(NativeHostHandle handle, uint32_t index, bool touch); | |||||
| void (*ui_midi_program_changed)(NativeHostHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | void (*ui_midi_program_changed)(NativeHostHandle handle, uint8_t channel, uint32_t bank, uint32_t program); | ||||
| void (*ui_custom_data_changed)(NativeHostHandle handle, const char* key, const char* value); | void (*ui_custom_data_changed)(NativeHostHandle handle, const char* key, const char* value); | ||||
| void (*ui_closed)(NativeHostHandle handle); | void (*ui_closed)(NativeHostHandle handle); | ||||
| @@ -256,6 +265,9 @@ typedef struct _NativePluginDescriptor { | |||||
| intptr_t (*dispatcher)(NativePluginHandle handle, | intptr_t (*dispatcher)(NativePluginHandle handle, | ||||
| NativePluginDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt); | NativePluginDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt); | ||||
| const NativeInlineDisplayImageSurface* (*render_inline_display)(NativePluginHandle handle, | |||||
| uint32_t width, uint32_t height); | |||||
| } NativePluginDescriptor; | } NativePluginDescriptor; | ||||
| /* ------------------------------------------------------------------------------------------------------------ | /* ------------------------------------------------------------------------------------------------------------ | ||||
| @@ -117,7 +117,11 @@ protected: | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN(pHost != nullptr,); | CARLA_SAFE_ASSERT_RETURN(pHost != nullptr,); | ||||
| pHost->ui_parameter_touch(pHost->handle, index, touch); | |||||
| pHost->dispatcher(pHost->handle, | |||||
| NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER, | |||||
| static_cast<int32_t>(index), | |||||
| touch ? 1 : 0, | |||||
| nullptr, 0.0f); | |||||
| } | } | ||||
| void uiMidiProgramChanged(const uint8_t channel, const uint32_t bank, const uint32_t program) const | void uiMidiProgramChanged(const uint8_t channel, const uint32_t bank, const uint32_t program) const | ||||
| @@ -376,6 +380,13 @@ protected: | |||||
| CARLA_SAFE_ASSERT_RETURN(uiName != nullptr && uiName[0] != '\0',); | CARLA_SAFE_ASSERT_RETURN(uiName != nullptr && uiName[0] != '\0',); | ||||
| } | } | ||||
| virtual const NativeInlineDisplayImageSurface* renderInlineDisplay(const uint32_t width, const uint32_t height) | |||||
| { | |||||
| CARLA_SAFE_ASSERT_RETURN(width > 0 && height > 0, nullptr); | |||||
| return nullptr; | |||||
| } | |||||
| // ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
| private: | private: | ||||
| @@ -511,6 +522,11 @@ public: | |||||
| (void)index; | (void)index; | ||||
| } | } | ||||
| static const NativeInlineDisplayImageSurface* _render_inline_display(NativePluginHandle handle, uint32_t width, uint32_t height) | |||||
| { | |||||
| return handlePtr->renderInlineDisplay(width, height); | |||||
| } | |||||
| #undef handlePtr | #undef handlePtr | ||||
| CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NativePluginClass) | CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NativePluginClass) | ||||
| @@ -553,7 +569,8 @@ public: \ | |||||
| ClassName::_process, \ | ClassName::_process, \ | ||||
| ClassName::_get_state, \ | ClassName::_get_state, \ | ||||
| ClassName::_set_state, \ | ClassName::_set_state, \ | ||||
| ClassName::_dispatcher | |||||
| ClassName::_dispatcher, \ | |||||
| ClassName::_render_inline_display | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * Carla Native Plugins | * Carla Native Plugins | ||||
| * Copyright (C) 2012-2018 Filipe Coelho <falktx@falktx.com> | |||||
| * Copyright (C) 2012-2019 Filipe Coelho <falktx@falktx.com> | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
| * modify it under the terms of the GNU General Public License as | * modify it under the terms of the GNU General Public License as | ||||
| @@ -24,7 +24,8 @@ | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, \ | nullptr, nullptr, nullptr, nullptr, nullptr, \ | ||||
| nullptr, nullptr, nullptr, nullptr, nullptr, \ | nullptr, nullptr, nullptr, nullptr, nullptr, \ | ||||
| nullptr, nullptr, nullptr, nullptr, nullptr, \ | nullptr, nullptr, nullptr, nullptr, nullptr, \ | ||||
| nullptr, nullptr, nullptr, nullptr, nullptr, nullptr | |||||
| nullptr, nullptr, nullptr, nullptr, nullptr, \ | |||||
| nullptr, nullptr | |||||
| static const NativePluginDescriptor sNativePluginDescriptors[] = { | static const NativePluginDescriptor sNativePluginDescriptors[] = { | ||||
| @@ -174,6 +174,7 @@ private: | |||||
| static const NativePluginDescriptor bigmeterDesc = { | static const NativePluginDescriptor bigmeterDesc = { | ||||
| /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY, | ||||
| /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE | ||||
| |NATIVE_PLUGIN_HAS_INLINE_DISPLAY | |||||
| |NATIVE_PLUGIN_HAS_UI | |NATIVE_PLUGIN_HAS_UI | ||||
| |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS), | ||||
| /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING, | /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING, | ||||
| @@ -89,7 +89,9 @@ static const NativePluginDescriptor bypassDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -309,7 +309,9 @@ static const NativePluginDescriptor lfoDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * Carla Native Plugins | * Carla Native Plugins | ||||
| * Copyright (C) 2012-2018 Filipe Coelho <falktx@falktx.com> | |||||
| * Copyright (C) 2012-2019 Filipe Coelho <falktx@falktx.com> | |||||
| * Copyright (C) 2018 Milk Brewster <code@milkmiruku.com> | * Copyright (C) 2018 Milk Brewster <code@milkmiruku.com> | ||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
| @@ -198,7 +198,9 @@ static const NativePluginDescriptor midichanabDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -189,7 +189,9 @@ static const NativePluginDescriptor midichanfilterDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -197,7 +197,9 @@ static const NativePluginDescriptor midichannelizeDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -259,7 +259,9 @@ static const NativePluginDescriptor midigainDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -136,7 +136,9 @@ static const NativePluginDescriptor midijoinDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -129,7 +129,9 @@ static const NativePluginDescriptor midisplitDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -110,7 +110,9 @@ static const NativePluginDescriptor midithroughDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -222,7 +222,9 @@ static const NativePluginDescriptor miditransposeDesc = { | |||||
| .get_state = NULL, | .get_state = NULL, | ||||
| .set_state = NULL, | .set_state = NULL, | ||||
| .dispatcher = NULL | |||||
| .dispatcher = NULL, | |||||
| .render_inline_display = NULL | |||||
| }; | }; | ||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| @@ -198,7 +198,6 @@ static void writePluginFile(const NativePluginDescriptor* const pluginDesc) | |||||
| hostDesc.get_time_info = nullptr; | hostDesc.get_time_info = nullptr; | ||||
| hostDesc.write_midi_event = nullptr; | hostDesc.write_midi_event = nullptr; | ||||
| hostDesc.ui_parameter_changed = nullptr; | hostDesc.ui_parameter_changed = nullptr; | ||||
| hostDesc.ui_parameter_touch = nullptr; | |||||
| hostDesc.ui_midi_program_changed = nullptr; | hostDesc.ui_midi_program_changed = nullptr; | ||||
| hostDesc.ui_custom_data_changed = nullptr; | hostDesc.ui_custom_data_changed = nullptr; | ||||
| hostDesc.ui_closed = nullptr; | hostDesc.ui_closed = nullptr; | ||||
| @@ -94,7 +94,6 @@ public: | |||||
| fHost.get_time_info = host_get_time_info; | fHost.get_time_info = host_get_time_info; | ||||
| fHost.write_midi_event = host_write_midi_event; | fHost.write_midi_event = host_write_midi_event; | ||||
| fHost.ui_parameter_changed = host_ui_parameter_changed; | fHost.ui_parameter_changed = host_ui_parameter_changed; | ||||
| fHost.ui_parameter_touch = host_ui_parameter_touch; | |||||
| fHost.ui_custom_data_changed = host_ui_custom_data_changed; | fHost.ui_custom_data_changed = host_ui_custom_data_changed; | ||||
| fHost.ui_closed = host_ui_closed; | fHost.ui_closed = host_ui_closed; | ||||
| fHost.ui_open_file = host_ui_open_file; | fHost.ui_open_file = host_ui_open_file; | ||||
| @@ -713,11 +712,18 @@ protected: | |||||
| case NATIVE_HOST_OPCODE_RELOAD_ALL: | case NATIVE_HOST_OPCODE_RELOAD_ALL: | ||||
| case NATIVE_HOST_OPCODE_HOST_IDLE: | case NATIVE_HOST_OPCODE_HOST_IDLE: | ||||
| case NATIVE_HOST_OPCODE_INTERNAL_PLUGIN: | case NATIVE_HOST_OPCODE_INTERNAL_PLUGIN: | ||||
| case NATIVE_HOST_OPCODE_QUEUE_INLINE_DISPLAY: | |||||
| // nothing | // nothing | ||||
| break; | break; | ||||
| case NATIVE_HOST_OPCODE_UI_UNAVAILABLE: | case NATIVE_HOST_OPCODE_UI_UNAVAILABLE: | ||||
| handleUiClosed(); | handleUiClosed(); | ||||
| break; | break; | ||||
| case NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER: | |||||
| CARLA_SAFE_ASSERT_RETURN(index >= 0, 0); | |||||
| handleUiParameterTouch(static_cast<uint32_t>(index), value != 0); | |||||
| break; | |||||
| } | } | ||||
| return ret; | return ret; | ||||
| @@ -81,7 +81,6 @@ int main() | |||||
| nullptr, // write_midi_event | nullptr, // write_midi_event | ||||
| nullptr, // ui_parameter_changed | nullptr, // ui_parameter_changed | ||||
| nullptr, // ui_parameter_touch | |||||
| nullptr, // ui_midi_program_changed | nullptr, // ui_midi_program_changed | ||||
| nullptr, // ui_custom_data_changed | nullptr, // ui_custom_data_changed | ||||
| nullptr, // ui_closed | nullptr, // ui_closed | ||||
| @@ -131,7 +131,6 @@ public: | |||||
| fHost.get_time_info = host_get_time_info; | fHost.get_time_info = host_get_time_info; | ||||
| fHost.write_midi_event = host_write_midi_event; | fHost.write_midi_event = host_write_midi_event; | ||||
| fHost.ui_parameter_changed = host_ui_parameter_changed; | fHost.ui_parameter_changed = host_ui_parameter_changed; | ||||
| fHost.ui_parameter_touch = host_ui_parameter_touch; | |||||
| fHost.ui_custom_data_changed = host_ui_custom_data_changed; | fHost.ui_custom_data_changed = host_ui_custom_data_changed; | ||||
| fHost.ui_closed = host_ui_closed; | fHost.ui_closed = host_ui_closed; | ||||
| fHost.ui_open_file = host_ui_open_file; | fHost.ui_open_file = host_ui_open_file; | ||||
| @@ -761,6 +760,8 @@ protected: | |||||
| case NATIVE_HOST_OPCODE_RELOAD_MIDI_PROGRAMS: | case NATIVE_HOST_OPCODE_RELOAD_MIDI_PROGRAMS: | ||||
| case NATIVE_HOST_OPCODE_UI_UNAVAILABLE: | case NATIVE_HOST_OPCODE_UI_UNAVAILABLE: | ||||
| case NATIVE_HOST_OPCODE_INTERNAL_PLUGIN: | case NATIVE_HOST_OPCODE_INTERNAL_PLUGIN: | ||||
| case NATIVE_HOST_OPCODE_QUEUE_INLINE_DISPLAY: | |||||
| // nothing | |||||
| break; | break; | ||||
| case NATIVE_HOST_OPCODE_RELOAD_ALL: | case NATIVE_HOST_OPCODE_RELOAD_ALL: | ||||
| @@ -770,12 +771,17 @@ protected: | |||||
| case NATIVE_HOST_OPCODE_HOST_IDLE: | case NATIVE_HOST_OPCODE_HOST_IDLE: | ||||
| hostCallback(audioMasterIdle); | hostCallback(audioMasterIdle); | ||||
| break; | break; | ||||
| case NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER: | |||||
| CARLA_SAFE_ASSERT_RETURN(index >= 0, 0); | |||||
| handleUiParameterTouch(static_cast<uint32_t>(index), value != 0); | |||||
| break; | |||||
| } | } | ||||
| // unused for now | // unused for now | ||||
| return 0; | return 0; | ||||
| (void)index; (void)value; (void)ptr; (void)opt; | |||||
| (void)ptr; (void)opt; | |||||
| } | } | ||||
| private: | private: | ||||
| @@ -879,11 +885,6 @@ private: | |||||
| handlePtr->handleUiParameterChanged(index, value); | handlePtr->handleUiParameterChanged(index, value); | ||||
| } | } | ||||
| static void host_ui_parameter_touch(NativeHostHandle handle, uint32_t index, bool touch) | |||||
| { | |||||
| handlePtr->handleUiParameterTouch(index, touch); | |||||
| } | |||||
| static void host_ui_custom_data_changed(NativeHostHandle handle, const char* key, const char* value) | static void host_ui_custom_data_changed(NativeHostHandle handle, const char* key, const char* value) | ||||
| { | { | ||||
| handlePtr->handleUiCustomDataChanged(key, value); | handlePtr->handleUiCustomDataChanged(key, value); | ||||