Ver up, updated mpc readiness checking
This commit is contained in:
parent
9c3151145a
commit
94dc31d1c7
@ -1,3 +1,3 @@
|
||||
version = '0.6.6'
|
||||
version = '0.7.0'
|
||||
milestone = 'Clara'
|
||||
projectURL = 'http://uriziel.github.com/syncplay/'
|
||||
@ -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)):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user