From c1cd7f2ea99c26ebd4fcfa933821d5765bc09d47 Mon Sep 17 00:00:00 2001 From: James Gray Date: Sun, 17 Jul 2016 13:41:43 -0500 Subject: [PATCH] console: loop mode specified at sound creation FMOD uses loop mode to preprocess the sound. --- lime/audio/AudioBuffer.hx | 4 +++- lime/audio/fmod/FMODMode.hx | 16 ++++++++++++++++ lime/audio/fmod/FMODSound.hx | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 lime/audio/fmod/FMODMode.hx diff --git a/lime/audio/AudioBuffer.hx b/lime/audio/AudioBuffer.hx index 729343c34..4ca60732d 100644 --- a/lime/audio/AudioBuffer.hx +++ b/lime/audio/AudioBuffer.hx @@ -12,6 +12,7 @@ import js.html.Audio; #elseif flash import flash.media.Sound; #elseif lime_console +import lime.audio.fmod.FMODMode; import lime.audio.fmod.FMODSound; #end @@ -101,7 +102,8 @@ class AudioBuffer { #if lime_console - var sound:FMODSound = FMODSound.fromFile (path); + var mode = StringTools.endsWith(path, ".wav") ? FMODMode.LOOP_OFF : FMODMode.LOOP_NORMAL; + var sound:FMODSound = FMODSound.fromFile (path, mode); if (sound.valid) { diff --git a/lime/audio/fmod/FMODMode.hx b/lime/audio/fmod/FMODMode.hx new file mode 100644 index 000000000..3ee04842f --- /dev/null +++ b/lime/audio/fmod/FMODMode.hx @@ -0,0 +1,16 @@ +package lime.audio.fmod; +#if lime_console + + +import lime.ConsoleIncludePaths; + + +@:enum abstract FMODMode(Int) { + + var LOOP_OFF = 0x00000001; + var LOOP_NORMAL = 0x00000002; + +} + + +#end diff --git a/lime/audio/fmod/FMODSound.hx b/lime/audio/fmod/FMODSound.hx index c0fef37e9..7ad4e6e7d 100644 --- a/lime/audio/fmod/FMODSound.hx +++ b/lime/audio/fmod/FMODSound.hx @@ -16,7 +16,7 @@ extern class FMODSound { // fromFile creates a sound from the named file. @:native("lime::ConsoleFmodSound::fromFile") - public static function fromFile (name:String):FMODSound; + public static function fromFile (name:String, mode:FMODMode):FMODSound; // play plays the sound and returns the channel it was assigned.