Specify whether change in ready state is manually initiated or automatic
This commit is contained in:
parent
f6221f2a9a
commit
440c79f1a3
@ -164,7 +164,7 @@ class SyncplayClient(object):
|
||||
if lastPausedDiff is not None and lastPausedDiff < constants.LAST_PAUSED_DIFF_THRESHOLD:
|
||||
self.lastPausedOnLeaveTime = None
|
||||
else:
|
||||
self.changeReadyState(not self.getPlayerPaused())
|
||||
self.changeReadyState(not self.getPlayerPaused(), manuallyInitiated=False)
|
||||
if self._lastGlobalUpdate:
|
||||
self._lastPlayerUpdate = time.time()
|
||||
if (pauseChange or seeked) and self._protocol:
|
||||
@ -410,10 +410,8 @@ class SyncplayClient(object):
|
||||
self.identifyAsController(storedRoomPassword)
|
||||
|
||||
def connected(self):
|
||||
if self.userlist.currentUser.isReady() is not None:
|
||||
self._protocol.setReady(self.userlist.currentUser.isReady())
|
||||
else:
|
||||
self._protocol.setReady(self._config['readyAtStart'])
|
||||
readyState = self._config['readyAtStart'] if self.userlist.currentUser.isReady() is None else self.userlist.currentUser.isReady()
|
||||
self._protocol.setReady(readyState, manuallyInitiated=False)
|
||||
self.reIdentifyAsController()
|
||||
|
||||
def getRoom(self):
|
||||
@ -483,22 +481,22 @@ class SyncplayClient(object):
|
||||
return requireMinVersionDecorator
|
||||
|
||||
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
|
||||
def toggleReady(self):
|
||||
self._protocol.setReady(not self.userlist.currentUser.isReady())
|
||||
def toggleReady(self, manuallyInitiated=True):
|
||||
self._protocol.setReady(not self.userlist.currentUser.isReady(), manuallyInitiated)
|
||||
|
||||
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
|
||||
def changeReadyState(self, newState):
|
||||
def changeReadyState(self, newState, manuallyInitiated=True):
|
||||
oldState = self.userlist.currentUser.isReady()
|
||||
if newState != oldState:
|
||||
self.toggleReady()
|
||||
self.toggleReady(manuallyInitiated)
|
||||
|
||||
def setReady(self, username, isReady):
|
||||
def setReady(self, username, isReady, manuallyInitiated=True):
|
||||
oldReadyState = self.userlist.isReady(username)
|
||||
if oldReadyState is None:
|
||||
oldReadyState = False
|
||||
self.userlist.setReady(username, isReady)
|
||||
self.ui.userListChange()
|
||||
if oldReadyState != isReady:
|
||||
if manuallyInitiated and oldReadyState != isReady:
|
||||
showOnOSD = constants.SHOW_OSD_WARNINGS
|
||||
if constants.SHOW_NONCONTROLLER_OSD == False and self.userlist.canControl(username) == False and self.userlist.currentUser.isController() == False:
|
||||
# Ignore SHOW_NONCONTROLLER_OSD setting if user is controller, because they need to know who is/isn't ready
|
||||
|
||||
@ -138,7 +138,8 @@ class SyncClientProtocol(JSONCommandProtocol):
|
||||
self._client.controlledRoomCreated(roomName, controlPassword)
|
||||
elif command == "ready":
|
||||
user, isReady = values["username"], values["isReady"]
|
||||
self._client.setReady(user, isReady)
|
||||
manuallyInitiated = values["manuallyInitiated"] if values.has_key("manuallyInitiated") else True
|
||||
self._client.setReady(user, isReady, manuallyInitiated)
|
||||
|
||||
def sendSet(self, setting):
|
||||
self.sendMessage({"Set": setting})
|
||||
@ -238,10 +239,11 @@ class SyncClientProtocol(JSONCommandProtocol):
|
||||
}
|
||||
})
|
||||
|
||||
def setReady(self, isReady):
|
||||
def setReady(self, isReady, manuallyInitiated=True):
|
||||
self.sendSet({
|
||||
"ready": {
|
||||
"isReady": isReady
|
||||
"isReady": isReady,
|
||||
"manuallyInitiated": manuallyInitiated
|
||||
}
|
||||
})
|
||||
|
||||
@ -354,7 +356,8 @@ class SyncServerProtocol(JSONCommandProtocol):
|
||||
room = set_[1]["room"] if set_[1].has_key("room") else None
|
||||
self._factory.authRoomController(self._watcher, password, room)
|
||||
elif command == "ready":
|
||||
self._factory.setReady(self._watcher, set_[1]['isReady'])
|
||||
manuallyInitiated = set_[1]['manuallyInitiated'] if set_[1].has_key("manuallyInitiated") else False
|
||||
self._factory.setReady(self._watcher, set_[1]['isReady'], manuallyInitiated=manuallyInitiated)
|
||||
|
||||
def sendSet(self, setting):
|
||||
self.sendMessage({"Set": setting})
|
||||
@ -377,11 +380,12 @@ class SyncServerProtocol(JSONCommandProtocol):
|
||||
})
|
||||
|
||||
|
||||
def sendSetReady(self, username, isReady):
|
||||
def sendSetReady(self, username, isReady, manuallyInitiated=True):
|
||||
self.sendSet({
|
||||
"ready": {
|
||||
"username": username,
|
||||
"isReady": isReady
|
||||
"isReady": isReady,
|
||||
"manuallyInitiated": manuallyInitiated
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@ -125,9 +125,9 @@ class SyncFactory(Factory):
|
||||
except ValueError:
|
||||
self._roomManager.broadcastRoom(watcher, lambda w: w.sendControlledRoomAuthStatus(False, watcher.getName(), room._name))
|
||||
|
||||
def setReady(self, watcher, isReady):
|
||||
def setReady(self, watcher, isReady, manuallyInitiated=True):
|
||||
watcher.setReady(isReady)
|
||||
self._roomManager.broadcastRoom(watcher, lambda w: w.sendSetReady(watcher.getName(), isReady))
|
||||
self._roomManager.broadcastRoom(watcher, lambda w: w.sendSetReady(watcher.getName(), isReady, manuallyInitiated))
|
||||
|
||||
class RoomManager(object):
|
||||
def __init__(self):
|
||||
@ -362,8 +362,8 @@ class Watcher(object):
|
||||
def sendControlledRoomAuthStatus(self, success, username, room):
|
||||
self._connector.sendControlledRoomAuthStatus(success, username, room)
|
||||
|
||||
def sendSetReady(self, username, isReady):
|
||||
self._connector.sendSetReady(username, isReady)
|
||||
def sendSetReady(self, username, isReady, manuallyInitiated=True):
|
||||
self._connector.sendSetReady(username, isReady, manuallyInitiated)
|
||||
|
||||
def __lt__(self, b):
|
||||
if self.getPosition() is None or self._file is None:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user