| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -66,6 +66,9 @@ static const char* host_ui_open_file(NativeHostHandle handle, bool isDir, const | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static const char* host_ui_save_file(NativeHostHandle handle, bool isDir, const char* title, const char* filter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static intptr_t host_dispatcher(NativeHostHandle handle, NativeHostDispatcherOpcode opcode, int32_t index, intptr_t value, void* ptr, float opt); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static void ildaeilParameterChangeForUI(void* ui, uint32_t index, float value); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static const char* ildaeilOpenFileForUI(void* ui, bool isDir, const char* title, const char* filter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// -------------------------------------------------------------------------------------------------------------------- | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			struct IldaeilModule : Module { | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -95,6 +98,8 @@ struct IldaeilModule : Module { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    mutable NativeTimeInfo fCarlaTimeInfo; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    // mutable water::MemoryOutputStream fLastProjectState; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void* fUI = nullptr; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float audioDataIn1[BUFFER_SIZE]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float audioDataIn2[BUFFER_SIZE]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float audioDataOut1[BUFFER_SIZE]; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -279,7 +284,7 @@ static bool host_write_midi_event(const NativeHostHandle handle, const NativeMid | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static void host_ui_parameter_changed(const NativeHostHandle handle, const uint32_t index, const float value) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    // ildaeilParameterChangeForUI(static_cast<IldaeilModule*>(handle)->fUI, index, value); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ildaeilParameterChangeForUI(static_cast<IldaeilModule*>(handle)->fUI, index, value); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static void host_ui_midi_program_changed(NativeHostHandle handle, uint8_t channel, uint32_t bank, uint32_t program) | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -299,8 +304,7 @@ static void host_ui_closed(NativeHostHandle handle) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static const char* host_ui_open_file(const NativeHostHandle handle, const bool isDir, const char* const title, const char* const filter) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    // return ildaeilOpenFileForUI(static_cast<IldaeilModule*>(handle)->fUI, isDir, title, filter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return nullptr; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return ildaeilOpenFileForUI(static_cast<IldaeilModule*>(handle)->fUI, isDir, title, filter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static const char* host_ui_save_file(NativeHostHandle, bool, const char*, const char*) | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -316,7 +320,7 @@ static intptr_t host_dispatcher(const NativeHostHandle handle, const NativeHostD | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// -------------------------------------------------------------------------------------------------------------------- | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			struct IldaeilWidget : ImGuiWidget, public Thread { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			struct IldaeilWidget : ImGuiWidget, Thread { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    static constexpr const uint kButtonHeight = 20; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    struct PluginInfoCache { | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -432,15 +436,15 @@ struct IldaeilWidget : ImGuiWidget, public Thread { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            fDrawingState = kDrawingPluginPendingFromInit; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            fPluginHasCustomUI = hints & PLUGIN_HAS_CUSTOM_UI; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        module->fUI = this; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ~IldaeilWidget() override | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (module != nullptr && module->fCarlaHostHandle != nullptr) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            /* | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            module->fUI = nullptr; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            carla_set_engine_option(module->fCarlaHostHandle, ENGINE_OPTION_FRONTEND_WIN_ID, 0, "0"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -473,15 +477,15 @@ struct IldaeilWidget : ImGuiWidget, public Thread { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    const char* openFileFromDSP(const bool isDir, const char* const title, const char* const filter) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        /* | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Window::FileBrowserOptions opts; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        opts.title = title; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        getWindow().openFileBrowser(opts); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return nullptr; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void showPluginUI(const CarlaHostHandle handle) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -618,8 +622,10 @@ struct IldaeilWidget : ImGuiWidget, public Thread { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return false; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void onContextCreate(const ContextCreateEvent&) override | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void onContextCreate(const ContextCreateEvent& e) override | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ImGuiWidget::onContextCreate(e); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        /* | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (module == nullptr || module->fCarlaHostHandle == nullptr) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return; | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -632,9 +638,11 @@ struct IldaeilWidget : ImGuiWidget, public Thread { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        carla_set_engine_option(module->fCarlaHostHandle, ENGINE_OPTION_FRONTEND_WIN_ID, 0, winIdStr); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void onContextDestroy(const ContextDestroyEvent&) override | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void onContextDestroy(const ContextDestroyEvent& e) override | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        carla_set_engine_option(module->fCarlaHostHandle, ENGINE_OPTION_FRONTEND_WIN_ID, 0, "0"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ImGuiWidget::onContextDestroy(e); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    void step() override | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -1090,6 +1098,22 @@ struct IldaeilWidget : ImGuiWidget, public Thread { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// -------------------------------------------------------------------------------------------------------------------- | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static void ildaeilParameterChangeForUI(void* const ui, const uint32_t index, const float value) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr,); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    static_cast<IldaeilWidget*>(ui)->changeParameterFromDSP(index, value); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static const char* ildaeilOpenFileForUI(void* const ui, const bool isDir, const char* const title, const char* const filter) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr, nullptr); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return static_cast<IldaeilWidget*>(ui)->openFileFromDSP(isDir, title, filter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			// -------------------------------------------------------------------------------------------------------------------- | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			struct IldaeilModuleWidget : ModuleWidget { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    IldaeilWidget* ildaeilWidget = nullptr; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -1098,7 +1122,8 @@ struct IldaeilModuleWidget : ModuleWidget { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        setModule(module); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/glBars.svg"))); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ildaeilWidget = new IldaeilWidget(module, reinterpret_cast<CardinalPluginContext*>(APP)->nativeWindowId); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ildaeilWidget = new IldaeilWidget(static_cast<IldaeilModule*>(module), | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                          reinterpret_cast<CardinalPluginContext*>(APP)->nativeWindowId); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ildaeilWidget->box.pos = Vec(2 * RACK_GRID_WIDTH, 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ildaeilWidget->box.size = Vec(box.size.x - 2 * RACK_GRID_WIDTH, box.size.y); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        addChild(ildaeilWidget); | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |