Last active
December 18, 2015 17:49
-
-
Save MadeByPi/5821484 to your computer and use it in GitHub Desktop.
Haxe externs for SoundManager2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* ... | |
* | |
* Haxe extern for SoundManager2 | |
* http://www.schillmania.com/projects/soundmanager2/doc/ | |
* | |
* @author Mike Almond | |
* https://github.com/MadeByPi | |
* https://github.com/mikedotalmond | |
* | |
*/ | |
@:final extern class SoundManager2 { | |
// public properties | |
public var allowScriptAccess:String; | |
public var altURL:String; | |
public var audioFormats:Dynamic; | |
public var bgColor:String; | |
public var consoleOnly:Bool; | |
public var debugFlash:Bool; | |
public var debugMode:Bool; | |
public var defaultOptions:SMOptions; | |
public var flash9Options:Dynamic; | |
public var features:Dynamic; | |
public var flashLoadTimeout:Int; | |
public var flashPollingInterval:Int; | |
public var flashVersion:Int; | |
public var html5Only(default, null):Bool; | |
public var html5PollingInterval:Int; | |
public var movieStarOptions:Dynamic; | |
public var preferFlash:Bool; | |
public var useConsole:Bool; | |
public var useFastPolling:Bool; | |
public var useFlashBlock:Bool; | |
public var useHighPerformance:Bool; | |
public var useHTML5Audio:Bool; | |
public var waitForWindowLoad:Bool; | |
public var wmode:String; | |
public var url:String; | |
// public functions | |
public function setup(options:SMOptions):Void; | |
public function createSound(options:SMSoundOptions):SMSound; | |
public function getSoundById(id:String):SMSound; | |
public function canPlayLink(value:String):Bool; | |
public function canPlayMIME(value:String):Bool; | |
public function canPlayURL(value:String):Bool; | |
public function onPosition(id:String, msecOffset:Int, cb:Float->Void, ?scope:Dynamic):Void; | |
public function clearOnPosition(id:String, msecOffset:Int, ?cb:Float->Void):Void; | |
public function destroySound(id:String):Void; | |
public function getMemoryUse():Int; | |
public function load(id:String, ?options:Dynamic):SMSound; | |
public function mute(?id:String):SMSound; | |
public function play(id:String, ?options:Dynamic):SMSound; | |
public function pause(id:String):SMSound; | |
public function pauseAll():Void; | |
public function resume(id:String):SMSound; | |
public function resumeAll():Void; | |
public function stop(id:String):SMSound; | |
public function stopAll():Void; | |
public function toggleMute(id:String):SMSound; | |
public function togglePause(id:String):SMSound; | |
public function reboot():Void; | |
public function reset():Void; | |
public function unload(id:String):SMSound; | |
public function unmute(?id:String):SMSound; | |
public function setPan(id:String,value:Int):SMSound; | |
public function setPosition(id:String,value:Int):SMSound; | |
public function setVolume(id:String, value:Int):SMSound; | |
public function onready(cb:Void->Void, ?scope:Dynamic):Void; | |
public function ontimeout(cb:Dynamic->Void, ?scope:Dynamic):Void; | |
public function beginDelayedInit():Void; | |
} | |
/* */ | |
/* SMSound */ | |
@:final extern class SMSound { | |
public var id(default, null) :String; | |
public var sID(default, null) :String; | |
public var url(default, null) :String; | |
public var isBuffering(default, null) :Bool; | |
public var loaded(default, null) :Bool; | |
public var muted(default, null) :Bool; | |
public var paused(default, null) :Bool; | |
public var connected(default, null) :Bool; | |
public var isHTML5(default, null) :Bool; | |
public var id3(default, null) :Dynamic; | |
public var metadata(default, null) :Dynamic; | |
public var pan(default, null) :Int; | |
public var volume(default, null) :Int; | |
public var instanceCount(default, null) :Int; | |
public var readyState(default, null) :Int; // @see SMSoundReadyState | |
public var bytesLoaded(default, null) :Int; | |
public var bytesTotal(default, null) :Int; | |
public var duration(default, null) :Int; | |
public var durationEstimate(default, null) :Int; | |
public var failures(default, null) :Int; | |
public var playState(default, null) :Int; | |
public var position(default, null) :Int; | |
public var bufferLength(default, null) :Int; | |
public var options(default, null) :SMSoundOptions; | |
// fft - needs flash 9 + policy file if audio was loaded cross-domain | |
public var eqData(default, null) :SMWaveformData; | |
public var waveformData(default, null) :SMWaveformData; | |
public var buffered(default, null) :Array<SMBufferData>; | |
public var peakData(default, null) :SMPeakDataData; | |
public function new():Void; | |
public function play(?options:SMSoundOptions):SMSound; | |
public function start():SMSound; | |
public function stop():SMSound; | |
public function pause():SMSound; | |
public function resume():SMSound; | |
public function togglePause():SMSound; | |
public function mute():SMSound; | |
public function unmute():SMSound; | |
public function toggleMute():SMSound; | |
public function load():SMSound; | |
public function unload():SMSound; | |
public function destruct():Void; | |
public function setPosition(val:Int):Void; | |
public function setAutoPlay(val:Bool):Void; | |
public function getAutoPlay():Bool; | |
public function onPosition(position:Int):SMSound; | |
public function onposition(position:Int):SMSound; | |
public function setPan(pan:Int):SMSound; | |
public function setVolume(volume:Int):SMSound; | |
public function clearOnPosition():SMSound; | |
} | |
@:final class SMSoundReadyState { | |
/*0 = uninitialised, 1 = loading, 2 = failed/error, 3 = loaded/success*/ | |
public static inline var UNINITIALISED :Int = 0; | |
public static inline var LOADING :Int = 1; | |
public static inline var ERROR :Int = 2; | |
public static inline var SUCCESS :Int = 3; | |
} | |
extern typedef SMWaveformData = { | |
var left :Array<Float>; | |
var right:Array<Float>; | |
} | |
extern typedef SMBufferData = { | |
var start:Int; | |
var end:Int; | |
} | |
extern typedef SMPeakDataData = { | |
var left:Float; | |
var right:Float; | |
} | |
//http://www.schillmania.com/projects/soundmanager2/doc/#sm-config | |
extern typedef SMOptions = { | |
@:optional var url : String; // path to swfs, | |
@:optional var debugMode : Bool; | |
@:optional var consoleOnly : Bool; | |
@:optional var useConsole : Bool; | |
@:optional var useFlashBlock : Bool; | |
@:optional var useHighPerformance : Bool; | |
@:optional var useHTML5Audio : Bool; | |
@:optional var waitForWindowLoad : Bool; | |
@:optional var allowScriptAccess : String; | |
@:optional var bgColor : String; | |
@:optional var debugFlash : Bool; | |
@:optional var preferFlash : Bool; | |
@:optional var noSWFCache : Bool; | |
@:optional var flashVersion : Int; | |
@:optional var flashLoadTimeout : Int; | |
@:optional var flashPollingInterval : Int; | |
@:optional var wmode : String; | |
@:optional var html5PollingInterval : Int; | |
@:optional var idPrefix : String; | |
@:optional var html5Test : EReg; | |
@:optional var onready : Void->Void; | |
@:optional var ontimeout : String->Void; | |
@:optional var defaultOptions :SMSoundOptions; | |
} | |
extern typedef SMSoundOptions = { | |
@:optional var id :String; | |
@:optional var url :String; | |
@:optional var type :String; // MIME-like hint for canPlay() tests, eg. 'audio/mp3' | |
@:optional var multiShot :Bool; // let sounds "restart" or "chorus" when played multiple times.. | |
@:optional var stream :Bool; // allows playing before entire file has loaded (recommended) | |
@:optional var autoLoad :Bool; // enable automatic loading (otherwise .load() will call with .play()) | |
@:optional var autoPlay :Bool; // enable playing of file ASAP (much faster if "stream" is true) | |
@:optional var multiShotEvents :Bool; // allow events (onfinish()) to fire for each shot, if supported. | |
@:optional var usePolicyFile :Bool; // enable crossdomain.xml request for remote domains (for ID3/waveform access) | |
@:optional var onload :Void->Void; // callback function for "load finished" | |
@:optional var onfailure :Void->Void; | |
@:optional var onfinish :Void->Void; // callback function for "sound finished playing" | |
@:optional var onplay :Void->Void; // callback for "play" start | |
@:optional var onpause :Void->Void; // callback for "pause" | |
@:optional var onresume :Void->Void; // callback for "resume" (pause toggle) | |
@:optional var onstop :Void->Void; // callback for "user stop" | |
@:optional var onposition :Void->Void; | |
@:optional var whileplaying :Int->Void; // callback during play (position update) | |
@:optional var whileloading :Int->Int->Void; // callback function for updating progress (X of Y bytes received) | |
@:optional var onid3 :Void->Void; // callback function for "ID3 data is added/available" | |
@:optional var loops :Int; // number of times to play the sound. Related: looping (API demo) | |
@:optional var position :Int; // playhead position, ms | |
@:optional var volume :Int; // self-explanatory. 0-100, the latter being the max. | |
@:optional var pan :Int; // "pan" settings, left-to-right, -100 to 100 | |
@:optional var to :Int; // position to end playback within a sound (msec), see demo | |
@:optional var from :Int; // position to start playback within a sound (msec), see demo | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment