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:
|
if lastPausedDiff is not None and lastPausedDiff < constants.LAST_PAUSED_DIFF_THRESHOLD:
|
||||||
self.lastPausedOnLeaveTime = None
|
self.lastPausedOnLeaveTime = None
|
||||||
else:
|
else:
|
||||||
self.changeReadyState(not self.getPlayerPaused())
|
self.changeReadyState(not self.getPlayerPaused(), manuallyInitiated=False)
|
||||||
if self._lastGlobalUpdate:
|
if self._lastGlobalUpdate:
|
||||||
self._lastPlayerUpdate = time.time()
|
self._lastPlayerUpdate = time.time()
|
||||||
if (pauseChange or seeked) and self._protocol:
|
if (pauseChange or seeked) and self._protocol:
|
||||||
@ -410,10 +410,8 @@ class SyncplayClient(object):
|
|||||||
self.identifyAsController(storedRoomPassword)
|
self.identifyAsController(storedRoomPassword)
|
||||||
|
|
||||||
def connected(self):
|
def connected(self):
|
||||||
if self.userlist.currentUser.isReady() is not None:
|
readyState = self._config['readyAtStart'] if self.userlist.currentUser.isReady() is None else self.userlist.currentUser.isReady()
|
||||||
self._protocol.setReady(self.userlist.currentUser.isReady())
|
self._protocol.setReady(readyState, manuallyInitiated=False)
|
||||||
else:
|
|
||||||
self._protocol.setReady(self._config['readyAtStart'])
|
|
||||||
self.reIdentifyAsController()
|
self.reIdentifyAsController()
|
||||||
|
|
||||||
def getRoom(self):
|
def getRoom(self):
|
||||||
@ -483,22 +481,22 @@ class SyncplayClient(object):
|
|||||||
return requireMinVersionDecorator
|
return requireMinVersionDecorator
|
||||||
|
|
||||||
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
|
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
|
||||||
def toggleReady(self):
|
def toggleReady(self, manuallyInitiated=True):
|
||||||
self._protocol.setReady(not self.userlist.currentUser.isReady())
|
self._protocol.setReady(not self.userlist.currentUser.isReady(), manuallyInitiated)
|
||||||
|
|
||||||
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
|
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
|
||||||
def changeReadyState(self, newState):
|
def changeReadyState(self, newState, manuallyInitiated=True):
|
||||||
oldState = self.userlist.currentUser.isReady()
|
oldState = self.userlist.currentUser.isReady()
|
||||||
if newState != oldState:
|
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)
|
oldReadyState = self.userlist.isReady(username)
|
||||||
if oldReadyState is None:
|
if oldReadyState is None:
|
||||||
oldReadyState = False
|
oldReadyState = False
|
||||||
self.userlist.setReady(username, isReady)
|
self.userlist.setReady(username, isReady)
|
||||||
self.ui.userListChange()
|
self.ui.userListChange()
|
||||||
if oldReadyState != isReady:
|
if manuallyInitiated and oldReadyState != isReady:
|
||||||
showOnOSD = constants.SHOW_OSD_WARNINGS
|
showOnOSD = constants.SHOW_OSD_WARNINGS
|
||||||
if constants.SHOW_NONCONTROLLER_OSD == False and self.userlist.canControl(username) == False and self.userlist.currentUser.isController() == False:
|
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
|
# 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)
|
self._client.controlledRoomCreated(roomName, controlPassword)
|
||||||
elif command == "ready":
|
elif command == "ready":
|
||||||
user, isReady = values["username"], values["isReady"]
|
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):
|
def sendSet(self, setting):
|
||||||
self.sendMessage({"Set": setting})
|
self.sendMessage({"Set": setting})
|
||||||
@ -238,10 +239,11 @@ class SyncClientProtocol(JSONCommandProtocol):
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
def setReady(self, isReady):
|
def setReady(self, isReady, manuallyInitiated=True):
|
||||||
self.sendSet({
|
self.sendSet({
|
||||||
"ready": {
|
"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
|
room = set_[1]["room"] if set_[1].has_key("room") else None
|
||||||
self._factory.authRoomController(self._watcher, password, room)
|
self._factory.authRoomController(self._watcher, password, room)
|
||||||
elif command == "ready":
|
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):
|
def sendSet(self, setting):
|
||||||
self.sendMessage({"Set": 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({
|
self.sendSet({
|
||||||
"ready": {
|
"ready": {
|
||||||
"username": username,
|
"username": username,
|
||||||
"isReady": isReady
|
"isReady": isReady,
|
||||||
|
"manuallyInitiated": manuallyInitiated
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -125,9 +125,9 @@ class SyncFactory(Factory):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
self._roomManager.broadcastRoom(watcher, lambda w: w.sendControlledRoomAuthStatus(False, watcher.getName(), room._name))
|
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)
|
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):
|
class RoomManager(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -362,8 +362,8 @@ class Watcher(object):
|
|||||||
def sendControlledRoomAuthStatus(self, success, username, room):
|
def sendControlledRoomAuthStatus(self, success, username, room):
|
||||||
self._connector.sendControlledRoomAuthStatus(success, username, room)
|
self._connector.sendControlledRoomAuthStatus(success, username, room)
|
||||||
|
|
||||||
def sendSetReady(self, username, isReady):
|
def sendSetReady(self, username, isReady, manuallyInitiated=True):
|
||||||
self._connector.sendSetReady(username, isReady)
|
self._connector.sendSetReady(username, isReady, manuallyInitiated)
|
||||||
|
|
||||||
def __lt__(self, b):
|
def __lt__(self, b):
|
||||||
if self.getPosition() is None or self._file is None:
|
if self.getPosition() is None or self._file is None:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user