private Thread thread; // TODO move to a dynamic sub class
protected Configuration config;
private int type = 0;
+ private boolean isPaused = false;
AmbientMode() {}
}
@Override
+ public void pause() {
+ isPaused = true;
+ }
+
+ @Override
+ public void resume() {
+ isPaused = false;
+ synchronized (thread) {
+ thread.notify();
+ }
+ }
+
+ @Override
public void exit() {
stopThread();
}
- public void startThread() {
+ private void startThread() {
thread = new Thread() {
public void run() {
try {
long start = System.currentTimeMillis();
int index = 0;
while (!isInterrupted()) {
+ if (isPaused) {
+ synchronized (thread) {
+ wait();
+ }
+ }
LedFrame frame = LedFrame.from(config);
updateFrame(frame, System.currentTimeMillis() - start, index);
updateWithFrame(frame);
Thread.sleep(20);
}
} catch (InterruptedException e) {
+ // e.printStackTrace();
}
}
};
thread.start();
}
- public void stopThread() {
+ private void stopThread() {
thread.interrupt();
}