Stop playlist at end (with optional loop setting for multi-file playlists)
This commit is contained in:
parent
9a0ea78be3
commit
5016e9d102
@ -479,6 +479,9 @@ class SyncplayClient(object):
|
|||||||
def changeToPlaylistIndex(self, *args, **kwargs):
|
def changeToPlaylistIndex(self, *args, **kwargs):
|
||||||
self.playlist.changeToPlaylistIndex(*args, **kwargs)
|
self.playlist.changeToPlaylistIndex(*args, **kwargs)
|
||||||
|
|
||||||
|
def isPlaylistLoopingEnabled(self):
|
||||||
|
return self._config["loopAtEndOfPlaylist"]
|
||||||
|
|
||||||
def __executePrivacySettings(self, filename, size):
|
def __executePrivacySettings(self, filename, size):
|
||||||
if self._config['filenamePrivacyMode'] == PRIVACY_SENDHASHED_MODE:
|
if self._config['filenamePrivacyMode'] == PRIVACY_SENDHASHED_MODE:
|
||||||
filename = utils.hashFilename(filename)
|
filename = utils.hashFilename(filename)
|
||||||
@ -1485,8 +1488,6 @@ class SyncplayPlaylist():
|
|||||||
return
|
return
|
||||||
if self._thereIsNextPlaylistIndex():
|
if self._thereIsNextPlaylistIndex():
|
||||||
self.switchToNewPlaylistIndex(self._nextPlaylistIndex(), resetPosition=True)
|
self.switchToNewPlaylistIndex(self._nextPlaylistIndex(), resetPosition=True)
|
||||||
else:
|
|
||||||
self._client.rewindFile()
|
|
||||||
|
|
||||||
def _updateUndoPlaylistBuffer(self, newPlaylist, newRoom):
|
def _updateUndoPlaylistBuffer(self, newPlaylist, newRoom):
|
||||||
if self._playlistBufferIsFromOldRoom(newRoom):
|
if self._playlistBufferIsFromOldRoom(newRoom):
|
||||||
@ -1513,6 +1514,8 @@ class SyncplayPlaylist():
|
|||||||
return False
|
return False
|
||||||
elif len(self._playlist) == 1:
|
elif len(self._playlist) == 1:
|
||||||
return False
|
return False
|
||||||
|
elif self._playlistIsAtEnd():
|
||||||
|
return self._client.isPlaylistLoopingEnabled()
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,7 @@ class ConfigurationGetter(object):
|
|||||||
"perPlayerArguments": None,
|
"perPlayerArguments": None,
|
||||||
"mediaSearchDirectories": None,
|
"mediaSearchDirectories": None,
|
||||||
"sharedPlaylistEnabled": True,
|
"sharedPlaylistEnabled": True,
|
||||||
|
"loopAtEndOfPlaylist": False,
|
||||||
"file": None,
|
"file": None,
|
||||||
"playerArgs": [],
|
"playerArgs": [],
|
||||||
"playerClass": None,
|
"playerClass": None,
|
||||||
@ -105,7 +106,8 @@ class ConfigurationGetter(object):
|
|||||||
"showSameRoomOSD",
|
"showSameRoomOSD",
|
||||||
"showNonControllerOSD",
|
"showNonControllerOSD",
|
||||||
"showDurationNotification",
|
"showDurationNotification",
|
||||||
"sharedPlaylistEnabled"
|
"sharedPlaylistEnabled",
|
||||||
|
"loopAtEndOfPlaylist"
|
||||||
]
|
]
|
||||||
self._tristate = [
|
self._tristate = [
|
||||||
"checkForUpdatesAutomatically",
|
"checkForUpdatesAutomatically",
|
||||||
@ -136,7 +138,8 @@ class ConfigurationGetter(object):
|
|||||||
"filesizePrivacyMode", "unpauseAction",
|
"filesizePrivacyMode", "unpauseAction",
|
||||||
"pauseOnLeave", "readyAtStart", "autoplayMinUsers",
|
"pauseOnLeave", "readyAtStart", "autoplayMinUsers",
|
||||||
"autoplayInitialState", "mediaSearchDirectories",
|
"autoplayInitialState", "mediaSearchDirectories",
|
||||||
"sharedPlaylistEnabled", "playerCommandDelay"],
|
"sharedPlaylistEnabled", "playerCommandDelay",
|
||||||
|
"loopAtEndOfPlaylist"],
|
||||||
"gui": ["showOSD", "showOSDWarnings", "showSlowdownOSD",
|
"gui": ["showOSD", "showOSDWarnings", "showSlowdownOSD",
|
||||||
"showDifferentRoomOSD", "showSameRoomOSD",
|
"showDifferentRoomOSD", "showSameRoomOSD",
|
||||||
"showNonControllerOSD", "showDurationNotification"],
|
"showNonControllerOSD", "showDurationNotification"],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user