view java/src/uk/ac/qmul/eecs/ccmi/sound/Sound.java @ 0:9418ab7b7f3f

Initial import
author Fiore Martin <fiore@eecs.qmul.ac.uk>
date Fri, 16 Dec 2011 17:35:51 +0000
parents
children 9e67171477bc
line wrap: on
line source
/*  
 CCmI Editor - A Collaborative Cross-Modal Diagram Editing Tool
  
 Copyright (C) 2011  Queen Mary University of London (http://ccmi.eecs.qmul.ac.uk/)

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/  

package uk.ac.qmul.eecs.ccmi.sound;

import java.io.InputStream;

/**
 * An object implementing the {@code Sound} interface can be used to play sound 
 * samples either just once or in a continuous loop. The client class needs to provide 
 * a reference to an {@code InputStream} to the sample source.
 * Furthermore, prebuilt sounds
 * associated to the events defined by the {@code SoundEvent} enumeration can be played.
 *
 */
public interface Sound {

	public void play(SoundEvent evt);

	public void play(SoundEvent evt, PlayerListener listener);

	public void play(InputStream sound);

	public void play(InputStream sound, PlayerListener listener);
	
	public void stop();
	
	public void setMuted(boolean mute);

	public void loadSound(InputStream sound);

	public void startLoop(SoundEvent evt);

	public void stopLoop(SoundEvent evt);

	public void setPlayerListener(PlayerListener listener,
			SoundEvent type);

	public void unsetPlayerListener(SoundEvent type);

	public void dispose();

}