package de.otto.roborace.controller; import de.otto.roborace.controller.EventLoop.EventLoopListener; import lejos.hardware.Button; import lejos.hardware.Sound; public class AudioVideoController implements EventLoopListener{ private static final long LIGHTSHOW_DURATION = 3000; private long startTimeOfLastLightshow = 0; public AudioVideoController() { Sound.setVolume(5); } public void raceStarting() { Button.LEDPattern(4); Sound.beepSequence(); } public void trackLost() { Button.LEDPattern(2); Sound.buzz(); } public void raceFinished() { Button.LEDPattern(4); Sound.beepSequenceUp(); } private void startLightShow(int pattern) { startTimeOfLastLightshow = System.currentTimeMillis(); Button.LEDPattern(pattern); } @Override public void process() { if(startTimeOfLastLightshow + LIGHTSHOW_DURATION < System.currentTimeMillis()) { startLightShow(0); } } }