package openfl.media {
import openfl.events.EventDispatcher;
/**
 * 	The SoundChannel class controls a sound in an application. Every sound is
 * 	assigned to a sound channel, and the application can have multiple sound
 * 	channels that are mixed together. The SoundChannel class contains a
 * 	`stop()` method, properties for monitoring the amplitude
 * 	(volume) of the channel, and a property for assigning a SoundTransform
 * 	object to the channel.
 * 
 * 	@event soundComplete Dispatched when a sound has finished playing.
 * 
 * 	@see [Playing sounds](https://books.openfl.org/openfl-developers-guide/working-with-sound/playing-sounds.html)
 * 	@see `openfl.media.Sound`
 * 
 * @externs
 */
public class SoundChannel extends openfl.events.EventDispatcher {
	function SoundChannel(sound:openfl.media.Sound, audioSource:* = undefined, soundTransform:openfl.media.SoundTransform = undefined) {
		super(undefined);
	}
	/**
	 * 		The current amplitude (volume) of the left channel, from 0 (silent) to 1
	 * 		(full amplitude).
	 * 	
	 */
	public var leftPeak:Number;
	/**
	 * 		When the sound is playing, the `position` property indicates in
	 * 		milliseconds the current point that is being played in the sound file.
	 * 		When the sound is stopped or paused, the `position` property
	 * 		indicates the last point that was played in the sound file.
	 * 
	 * 		A common use case is to save the value of the `position`
	 * 		property when the sound is stopped. You can resume the sound later by
	 * 		restarting it from that saved position.
	 * 
	 * 		If the sound is looped, `position` is reset to 0 at the
	 * 		beginning of each loop.
	 * 	
	 */
	public function get position():Number { return 0; }
	public function set position(value:Number):void {}
	/**
	 * 		The current amplitude (volume) of the right channel, from 0 (silent) to 1
	 * 		(full amplitude).
	 * 	
	 */
	public var rightPeak:Number;
	/**
	 * 		The SoundTransform object assigned to the sound channel. A SoundTransform
	 * 		object includes properties for setting volume, panning, left speaker
	 * 		assignment, and right speaker assignment.
	 * 	
	 */
	public function get soundTransform():openfl.media.SoundTransform { return null; }
	public function set soundTransform(value:openfl.media.SoundTransform):void {}
	/**
	 * 		Stops the sound playing in the channel.
	 * 
	 * 		@see [Playing sounds](https://books.openfl.org/openfl-developers-guide/working-with-sound/playing-sounds.html)
	 * 	
	 */
	public function stop():void {}
}
}
