X-Git-Url: http://dolda2000.com/gitweb/?p=kaka%2Fcakelight.git;a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FCakeLight.java;fp=src%2Fkaka%2Fcakelight%2FCakeLight.java;h=822e2ab5d9c2975b2335f8808a3fa640e39a07a7;hp=0c1aa1ac5be2caa68d15c8a598c51389f0f955f1;hb=d0afa6fb625ce2fe77d1ed6f0df8ed34391ddc35;hpb=fc040bcb6270ff0a4bfaab6cfeaad60edef2a11c diff --git a/src/kaka/cakelight/CakeLight.java b/src/kaka/cakelight/CakeLight.java index 0c1aa1a..822e2ab 100644 --- a/src/kaka/cakelight/CakeLight.java +++ b/src/kaka/cakelight/CakeLight.java @@ -34,7 +34,7 @@ public class CakeLight { public void pushMode(Mode mode) { Objects.requireNonNull(mode); if (!modes.isEmpty()) { - stopMode(modes.peek()); + pauseMode(modes.peek()); } modes.push(mode); startMode(mode); @@ -46,7 +46,7 @@ public class CakeLight { Mode mode = modes.pop(); stopMode(mode); if (!modes.isEmpty()) { - startMode(modes.peek()); + resumeMode(modes.peek()); } return true; } @@ -59,6 +59,14 @@ public class CakeLight { mode.enter(config); } + private void pauseMode(Mode mode) { + mode.pause(); + } + + private void resumeMode(Mode mode) { + mode.resume(); + } + private void stopMode(Mode mode) { mode.setFrameListener(ledFrame -> {}); // To avoid any frame being sent to the controller while the thread is exiting mode.exit();