From 302200870694eeb3040dff8f04cb4b00118cf332 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 8 Jul 2023 16:29:55 +0200 Subject: [PATCH] Fix modgui after latest changes, correct full screen behaviour Signed-off-by: falkTX --- dpf | 2 +- src/CardinalCommon.cpp | 6 ++++-- src/Makefile.cardinal.mk | 11 ++++++++--- src/override/MenuBar.cpp | 10 +++++++--- src/override/Window.cpp | 8 +++++++- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/dpf b/dpf index e288f16..ed6a093 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit e288f163bbf3af6ae24e9df6cdd23e755ff1aaf5 +Subproject commit ed6a093adea616cc856ef0ccb7a508410f017620 diff --git a/src/CardinalCommon.cpp b/src/CardinalCommon.cpp index 223ac68..7301a33 100644 --- a/src/CardinalCommon.cpp +++ b/src/CardinalCommon.cpp @@ -376,7 +376,7 @@ static int osc_screenshot_handler(const char*, const char* types, lo_arg** argv, // ----------------------------------------------------------------------------------------------------------- -#ifdef DISTRHO_OS_WASM +#if defined(DISTRHO_OS_WASM) && !defined(CARDINAL_COMMON_UI_ONLY) static void WebBrowserDataLoaded(void* const data) { static_cast(data)->loadSettings(true); @@ -503,7 +503,7 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB if (isRealInstance) { system::createDirectory(asset::userDir); - #ifdef DISTRHO_OS_WASM + #if defined(DISTRHO_OS_WASM) && !defined(CARDINAL_COMMON_UI_ONLY) EM_ASM({ Module.FS.mount(Module.IDBFS, {}, '/userfiles'); Module.FS.syncfs(true, function(err) { if (!err) { dynCall('vi', $0, [$1]) } }); @@ -735,9 +735,11 @@ void syncfs() { settings::save(); + #ifndef CARDINAL_COMMON_UI_ONLY EM_ASM({ Module.FS.syncfs(false, function(){} ); }); + #endif } #endif diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk index f05c936..258d5a0 100644 --- a/src/Makefile.cardinal.mk +++ b/src/Makefile.cardinal.mk @@ -267,6 +267,9 @@ include ../../dpf/Makefile.plugins.mk BASE_FLAGS += -DPRIVATE= +# -------------------------------------------------------------- +# Extra flags for MOD and Mini stuff + ifeq ($(MOD_BUILD),true) BASE_FLAGS += -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff BASE_FLAGS += -DDISTRHO_PLUGIN_USES_MODGUI=1 @@ -284,9 +287,6 @@ LINK_FLAGS += -sALLOW_MEMORY_GROWTH LINK_FLAGS += -sINITIAL_MEMORY=64Mb LINK_FLAGS += -sLZ4=1 LINK_FLAGS += -sSTACK_SIZE=5MB -LINK_FLAGS += -lidbfs.js - -JACK_LIBS += -sEXPORTED_RUNTIME_METHODS=IDBFS,FS,cwrap ifeq ($(CARDINAL_VARIANT),mini) LINK_FLAGS += --preload-file=../../bin/CardinalMini.lv2/resources@/resources @@ -296,6 +296,11 @@ LINK_FLAGS += --use-preload-cache LINK_FLAGS += --use-preload-plugins endif +ifneq ($(DSP_UI_SPLIT),true) +LINK_FLAGS += -lidbfs.js +JACK_LIBS += -sEXPORTED_RUNTIME_METHODS=IDBFS,FS,cwrap +endif + # find . -type l | grep -v svg | grep -v ttf | grep -v art | grep -v json | grep -v png | grep -v otf | sort SYMLINKED_DIRS_RESOURCES = Fundamental/presets ifneq ($(CARDINAL_VARIANT),mini) diff --git a/src/override/MenuBar.cpp b/src/override/MenuBar.cpp index 9ec3acb..9928ac0 100644 --- a/src/override/MenuBar.cpp +++ b/src/override/MenuBar.cpp @@ -165,7 +165,6 @@ struct FileButton : MenuButton { menu->addChild(createMenuItem("New (factory template)", "", []() { patchUtils::loadTemplateDialog(true); })); -#endif #ifndef DISTRHO_OS_WASM constexpr const char* const OpenName = "Open..."; @@ -195,6 +194,7 @@ struct FileButton : MenuButton { })); } }, settings::recentPatchPaths.empty())); +#endif if (!demoPatches.empty()) { @@ -220,11 +220,11 @@ struct FileButton : MenuButton { })); } +#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS menu->addChild(createMenuItem("Import selection...", "", [=]() { patchUtils::loadSelectionDialog(); }, false, true)); -#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS menu->addChild(new ui::MenuSeparator); #ifndef DISTRHO_OS_WASM @@ -266,7 +266,6 @@ struct FileButton : MenuButton { menu->addChild(createMenuItem("Overwrite template", "", []() { patchUtils::saveTemplateDialog(); })); -#endif #ifdef DISTRHO_OS_WASM menu->addChild(new ui::MenuSeparator); @@ -278,6 +277,7 @@ struct FileButton : MenuButton { }, WebBrowserDataSaved); })); #endif +#endif #if defined(HAVE_LIBLO) || ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS #ifdef __MOD_DEVICES__ @@ -598,6 +598,7 @@ struct KnobScrollSensitivitySlider : ui::Slider { }; +#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS static void setAllFramebufferWidgetsDirty(widget::Widget* const widget) { for (widget::Widget* child : widget->children) @@ -610,6 +611,7 @@ static void setAllFramebufferWidgetsDirty(widget::Widget* const widget) setAllFramebufferWidgetsDirty(child); } } +#endif struct ViewButton : MenuButton { @@ -620,6 +622,7 @@ struct ViewButton : MenuButton { menu->addChild(createMenuLabel("Appearance")); +#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS std::string darkModeText; if (settings::darkMode) darkModeText = CHECKMARK_STRING; @@ -627,6 +630,7 @@ struct ViewButton : MenuButton { switchDarkMode(!settings::darkMode); setAllFramebufferWidgetsDirty(APP->scene); })); +#endif menu->addChild(createBoolPtrMenuItem("Show tooltips", "", &settings::tooltips)); diff --git a/src/override/Window.cpp b/src/override/Window.cpp index 66b62d3..776c9e1 100644 --- a/src/override/Window.cpp +++ b/src/override/Window.cpp @@ -805,9 +805,15 @@ int Window::getMods() { void Window::setFullScreen(bool fullScreen) { #ifdef DISTRHO_OS_WASM if (fullScreen) - emscripten_request_fullscreen(internal->tlw->getWindow().getApp().getClassName(), false); + { + try { + emscripten_request_fullscreen(internal->tlw->getWindow().getApp().getClassName(), false); + } DISTRHO_SAFE_EXCEPTION("fullscreen"); + } else + { emscripten_exit_fullscreen(); + } #endif }