package ch.retorte.intervalmusiccompositor.spi; import java.io.File; import java.util.List; import ch.retorte.intervalmusiccompositor.audiofile.IAudioFile; import ch.retorte.intervalmusiccompositor.list.ListSortMode; import javafx.collections.ObservableList; /** * Offers instruments to control the music list. * * @author nw */ public interface MusicListControl { void moveMusicToBreak(int sourceIndex, int destinationIndex); void moveBreakToMusic(int sourceIndex, int destinationIndex); IAudioFile addMusicTrack(int index, File f); IAudioFile appendMusicTrack(File f); void removeMusicTrack(int index); void removeMusicTracks(int[] index); void writeMusicBpm(int[] list); void writeMusicBpm(int i); int getMusicBPM(int index); void setMusicBpm(int index, int bpm); IAudioFile addBreakTrack(int index, File f); IAudioFile appendBreakTrack(File f); void removeBreakTrack(int index); void removeBreakTracks(int[] index); void writeBreakBpm(int[] list); void writeBreakBpm(int i); int getBreakBpm(int index); void setBreakBpm(int index, int bpm); int getUsableTracks(List<Integer> pattern); int getOkTracks(); void moveTrack(int sourceIndex, int destinationIndex); boolean isTrackListReady(); ListSortMode getSortMode(); ObservableList<IAudioFile> getMusicList(); ObservableList<IAudioFile> getBreakList(); void shuffleMusicList(); void sortMusicList(); void playMusicTrack(int index); void playBreakTrack(int index); void stopMusic(); }