# HG changeset patch # User Josef "Jeff" Sipek # Date 1162672292 18000 # Node ID 87aa31e41f4a3920217ca9065e0b6997e35cf6b3 # Parent c6a3a4d09a9a8beb365814b62797cb5f9a702b95 Play the files in a separate thread diff -r c6a3a4d09a9a -r 87aa31e41f4a vixm/player.py --- a/vixm/player.py Fri Nov 03 23:59:10 2006 -0500 +++ b/vixm/player.py Sat Nov 04 15:31:32 2006 -0500 @@ -12,23 +12,26 @@ self.current = None + self.blksize = 40960 self.dev = ao.AudioDevice("oss") def play(self, s): self.playing = True self.current = s - mf = mad.MadFile(s["file"]) - - while True: - buf = mf.read() - if buf is None: - break - self.dev.play(buf, len(buf)) - - self.playing = False - def run(self): while not self.shutdown: - time.sleep(0.5) + if self.current and self.playing: + # play the file + mf = mad.MadFile(self.current["file"]) + + while True: + buf = mf.read(self.blksize) + if buf is None or self.shutdown: + break + self.dev.play(buf, len(buf)) + self.playing = False + else: + # nothing to play, just sleep + time.sleep(0.5)