diff --git a/syncplay/players/basePlayer.py b/syncplay/players/basePlayer.py index c8fdcc2..37b81d7 100644 --- a/syncplay/players/basePlayer.py +++ b/syncplay/players/basePlayer.py @@ -6,7 +6,7 @@ class BasePlayer(object): execute updatePlayerStatus(paused, position) on client Given the arguments: boolean paused and float position in seconds ''' - def askForStatus(self): + def askForStatus(self, cookie=None): raise NotImplementedError() ''' @@ -121,4 +121,4 @@ class DummyPlayer(BasePlayer): @staticmethod def getPlayerPathErrors(playerPath, filePath): - return None \ No newline at end of file + return None diff --git a/syncplay/players/mpc.py b/syncplay/players/mpc.py index 8b2c938..440ee43 100644 --- a/syncplay/players/mpc.py +++ b/syncplay/players/mpc.py @@ -420,20 +420,22 @@ class MPCHCAPIPlayer(BasePlayer): return self._mpcApi.lastFilePosition @retry(MpcHcApi.PlayerNotReadyException, constants.MPC_MAX_RETRIES, constants.MPC_RETRY_WAIT_TIME, 1) - def askForStatus(self): + def askForStatus(self, cookie=None): if self._mpcApi.filePlaying and self.__preventAsking.wait(0) and self.__fileUpdate.acquire(0): self.__fileUpdate.release() position = self.__getPosition() paused = self._mpcApi.isPaused() position = float(position) if self.__preventAsking.wait(0) and self.__fileUpdate.acquire(0): - self.__client.updatePlayerStatus(paused, position) + self.__client.updatePlayerStatus(paused, position, cookie=cookie) self.__fileUpdate.release() return - self.__echoGlobalStatus() + self.__echoGlobalStatus(cookie) - def __echoGlobalStatus(self): - self.__client.updatePlayerStatus(self.__client.getGlobalPaused(), self.__client.getGlobalPosition()) + def __echoGlobalStatus(self, cookie): + self.__client.updatePlayerStatus(self.__client.getGlobalPaused(), + self.__client.getGlobalPosition(), + cookie=cookie) def __forcePause(self): for _ in xrange(constants.MPC_MAX_RETRIES): diff --git a/syncplay/players/mplayer.py b/syncplay/players/mplayer.py index dd35762..65124a5 100644 --- a/syncplay/players/mplayer.py +++ b/syncplay/players/mplayer.py @@ -72,14 +72,14 @@ class MplayerPlayer(BasePlayer): self.reactor.callLater(0, self._client.initPlayer, self) self._onFileUpdate() - def askForStatus(self): + def askForStatus(self, cookie=None): self._positionAsk.clear() self._pausedAsk.clear() self._getPaused() self._getPosition() self._positionAsk.wait() self._pausedAsk.wait() - self._client.updatePlayerStatus(self._paused, self._position) + self._client.updatePlayerStatus(self._paused, self._position, cookie=cookie) def _setProperty(self, property_, value): self._listener.sendLine("set_property {} {}".format(property_, value)) diff --git a/syncplay/players/mpv.py b/syncplay/players/mpv.py index ff52af2..1130ca7 100644 --- a/syncplay/players/mpv.py +++ b/syncplay/players/mpv.py @@ -154,14 +154,16 @@ class NewMpvPlayer(OldMpvPlayer): else: self._paused = self._client.getGlobalPaused() - def askForStatus(self): + def askForStatus(self, cookie=None): self._positionAsk.clear() self._pausedAsk.clear() self._getPaused() self._getPosition() self._positionAsk.wait(constants.MPV_LOCK_WAIT_TIME) self._pausedAsk.wait(constants.MPV_LOCK_WAIT_TIME) - self._client.updatePlayerStatus(self._paused if self.fileLoaded else self._client.getGlobalPaused(), self.getCalculatedPosition()) + self._client.updatePlayerStatus(self._paused if self.fileLoaded else self._client.getGlobalPaused(), + self.getCalculatedPosition(), + cookie=cookie) def _preparePlayer(self): if self.delayedFilePath: @@ -219,4 +221,4 @@ class NewMpvPlayer(OldMpvPlayer): if self.fileLoaded == True and self.lastLoadedTime != None and time.time() > (self.lastLoadedTime + constants.MPV_NEWFILE_IGNORE_TIME): return True else: - return False \ No newline at end of file + return False diff --git a/syncplay/players/vlc.py b/syncplay/players/vlc.py index 331fcbf..70a9dd3 100644 --- a/syncplay/players/vlc.py +++ b/syncplay/players/vlc.py @@ -84,16 +84,20 @@ class VlcPlayer(BasePlayer): self.setPaused(self._client.getGlobalPaused()) self.setPosition(self._client.getGlobalPosition()) - def askForStatus(self): + def askForStatus(self, cookie=None): self._filechanged = False self._positionAsk.clear() self._pausedAsk.clear() self._listener.sendLine(".") if self._filename and not self._filechanged: self._positionAsk.wait(constants.PLAYER_ASK_DELAY) - self._client.updatePlayerStatus(self._paused, self.getCalculatedPosition()) + self._client.updatePlayerStatus(self._paused, + self.getCalculatedPosition(), + cookie=cookie) else: - self._client.updatePlayerStatus(self._client.getGlobalPaused(), self._client.getGlobalPosition()) + self._client.updatePlayerStatus(self._client.getGlobalPaused(), + self._client.getGlobalPosition(), + cookie=cookie) def getCalculatedPosition(self): if self._lastVLCPositionUpdate is None: