package javacodebook.thread.metronome;

/**
 * Eine Klasse, die alle x Sekunden eine Nachricht an alle Listener sendet.
 * @author Mark Donnermeyer
 */
public class Metronome extends java.util.Observable {
    int             period;
    MetronomeThread thread;
    boolean         isStarted;
    
    public Metronome(int period) {
        this.period    = period;
        this.isStarted = false;
    }
    
    public void start() {
        if (isStarted)
            return;
        
        thread = new MetronomeThread(this, period);
        thread.start();
        isStarted = true;
    }
    
    public void stop() {
        if (isStarted == false)
            return;
        
        thread.stopExecution();
        isStarted =false;
    }
    
    protected void periodElapsed() {
        setChanged();
        notifyObservers();
    }
}


