diff --git a/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundBridge.java b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundBridge.java new file mode 100644 index 00000000..6372310b --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundBridge.java @@ -0,0 +1,6 @@ +package fr.enssat.BoulderDash.bridges; + +public interface SoundBridge { + void play(); + void stop(); +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundBridgeFactory.java b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundBridgeFactory.java new file mode 100644 index 00000000..163f6770 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundBridgeFactory.java @@ -0,0 +1,7 @@ +package fr.enssat.BoulderDash.bridges; + +public class SoundBridgeFactory { + public static SoundBridge createSoundBridgeFromFilePath(String filePath) { + return new SoundJLayerBridge(filePath); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.java b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.java index e1088119..9d05fa97 100644 --- a/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.java +++ b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.java @@ -14,7 +14,7 @@ import javazoom.jl.player.FactoryRegistry; * @author Valerian Saliou * @since 2015-06-19 */ -public class SoundJLayerBridge extends PlaybackListener implements Runnable { +public class SoundJLayerBridge extends PlaybackListener implements Runnable, SoundBridge { private String filePath; private AdvancedPlayer player; private Thread playerThread; diff --git a/boulder-dash/src/fr/enssat/BoulderDash/helpers/AudioLoadHelper.java b/boulder-dash/src/fr/enssat/BoulderDash/helpers/AudioLoadHelper.java index bcfc6435..11d0a7cf 100644 --- a/boulder-dash/src/fr/enssat/BoulderDash/helpers/AudioLoadHelper.java +++ b/boulder-dash/src/fr/enssat/BoulderDash/helpers/AudioLoadHelper.java @@ -1,6 +1,7 @@ package fr.enssat.BoulderDash.helpers; -import fr.enssat.BoulderDash.bridges.SoundJLayerBridge; +import fr.enssat.BoulderDash.bridges.SoundBridge; +import fr.enssat.BoulderDash.bridges.SoundBridgeFactory; import java.io.File; import java.io.FilenameFilter; @@ -17,8 +18,8 @@ import java.util.HashMap; public class AudioLoadHelper { private static String pathToAudioStore = "./res/audio"; - private SoundJLayerBridge musicToPlay; - private HashMap preloadedSounds; + private SoundBridge musicToPlay; + private HashMap preloadedSounds; /** * Class constructor @@ -47,9 +48,8 @@ public class AudioLoadHelper { this.stopMusic(); } - this.musicToPlay = new SoundJLayerBridge( - this.getMusicPathInAudioStore(musicId) - ); + String filePath = this.getMusicPathInAudioStore(musicId); + this.musicToPlay = SoundBridgeFactory.createSoundBridgeFromFilePath(filePath); this.musicToPlay.play(); } @@ -66,7 +66,7 @@ public class AudioLoadHelper { private void preloadSounds() { // Initialize String curSoundIdPrep; - this.preloadedSounds = new HashMap(); + this.preloadedSounds = new HashMap<>(); // List sound files File soundsDir = new File(AudioLoadHelper.pathToAudioStore + "/sounds/"); @@ -82,9 +82,8 @@ public class AudioLoadHelper { curSoundIdPrep = curSoundId.getName(); curSoundIdPrep = curSoundIdPrep.substring(0, curSoundIdPrep.lastIndexOf('.')); - this.preloadedSounds.put(curSoundIdPrep, new SoundJLayerBridge( - curSoundId.getPath() - )); + this.preloadedSounds.put(curSoundIdPrep, + SoundBridgeFactory.createSoundBridgeFromFilePath(curSoundId.getPath())); } } @@ -94,7 +93,7 @@ public class AudioLoadHelper { * @param soundId Sound identifier * @return Preloaded sound instance */ - private SoundJLayerBridge getPreloadedSound(String soundId) { + private SoundBridge getPreloadedSound(String soundId) { return this.preloadedSounds.get(soundId); }