package djmania.file.step;

/**
 * (Processer Template) Step processer template.
 * <p>
 * Template from which step file processers extend. 
 * Used by the {@link djmania.file.StepReader} class. 
 * Descriptions from .SM file format documentation. 
 * <p>
 * Licensed under <A HREF="http://www.gnu.org/licenses/gpl.txt">GNU GPL (Version 3)</A>. 
 * <p>
 * @author	Philip Peng
 * @version	X.X Nov 2, 2007
 * 
 */

public class StepProcesser {
	
	// Foobars for the compiler
	private String foobarString = "foobar";
	private float foobarFloat = (float)1337;
	private float[][] foobarFloat2D = {{1234},{5678}};
	
	/**
	 * Always use an empty constructor. 
	 * Set the playback stream afterwards 
	 * using setStream.
	 */
	public StepProcesser() {}
	
	/**
	 * Sets the step file stream.
	 * @param	file	Path to step file.
	 * @return	-1 if file not found, 1 if successful.
	 */
	public int setStream(String file) {	return 0; }
	
	/**
	 * Process the step file. Call this if setStream returns 1.
	 */
	public void process() {}
	
	/**
	 * Get title.
	 * @return	The "main title" of the song. 
	 */
	public String getTitle() {
		return foobarString;
	}
	
	/**
	 * Get subtitle.
	 * @return	This text will appear underneath the main title of the song on the Select Music screen.
	 */
	public String getSubtitle() {
		return foobarString;
	}
	
	/**
	 * Get title transliteration.
	 * @return	Transliteration of song's main title. 
	 */
	public String getTitleTranslit() {
		return foobarString;
	}
	
	/**
	 * Get subtitle transliteration.
	 * @return	Transliteration of song's subtitle.
	 */
	public String getSubTitleTranslit() {
		return foobarString;
	}
	
	/**
	 * Get artist transliteration.
	 * @return	Transliteration of the artist's name. 
	 */
	public String getArtistTranslit() {
		return foobarString;
	}
	
	/**
	 * Get credits.
	 * @return	Credits for the wonderful song. 
	 */
	public String getCredits() {
		return foobarString;
	}
	
	/**
	 * Get banner image path.
	 * @return	The file name of the banner image.
	 */
	public String getBannerPath() {
		return foobarString;
	}
	
	/**
	 * Get background image path.
	 * @return	The file name of the background image.
	 */
	public String getBackgroundPath() {
		return foobarString;
	}
	
	/**
	 * Get CD image path.
	 * @return	The file name of the spinning CD logo.
	 */
	public String getCDLogoPath() {
		return foobarString;
	}
	
	/**
	 * Get music file path.
	 * @return	The file name of the music file.
	 */
	public String getMusicPath() {
		return foobarString;
	}
	
	/**
	 * Get offset time.
	 * @return	The time in seconds at which beat 0 occurs in the music.
	 */
	public float getOffset() {
		return foobarFloat;
	}
	
	/**
	 * Get sample start time.
	 * @return	The time in seconds to start the music sample that plays on the Select Music screen.
	 */
	public float getSampleStart() {
		return foobarFloat;
	}
	
	/**
	 * Get sample length time.
	 * @return	The time in seconds let the sample music play after starting.
	 */
	public float getSampleLength() {
		return foobarFloat;
	}
	
	/**
	 * Get selectability option
	 * @return	Restricted to courses, roulette or no restrictions.
	 */
	public int getSelectability() {
		return 0;
	}
	
	/**
	 * Get BPM values
	 * @return	Beats at which the beat-per-minute changes.
	 */
	public float[][] getBPMs() {
		return foobarFloat2D;
	}
	
	/**
	 * Get stop values
	 * @return	Beats at which there are stops.
	 */
	public float[][] getStops() {
		return foobarFloat2D;
	}
	
	
	
	
	
	
}
