From 94dc31d1c74594ce552f7d99e1d295ec74861231 Mon Sep 17 00:00:00 2001 From: Uriziel Date: Sat, 29 Sep 2012 09:14:39 +0200 Subject: [PATCH] Ver up, updated mpc readiness checking --- syncplay/__init__.py | 2 +- syncplay/players/mpc.py | 42 +++++++++++++++++------------------------ 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/syncplay/__init__.py b/syncplay/__init__.py index fb727de..79c8ae3 100644 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,3 +1,3 @@ -version = '0.6.6' +version = '0.7.0' milestone = 'Clara' projectURL = 'http://uriziel.github.com/syncplay/' \ No newline at end of file diff --git a/syncplay/players/mpc.py b/syncplay/players/mpc.py index fc0c4b0..b22aedc 100644 --- a/syncplay/players/mpc.py +++ b/syncplay/players/mpc.py @@ -12,7 +12,7 @@ class MPCHCAPIPlayer(object): self.mpc_api.callbacks.on_mpc_closed = lambda: self.__syncplayClient.stop(False) self.mpc_api.callbacks.on_fileStateChange = lambda _: self.lockAsking() self.mpc_api.callbacks.on_update_playstate = lambda _: self.unlockAsking() - self.preventAsking = False + self.preventAsking = True self.askLock = threading.RLock() self.playerStateChangeLock = threading.RLock() @@ -27,24 +27,25 @@ class MPCHCAPIPlayer(object): def set_speed(self, value): pass - - def testMpcReady(self): - try: - self.playerStateChangeLock.acquire() - self.mpc_api.ask_for_current_position() - except MPC_API.PlayerNotReadyException: + + def __testMpcReady(self): + i = 0 + while self.preventAsking: + if(i >= 100): + raise Exception("Player failed opening file") + i+=1 time.sleep(0.1) - self.testMpcReady() - finally: - self.playerStateChangeLock.release() def make_ping(self): - self.testMpcReady() - self.mpc_api.callbacks.on_update_filename = self.handleUpdatedFilename - self.__syncplayClient.initPlayer(self) - self.handleUpdatedFilename(self.mpc_api.fileplaying) - self.ask_for_status() - + try: + self.__testMpcReady() + self.mpc_api.callbacks.on_update_filename = self.handleUpdatedFilename + self.__syncplayClient.initPlayer(self) + self.handleUpdatedFilename(self.mpc_api.fileplaying) + self.ask_for_status() + except: + pass + def display_message(self, message): try: self.mpc_api.send_osd(message, 2, 3000) @@ -80,15 +81,6 @@ class MPCHCAPIPlayer(object): self.playerStateChangeLock.release() - def __askForPositionUntilPlayerReady(self): - if(self.__syncplayClient.running == False): - return 0 - try: - return self.mpc_api.ask_for_current_position() - except MPC_API.PlayerNotReadyException: - time.sleep(0.1) - return self.__askForPositionUntilPlayerReady() - def ask_for_status(self): try: if(not self.preventAsking and self.mpc_api.is_file_ready() and self.askLock.acquire(0)):