package com.xenoage.zong.io.midi.out; import com.xenoage.zong.core.position.Time; /** * This listener reports the progress of a Midi playback. * * @author Andreas Wenger * @author Uli Teschemacher */ public interface PlaybackListener { public static final int timerRate = 50; /** * This method is called whenever the playback reaches a new * known {@link Time} (e.g. where a musical element starts or ends). * @param time the {@link Time} where the playback stopped * @param ms the position in milliseconds */ public void playbackAtTime(Time time, long ms); /** * This method is called about {@value #timerRate} times a second during playback. * @param ms the current position in milliseconds */ public void playbackAtMs(long ms); /** * This method is called when the playback was (re)started. */ public void playbackStarted(); /** * This method is called when the playback was paused. */ public void playbackPaused(); /** * This method is called when the playback was stopped. */ public void playbackStopped(); /** * This method is called when the playback reached the end of the score. */ public void playbackAtEnd(); }