X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fsound.py;h=f0ef91c8224c7675050bfb22183b33af9cf20572;hb=HEAD;hp=311586510874fd792241b3c72455b736f3b0af46;hpb=ea0183ae9159200f0657e2babf4231b49f9ca3be;p=naja.git diff --git a/naja/sound.py b/naja/sound.py index 3115865..f0ef91c 100644 --- a/naja/sound.py +++ b/naja/sound.py @@ -1,5 +1,7 @@ """Sound utilities.""" +import time + from pygame import mixer from naja.options import options @@ -11,9 +13,9 @@ from naja.constants import ( class DummySound(object): def init(self): - pass + self.playing_music = False - def play_sound(self, name, volume=DEFAULT_SOUND_VOLUME): + def play_sound(self, name, volume=DEFAULT_SOUND_VOLUME, foreground=False): pass def play_music(self, name, volume=DEFAULT_MUSIC_VOLUME): @@ -32,6 +34,7 @@ class DummySound(object): class PygameSound(object): def __init__(self): self._sounds = {} + self.playing_music = False def init(self): mixer.init(FREQ, BITSIZE, CHANNELS, BUFFER) @@ -47,11 +50,13 @@ class PygameSound(object): sound = self._sounds[track_name] = mixer.Sound(track_name) return sound - def play_sound(self, name, volume=DEFAULT_SOUND_VOLUME): + def play_sound(self, name, volume=DEFAULT_SOUND_VOLUME, foreground=False): sound = self.load_sound(name) if sound is not None: sound.set_volume(volume) sound.play() + if foreground: + time.sleep(sound.get_length()) def play_music(self, name, volume=DEFAULT_MUSIC_VOLUME): if not options.music: @@ -60,21 +65,26 @@ class PygameSound(object): mixer.music.load(track_name) mixer.music.set_volume(volume) mixer.music.play(-1) # loop sound + self.playing_music = True def pause_music(self): mixer.music.pause() + self.playing_music = False def unpause_music(self): mixer.music.unpause() + self.playing_music = True def stop(self): mixer.fadeout(1000) mixer.music.stop() + self.playing_music = False class SoundProxy(object): def __init__(self): self._sound = DummySound() + self._sound.init() def init(self): """Attempt to initialize the sound system."""