From 7d1fda5521afd9687c91a07c5c10b927d1d2bfc7 Mon Sep 17 00:00:00 2001 From: et0h Date: Sun, 17 May 2020 20:06:29 +0100 Subject: [PATCH] Fix erroneous seeks when joining an active room --- syncplay/client.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/syncplay/client.py b/syncplay/client.py index 51ec2f5..184e7d4 100755 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -78,6 +78,7 @@ class SyncplayClient(object): self.lastRewindTime = None self.lastAdvanceTime = None self.lastConnectTime = None + self.lastSetRoomTime = None self.lastLeftTime = 0 self.lastPausedOnLeaveTime = None self.lastLeftUser = "" @@ -185,7 +186,7 @@ class SyncplayClient(object): pauseChange = self.getPlayerPaused() != paused and self.getGlobalPaused() != paused _playerDiff = abs(self.getPlayerPosition() - position) _globalDiff = abs(self.getGlobalPosition() - position) - seeked = _playerDiff > constants.SEEK_THRESHOLD and _globalDiff > constants.SEEK_THRESHOLD + seeked = _playerDiff > constants.SEEK_THRESHOLD and _globalDiff > constants.SEEK_THRESHOLD and not self.recentlySetRoom() return pauseChange, seeked def rewindFile(self): @@ -258,6 +259,11 @@ class SyncplayClient(object): if connectDiff is None or connectDiff < constants.LAST_PAUSED_DIFF_THRESHOLD: return True + def recentlySetRoom(self): + setroomDiff = time.time() - self.lastSetRoomTime if self.lastSetRoomTime else None + if setroomDiff is None or setroomDiff < constants.LAST_PAUSED_DIFF_THRESHOLD: + return True + def _toggleReady(self, pauseChange, paused): if not self.userlist.currentUser.canControl(): self._player.setPaused(self._globalPaused) @@ -661,6 +667,7 @@ class SyncplayClient(object): return features def setRoom(self, roomName, resetAutoplay=False): + self.lastSetRoomTime = time.time() roomSplit = roomName.split(":") if roomName.startswith("+") and len(roomSplit) > 2: roomName = roomSplit[0] + ":" + roomSplit[1]