feat: Add Audio Gallery screen and integrate into Debug Tools menu
feat: Implement audio playback controls and audio management in the gallery refactor: Update audio engine interface to include stopAllAudio method Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -6,6 +6,7 @@ abstract class EngineAudio {
|
||||
void playMenuMusic();
|
||||
void playLevelMusic(WolfLevel level);
|
||||
void stopMusic();
|
||||
Future<void> stopAllAudio();
|
||||
void playSoundEffect(int sfxId);
|
||||
Future<void> init();
|
||||
void dispose();
|
||||
|
||||
@@ -22,6 +22,9 @@ class CliSilentAudio implements EngineAudio {
|
||||
@override
|
||||
void stopMusic() {}
|
||||
|
||||
@override
|
||||
Future<void> stopAllAudio() async {}
|
||||
|
||||
@override
|
||||
void playSoundEffect(int sfxId) {
|
||||
// Optional: You could use the terminal 'bell' character here
|
||||
|
||||
@@ -62,7 +62,7 @@ class WolfAudio implements EngineAudio {
|
||||
/// Disposes of the audio engine and frees resources.
|
||||
@override
|
||||
void dispose() {
|
||||
stopMusic();
|
||||
stopAllAudio();
|
||||
_musicPlayer.dispose();
|
||||
|
||||
for (final player in _sfxPlayers) {
|
||||
@@ -101,6 +101,16 @@ class WolfAudio implements EngineAudio {
|
||||
await _musicPlayer.stop();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> stopAllAudio() async {
|
||||
if (!_isInitialized) return;
|
||||
|
||||
await _musicPlayer.stop();
|
||||
for (final player in _sfxPlayers) {
|
||||
await player.stop();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> pauseMusic() async {
|
||||
if (_isInitialized) await _musicPlayer.pause();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user