mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
add dispose clips
This commit is contained in:
@@ -87,6 +87,14 @@ public class AudioClip implements IAudioClip {
|
||||
getIdleClip().loop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
for (byte[] b : audioClips.values()) {
|
||||
b = null;
|
||||
}
|
||||
audioClips.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void stop() {
|
||||
for (ClipWrapper clip: clips) {
|
||||
|
||||
@@ -68,6 +68,14 @@ public class AudioClip implements IAudioClip {
|
||||
clip.loop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
if (clip != null) {
|
||||
clip.dispose();
|
||||
clip = null;
|
||||
}
|
||||
}
|
||||
|
||||
public final void stop() {
|
||||
if (clip == null) {
|
||||
return;
|
||||
|
||||
@@ -5,4 +5,5 @@ public interface IAudioClip {
|
||||
boolean isDone();
|
||||
void stop();
|
||||
void loop();
|
||||
void dispose();
|
||||
}
|
||||
|
||||
@@ -15,4 +15,7 @@ public class NoSoundClip implements IAudioClip {
|
||||
@Override
|
||||
public void loop() { }
|
||||
|
||||
@Override
|
||||
public void dispose() { }
|
||||
|
||||
}
|
||||
|
||||
@@ -57,8 +57,8 @@ public class SoundSystem {
|
||||
final String resource = type.getResourceFileName();
|
||||
clip = GuiBase.getInterface().createAudioClip(resource);
|
||||
if (clip == null) {
|
||||
clip = emptySound;
|
||||
}
|
||||
return emptySound;
|
||||
} else
|
||||
loadedClips.put(type, clip);
|
||||
}
|
||||
return clip;
|
||||
@@ -85,8 +85,8 @@ public class SoundSystem {
|
||||
if (null == clip) { // cache miss
|
||||
clip = GuiBase.getInterface().createAudioClip(fileName);
|
||||
if (clip == null) {
|
||||
clip = emptySound;
|
||||
}
|
||||
return emptySound;
|
||||
} else
|
||||
loadedScriptClips.put(fileName, clip);
|
||||
}
|
||||
return clip;
|
||||
@@ -243,6 +243,7 @@ public class SoundSystem {
|
||||
currentTrack.dispose();
|
||||
currentTrack = null;
|
||||
}
|
||||
invalidateSoundCache();
|
||||
}
|
||||
|
||||
public void fadeModifier(float value) {
|
||||
@@ -288,7 +289,13 @@ public class SoundSystem {
|
||||
}
|
||||
|
||||
public void invalidateSoundCache() {
|
||||
for (IAudioClip c : loadedClips.values()) {
|
||||
c.dispose();
|
||||
}
|
||||
loadedClips.clear();
|
||||
for (IAudioClip c : loadedScriptClips.values()) {
|
||||
c.dispose();
|
||||
}
|
||||
loadedScriptClips.clear();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user