Fix modgui after latest changes, correct full screen behaviour

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2023-07-08 16:29:55 +02:00
parent 7c67f50d4d
commit 3022008706
5 changed files with 27 additions and 10 deletions

2
dpf

@ -1 +1 @@
Subproject commit e288f163bbf3af6ae24e9df6cdd23e755ff1aaf5 Subproject commit ed6a093adea616cc856ef0ccb7a508410f017620

View file

@ -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 void WebBrowserDataLoaded(void* const data)
{ {
static_cast<Initializer*>(data)->loadSettings(true); static_cast<Initializer*>(data)->loadSettings(true);
@ -503,7 +503,7 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB
if (isRealInstance) if (isRealInstance)
{ {
system::createDirectory(asset::userDir); system::createDirectory(asset::userDir);
#ifdef DISTRHO_OS_WASM #if defined(DISTRHO_OS_WASM) && !defined(CARDINAL_COMMON_UI_ONLY)
EM_ASM({ EM_ASM({
Module.FS.mount(Module.IDBFS, {}, '/userfiles'); Module.FS.mount(Module.IDBFS, {}, '/userfiles');
Module.FS.syncfs(true, function(err) { if (!err) { dynCall('vi', $0, [$1]) } }); Module.FS.syncfs(true, function(err) { if (!err) { dynCall('vi', $0, [$1]) } });
@ -735,9 +735,11 @@ void syncfs()
{ {
settings::save(); settings::save();
#ifndef CARDINAL_COMMON_UI_ONLY
EM_ASM({ EM_ASM({
Module.FS.syncfs(false, function(){} ); Module.FS.syncfs(false, function(){} );
}); });
#endif
} }
#endif #endif

View file

@ -267,6 +267,9 @@ include ../../dpf/Makefile.plugins.mk
BASE_FLAGS += -DPRIVATE= BASE_FLAGS += -DPRIVATE=
# --------------------------------------------------------------
# Extra flags for MOD and Mini stuff
ifeq ($(MOD_BUILD),true) ifeq ($(MOD_BUILD),true)
BASE_FLAGS += -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff BASE_FLAGS += -DDISTRHO_PLUGIN_MINIMUM_BUFFER_SIZE=0xffff
BASE_FLAGS += -DDISTRHO_PLUGIN_USES_MODGUI=1 BASE_FLAGS += -DDISTRHO_PLUGIN_USES_MODGUI=1
@ -284,9 +287,6 @@ LINK_FLAGS += -sALLOW_MEMORY_GROWTH
LINK_FLAGS += -sINITIAL_MEMORY=64Mb LINK_FLAGS += -sINITIAL_MEMORY=64Mb
LINK_FLAGS += -sLZ4=1 LINK_FLAGS += -sLZ4=1
LINK_FLAGS += -sSTACK_SIZE=5MB LINK_FLAGS += -sSTACK_SIZE=5MB
LINK_FLAGS += -lidbfs.js
JACK_LIBS += -sEXPORTED_RUNTIME_METHODS=IDBFS,FS,cwrap
ifeq ($(CARDINAL_VARIANT),mini) ifeq ($(CARDINAL_VARIANT),mini)
LINK_FLAGS += --preload-file=../../bin/CardinalMini.lv2/resources@/resources LINK_FLAGS += --preload-file=../../bin/CardinalMini.lv2/resources@/resources
@ -296,6 +296,11 @@ LINK_FLAGS += --use-preload-cache
LINK_FLAGS += --use-preload-plugins LINK_FLAGS += --use-preload-plugins
endif 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 # 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 SYMLINKED_DIRS_RESOURCES = Fundamental/presets
ifneq ($(CARDINAL_VARIANT),mini) ifneq ($(CARDINAL_VARIANT),mini)

View file

@ -165,7 +165,6 @@ struct FileButton : MenuButton {
menu->addChild(createMenuItem("New (factory template)", "", []() { menu->addChild(createMenuItem("New (factory template)", "", []() {
patchUtils::loadTemplateDialog(true); patchUtils::loadTemplateDialog(true);
})); }));
#endif
#ifndef DISTRHO_OS_WASM #ifndef DISTRHO_OS_WASM
constexpr const char* const OpenName = "Open..."; constexpr const char* const OpenName = "Open...";
@ -195,6 +194,7 @@ struct FileButton : MenuButton {
})); }));
} }
}, settings::recentPatchPaths.empty())); }, settings::recentPatchPaths.empty()));
#endif
if (!demoPatches.empty()) if (!demoPatches.empty())
{ {
@ -220,11 +220,11 @@ struct FileButton : MenuButton {
})); }));
} }
#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
menu->addChild(createMenuItem("Import selection...", "", [=]() { menu->addChild(createMenuItem("Import selection...", "", [=]() {
patchUtils::loadSelectionDialog(); patchUtils::loadSelectionDialog();
}, false, true)); }, false, true));
#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
menu->addChild(new ui::MenuSeparator); menu->addChild(new ui::MenuSeparator);
#ifndef DISTRHO_OS_WASM #ifndef DISTRHO_OS_WASM
@ -266,7 +266,6 @@ struct FileButton : MenuButton {
menu->addChild(createMenuItem("Overwrite template", "", []() { menu->addChild(createMenuItem("Overwrite template", "", []() {
patchUtils::saveTemplateDialog(); patchUtils::saveTemplateDialog();
})); }));
#endif
#ifdef DISTRHO_OS_WASM #ifdef DISTRHO_OS_WASM
menu->addChild(new ui::MenuSeparator); menu->addChild(new ui::MenuSeparator);
@ -278,6 +277,7 @@ struct FileButton : MenuButton {
}, WebBrowserDataSaved); }, WebBrowserDataSaved);
})); }));
#endif #endif
#endif
#if defined(HAVE_LIBLO) || ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS #if defined(HAVE_LIBLO) || ! DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
#ifdef __MOD_DEVICES__ #ifdef __MOD_DEVICES__
@ -598,6 +598,7 @@ struct KnobScrollSensitivitySlider : ui::Slider {
}; };
#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
static void setAllFramebufferWidgetsDirty(widget::Widget* const widget) static void setAllFramebufferWidgetsDirty(widget::Widget* const widget)
{ {
for (widget::Widget* child : widget->children) for (widget::Widget* child : widget->children)
@ -610,6 +611,7 @@ static void setAllFramebufferWidgetsDirty(widget::Widget* const widget)
setAllFramebufferWidgetsDirty(child); setAllFramebufferWidgetsDirty(child);
} }
} }
#endif
struct ViewButton : MenuButton { struct ViewButton : MenuButton {
@ -620,6 +622,7 @@ struct ViewButton : MenuButton {
menu->addChild(createMenuLabel("Appearance")); menu->addChild(createMenuLabel("Appearance"));
#if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS
std::string darkModeText; std::string darkModeText;
if (settings::darkMode) if (settings::darkMode)
darkModeText = CHECKMARK_STRING; darkModeText = CHECKMARK_STRING;
@ -627,6 +630,7 @@ struct ViewButton : MenuButton {
switchDarkMode(!settings::darkMode); switchDarkMode(!settings::darkMode);
setAllFramebufferWidgetsDirty(APP->scene); setAllFramebufferWidgetsDirty(APP->scene);
})); }));
#endif
menu->addChild(createBoolPtrMenuItem("Show tooltips", "", &settings::tooltips)); menu->addChild(createBoolPtrMenuItem("Show tooltips", "", &settings::tooltips));

View file

@ -805,9 +805,15 @@ int Window::getMods() {
void Window::setFullScreen(bool fullScreen) { void Window::setFullScreen(bool fullScreen) {
#ifdef DISTRHO_OS_WASM #ifdef DISTRHO_OS_WASM
if (fullScreen) 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 else
{
emscripten_exit_fullscreen(); emscripten_exit_fullscreen();
}
#endif #endif
} }