Ver up, updated mpc readiness checking

This commit is contained in:
Uriziel 2012-09-29 09:14:39 +02:00
parent 9c3151145a
commit 94dc31d1c7
2 changed files with 18 additions and 26 deletions

View File

@ -1,3 +1,3 @@
version = '0.6.6'
version = '0.7.0'
milestone = 'Clara'
projectURL = 'http://uriziel.github.com/syncplay/'

View File

@ -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)):