From ad5a7c8bf7972176acc850be1eff21f4121363ea Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 18 Jun 2009 05:49:08 +0900 Subject: [PATCH] close mplayer on deck close as media path may change --- anki/sound.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/anki/sound.py b/anki/sound.py index 5da54c671..6da2a7fca 100644 --- a/anki/sound.py +++ b/anki/sound.py @@ -9,6 +9,7 @@ Sound support __docformat__ = 'restructuredtext' import re, sys, threading, time, subprocess, os, signal, atexit, errno +from anki.hooks import addHook # Shared utils ########################################################################## @@ -164,7 +165,7 @@ def clearMplayerQueue(): mplayerQueue.append(None) mplayerCond.release() -def stopMplayer(): +def stopMplayer(restart=False): mplayerCond.acquire() if mplayerManager.mplayer: while 1: @@ -176,14 +177,23 @@ def stopMplayer(): # osx throws interrupt errors regularly, but we want to # ignore other errors on shutdown break - mplayerManager.mplayer = -1 + except ValueError: + # already closed + break + if not restart: + mplayerManager.mplayer = -1 mplayerCond.notify() mplayerCond.release() +def stopMplayerOnce(): + stopMplayer(restart=True) + mplayerManager = MplayerMonitor() mplayerManager.start() atexit.register(stopMplayer) +addHook("deckClosed", stopMplayerOnce) + # PyAudio recording ##########################################################################