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() {
- try {
- thread.wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ isPaused = true;
}
@Override
public void resume() {
+ isPaused = false;
thread.notify();
}
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) {
+ 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();
}