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