diff --git a/src/main/java/plugins/tprovoost/Microscopy/MicroManager/patch/MMPatcher.java b/src/main/java/plugins/tprovoost/Microscopy/MicroManager/patch/MMPatcher.java index 32a634b2142ca2a6b5a529ae1793cc1d9199c533..93773d812328baef687f8a3c95deaca7a0710808 100644 --- a/src/main/java/plugins/tprovoost/Microscopy/MicroManager/patch/MMPatcher.java +++ b/src/main/java/plugins/tprovoost/Microscopy/MicroManager/patch/MMPatcher.java @@ -51,8 +51,9 @@ package plugins.tprovoost.Microscopy.MicroManager.patch; +import org.micromanager.MMVersion; + import icy.plugin.PluginLoader; -import icy.system.ClassPatcher; /** * Overrides class behavior of Micro-Manager classes using bytecode manipulation. This @@ -77,7 +78,15 @@ public class MMPatcher hacker.replaceMethod("org.micromanager.MMStudio", "public boolean isLiveModeOn()"); hacker.replaceMethod("org.micromanager.MMStudio", "public void enableLiveMode(boolean enable)"); + // set some required fields to public + hacker.setFieldPublic("org.micromanager.MMStudio", "options_"); + hacker.setFieldPublic("org.micromanager.MMStudio", "mainPrefs_"); + hacker.setFieldPublic("org.micromanager.MMStudio", "colorPrefs_"); + hacker.setFieldPublic("org.micromanager.MMStudio", "exposurePrefs_"); + hacker.setFieldPublic("org.micromanager.MMStudio", "contrastPrefs_"); + hacker.setFieldPublic("org.micromanager.MMStudio", "acqControlWin_"); + // this directly load the new patched MMStudio class in the Plugin class loader - hacker.loadClass("org.micromanager.MMStudio", classLoader, null); + hacker.loadClass("org.micromanager.MMStudio", MMVersion.class, classLoader, null); } }