diff --git a/src/main/java/jace/core/SoundMixer.java b/src/main/java/jace/core/SoundMixer.java index 8197eb6..55ebb5b 100644 --- a/src/main/java/jace/core/SoundMixer.java +++ b/src/main/java/jace/core/SoundMixer.java @@ -61,6 +61,9 @@ public class SoundMixer extends Device { */ @ConfigurableField(name = "Playback Rate", shortName = "freq") public static int RATE = 48000; + @ConfigurableField(name = "Mute", shortName = "mute") + public static boolean MUTE = false; + /** * Sound format used for playback */ @@ -104,7 +107,9 @@ public class SoundMixer extends Device { @Override public synchronized void reconfigure() { - if (isConfigDifferent()) { + if (MUTE) { + detach(); + } else if (isConfigDifferent()) { detach(); try { initMixer(); diff --git a/src/main/java/jace/core/Utility.java b/src/main/java/jace/core/Utility.java index 533be9f..280102f 100644 --- a/src/main/java/jace/core/Utility.java +++ b/src/main/java/jace/core/Utility.java @@ -285,6 +285,10 @@ public class Utility { public static void setHeadlessMode(boolean headless) { isHeadless = headless; } + + public static boolean isHeadlessMode() { + return isHeadless; + } public static Optional loadIcon(String filename) { if (isHeadless) { diff --git a/src/test/java/jace/cpu/Basic6502FuncationalityTest.java b/src/test/java/jace/cpu/Basic6502FuncationalityTest.java index a216314..212de68 100644 --- a/src/test/java/jace/cpu/Basic6502FuncationalityTest.java +++ b/src/test/java/jace/cpu/Basic6502FuncationalityTest.java @@ -20,6 +20,7 @@ import jace.apple2e.Apple2e; import jace.apple2e.MOS65C02; import jace.core.Computer; import jace.core.RAM; +import jace.core.SoundMixer; import jace.core.Utility; import jace.ide.HeadlessProgram; import jace.ide.Program; @@ -45,10 +46,12 @@ public class Basic6502FuncationalityTest { @BeforeClass public static void setupClass() { Utility.setHeadlessMode(true); + SoundMixer.MUTE = true; computer = new Apple2e(); cpu = (MOS65C02) computer.getCpu(); ram = computer.getMemory(); Emulator.computer = (Apple2e) computer; + computer.pause(); } @AfterClass @@ -57,6 +60,7 @@ public class Basic6502FuncationalityTest { @Before public void setup() { + cpu.suspend(); for (int i = 0; i < 1024; i++) { ram.write(i, (byte) 0, false, false); } @@ -74,6 +78,7 @@ public class Basic6502FuncationalityTest { public void testAdditionNonDecimal() { cpu.A = 0; cpu.D = false; + cpu.C = 0; assemble(" adc #1"); assertEquals("Nothing should change yet", 0, cpu.A); cpu.tick();