view java/src/uk/ac/qmul/eecs/ccmi/sound/Sound.java @ 1:e3935c01cde2 tip

moved license of PdPersistenceManager to the beginning of the file
author Fiore Martin <f.martin@qmul.ac.uk>
date Tue, 08 Jul 2014 19:52:03 +0100
parents 78b7fc5391a2
children
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 setDefaultPlayerListener(PlayerListener listener,
			SoundEvent type);

	public void dispose();

}