From 23f223e7ecb6bd01e82db92e535744dee4394d2c Mon Sep 17 00:00:00 2001 From: Et0h Date: Sat, 7 May 2016 12:17:43 +0100 Subject: [PATCH] Add 'loopSingleFiles' option to 'client_settings' (default: False) --- syncplay/client.py | 13 +++++++++++-- syncplay/ui/ConfigurationGetter.py | 3 +++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index 7a7f807..951b93a 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -463,6 +463,9 @@ class SyncplayClient(object): def changeToPlaylistIndex(self, *args, **kwargs): self.playlist.changeToPlaylistIndex(*args, **kwargs) + def loopSingleFiles(self): + return self._config["loopSingleFiles"] + def isPlaylistLoopingEnabled(self): return self._config["loopAtEndOfPlaylist"] @@ -1486,7 +1489,13 @@ class SyncplayPlaylist(): def loadNextFileInPlaylist(self): if self._notPlayingCurrentIndex(): return - if self._thereIsNextPlaylistIndex(): + + if len(self._playlist) == 1 and self._client.loopSingleFiles(): + self._client.rewindFile() + self._client.setPaused(False) + reactor.callLater(0.5, self._client.setPaused, False,) + + elif self._thereIsNextPlaylistIndex(): self.switchToNewPlaylistIndex(self._nextPlaylistIndex(), resetPosition=True) def _updateUndoPlaylistBuffer(self, newPlaylist, newRoom): @@ -1512,7 +1521,7 @@ class SyncplayPlaylist(): def _thereIsNextPlaylistIndex(self): if self._playlistIndex is None: return False - elif len(self._playlist) == 1: + elif len(self._playlist) == 1 and not self._client.loopSingleFiles(): return False elif self._playlistIsAtEnd(): return self._client.isPlaylistLoopingEnabled() diff --git a/syncplay/ui/ConfigurationGetter.py b/syncplay/ui/ConfigurationGetter.py index a8d2446..ebe3da9 100755 --- a/syncplay/ui/ConfigurationGetter.py +++ b/syncplay/ui/ConfigurationGetter.py @@ -36,6 +36,7 @@ class ConfigurationGetter(object): "mediaSearchDirectories": None, "sharedPlaylistEnabled": True, "loopAtEndOfPlaylist": False, + "loopSingleFiles" : False, "onlySwitchToTrustedURIs": False, "trustedURIs": None, "file": None, @@ -109,6 +110,7 @@ class ConfigurationGetter(object): "showDurationNotification", "sharedPlaylistEnabled", "loopAtEndOfPlaylist", + "loopSingleFiles", "onlySwitchToTrustedURIs" ] self._tristate = [ @@ -141,6 +143,7 @@ class ConfigurationGetter(object): "pauseOnLeave", "readyAtStart", "autoplayMinUsers", "autoplayInitialState", "mediaSearchDirectories", "sharedPlaylistEnabled", "loopAtEndOfPlaylist", + "loopSingleFiles", "onlySwitchToTrustedURIs", "trustedURIs"], "gui": ["showOSD", "showOSDWarnings", "showSlowdownOSD", "showDifferentRoomOSD", "showSameRoomOSD",