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'
|
milestone = 'Clara'
|
||||||
projectURL = 'http://uriziel.github.com/syncplay/'
|
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_mpc_closed = lambda: self.__syncplayClient.stop(False)
|
||||||
self.mpc_api.callbacks.on_fileStateChange = lambda _: self.lockAsking()
|
self.mpc_api.callbacks.on_fileStateChange = lambda _: self.lockAsking()
|
||||||
self.mpc_api.callbacks.on_update_playstate = lambda _: self.unlockAsking()
|
self.mpc_api.callbacks.on_update_playstate = lambda _: self.unlockAsking()
|
||||||
self.preventAsking = False
|
self.preventAsking = True
|
||||||
self.askLock = threading.RLock()
|
self.askLock = threading.RLock()
|
||||||
self.playerStateChangeLock = threading.RLock()
|
self.playerStateChangeLock = threading.RLock()
|
||||||
|
|
||||||
@ -28,22 +28,23 @@ class MPCHCAPIPlayer(object):
|
|||||||
def set_speed(self, value):
|
def set_speed(self, value):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def testMpcReady(self):
|
def __testMpcReady(self):
|
||||||
try:
|
i = 0
|
||||||
self.playerStateChangeLock.acquire()
|
while self.preventAsking:
|
||||||
self.mpc_api.ask_for_current_position()
|
if(i >= 100):
|
||||||
except MPC_API.PlayerNotReadyException:
|
raise Exception("Player failed opening file")
|
||||||
|
i+=1
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
self.testMpcReady()
|
|
||||||
finally:
|
|
||||||
self.playerStateChangeLock.release()
|
|
||||||
|
|
||||||
def make_ping(self):
|
def make_ping(self):
|
||||||
self.testMpcReady()
|
try:
|
||||||
self.mpc_api.callbacks.on_update_filename = self.handleUpdatedFilename
|
self.__testMpcReady()
|
||||||
self.__syncplayClient.initPlayer(self)
|
self.mpc_api.callbacks.on_update_filename = self.handleUpdatedFilename
|
||||||
self.handleUpdatedFilename(self.mpc_api.fileplaying)
|
self.__syncplayClient.initPlayer(self)
|
||||||
self.ask_for_status()
|
self.handleUpdatedFilename(self.mpc_api.fileplaying)
|
||||||
|
self.ask_for_status()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
def display_message(self, message):
|
def display_message(self, message):
|
||||||
try:
|
try:
|
||||||
@ -80,15 +81,6 @@ class MPCHCAPIPlayer(object):
|
|||||||
self.playerStateChangeLock.release()
|
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):
|
def ask_for_status(self):
|
||||||
try:
|
try:
|
||||||
if(not self.preventAsking and self.mpc_api.is_file_ready() and self.askLock.acquire(0)):
|
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