package com.netthreads.osc.note.service;
import com.google.inject.ImplementedBy;
@ImplementedBy(NoteModelImpl.class)
public interface NoteModel
{
/**
* Play current bar and advance the bar index.
*
* @return The bar played.
*/
public int play();
/**
* Reset the model.
*
*/
public void reset();
/**
* Get index of bar played.
*
* @return The index of bar played.
*/
public int getPlayed();
/**
* Get state of note in model.
*
* @param panel
* @param bar
* @param note
*
* @return True if set.
*/
public boolean getState(int panel, int bar, int note);
/**
* Set state of note in model.
*
* @param panel
* @param bar
* @param note
* @param state
*/
public void setState(int panel, int bar, int note, boolean state);
/**
* Return internal notes.
*
* @return The notes.
*/
public NoteDefinition[][] getNotes();
}