Merge 2afa2b39b3abc0ee8415359552b8db2b3e9ec376 into 661d3926dfec51c3356ed1c8295f3fa6572706cc
This commit is contained in:
commit
893e822472
@ -42,7 +42,7 @@ class SyncClientFactory(ClientFactory):
|
||||
|
||||
def clientConnectionFailed(self, connector, reason):
|
||||
if not self.reconnecting:
|
||||
self._client.ui.showErrorMessage(getMessage("en", "connection-failed-notification"))
|
||||
self._client.stop(getMessage("en", "connection-failed-notification"))
|
||||
else:
|
||||
self.clientConnectionLost(connector, reason)
|
||||
|
||||
@ -366,7 +366,8 @@ class SyncplayClient(object):
|
||||
reactor.connectTCP(host, port, self.protocolFactory)
|
||||
reactor.run()
|
||||
|
||||
def stop(self, promptForAction=False):
|
||||
|
||||
def stop(self, stopMessage=None):
|
||||
if not self._running:
|
||||
return
|
||||
self._running = False
|
||||
@ -376,10 +377,12 @@ class SyncplayClient(object):
|
||||
if self._player:
|
||||
self._player.drop()
|
||||
if self.ui:
|
||||
if(stopMessage):
|
||||
self.ui.showErrorMessage(stopMessage, True)
|
||||
self.ui.drop()
|
||||
reactor.callLater(0.1, reactor.stop)
|
||||
if(promptForAction):
|
||||
self.ui.promptFor(getMessage("en", "enter-to-exit-prompt"))
|
||||
if(stopMessage):
|
||||
self.ui.waitForUserAction(getMessage("en", "enter-to-exit-prompt"))
|
||||
|
||||
class _WarningManager(object):
|
||||
def __init__(self, player, userlist, ui):
|
||||
@ -596,8 +599,8 @@ class UiManager(object):
|
||||
def showErrorMessage(self, message, criticalerror=False):
|
||||
self.__ui.showErrorMessage(message, criticalerror)
|
||||
|
||||
def promptFor(self, prompt):
|
||||
return self.__ui.promptFor(prompt)
|
||||
def waitForUserAction(self, prompt):
|
||||
return self.__ui.waitForUserAction(prompt)
|
||||
|
||||
def userListChange(self):
|
||||
self.__ui.userListChange()
|
||||
|
||||
@ -311,7 +311,7 @@ class MPCHCAPIPlayer(BasePlayer):
|
||||
self.__client = client
|
||||
self._mpcApi = MpcHcApi()
|
||||
self._mpcApi.callbacks.onUpdateFilename = lambda _: self.__makePing()
|
||||
self._mpcApi.callbacks.onMpcClosed = lambda _: self.reactor.callFromThread(self.__client.stop, (False),)
|
||||
self._mpcApi.callbacks.onMpcClosed = lambda _: self.reactor.callFromThread(self.__client.stop,)
|
||||
self._mpcApi.callbacks.onFileStateChange = lambda _: self.__lockAsking()
|
||||
self._mpcApi.callbacks.onUpdatePlaystate = lambda _: self.__unlockAsking()
|
||||
self._mpcApi.callbacks.onGetCurrentPosition = lambda _: self.__onGetPosition()
|
||||
@ -356,8 +356,7 @@ class MPCHCAPIPlayer(BasePlayer):
|
||||
def __dropIfNotSufficientVersion(self):
|
||||
self._mpcApi.askForVersion()
|
||||
if(not self.__versionUpdate.wait(0.1) or not self._mpcApi.version):
|
||||
self.__mpcError(getMessage("en", "mpc-version-insufficient-error").format(constants.MPC_MIN_VER))
|
||||
self.reactor.callFromThread(self.__client.stop, (True),)
|
||||
self.reactor.callFromThread(self.__client.stop, getMessage("en", "mpc-version-insufficient-error").format(constants.MPC_MIN_VER),)
|
||||
|
||||
def __testMpcReady(self):
|
||||
if(not self.__preventAsking.wait(10)):
|
||||
@ -370,8 +369,7 @@ class MPCHCAPIPlayer(BasePlayer):
|
||||
self.__handleUpdatedFilename()
|
||||
self.askForStatus()
|
||||
except Exception, err:
|
||||
self.__client.ui.showErrorMessage(err.message)
|
||||
self.reactor.callFromThread(self.__client.stop)
|
||||
self.reactor.callFromThread(self.__client.stop, err.message,)
|
||||
|
||||
def initPlayer(self, filePath):
|
||||
self.__dropIfNotSufficientVersion()
|
||||
@ -456,10 +454,6 @@ class MPCHCAPIPlayer(BasePlayer):
|
||||
self.__setUpStateForNewlyOpenedFile()
|
||||
args = (self._mpcApi.filePlaying, self._mpcApi.fileDuration, self._mpcApi.filePath)
|
||||
self.reactor.callFromThread(self.__client.updateFile, *args)
|
||||
|
||||
def __mpcError(self, err=""):
|
||||
self.__client.ui.showErrorMessage(err)
|
||||
self.reactor.callFromThread(self.__client.stop)
|
||||
|
||||
def sendCustomCommand(self, cmd, val):
|
||||
self._mpcApi.sendRawCommand(cmd, val)
|
||||
|
||||
@ -21,9 +21,7 @@ class MplayerPlayer(BasePlayer):
|
||||
try:
|
||||
self._listener = self.__Listener(self, playerPath, filePath, args)
|
||||
except ValueError:
|
||||
self._client.ui.showMessage(getMessage("en", "mplayer-file-required-notification"))
|
||||
self._client.ui.showMessage(getMessage("en", "mplayer-file-required-notification/example"))
|
||||
self.reactor.callFromThread(self._client.stop, (True),)
|
||||
self.reactor.callFromThread(self._client.stop,getMessage("en", "mplayer-file-required-notification")+"\n"+getMessage("en", "mplayer-file-required-notification/example"),)
|
||||
return
|
||||
self._listener.setDaemon(True)
|
||||
self._listener.start()
|
||||
@ -181,9 +179,8 @@ class MplayerPlayer(BasePlayer):
|
||||
return path
|
||||
|
||||
def notMplayer2(self):
|
||||
print getMessage("en", "mplayer2-required")
|
||||
self._listener.sendLine('quit')
|
||||
self.reactor.callFromThread(self._client.stop, (True),)
|
||||
self.reactor.callFromThread(self._client.stop, getMessage("en", "mplayer2-required"),)
|
||||
|
||||
def _takeLocksDown(self):
|
||||
self._durationAsk.set()
|
||||
@ -195,7 +192,7 @@ class MplayerPlayer(BasePlayer):
|
||||
def drop(self):
|
||||
self._listener.sendLine('quit')
|
||||
self._takeLocksDown()
|
||||
self.reactor.callFromThread(self._client.stop, (False),)
|
||||
self.reactor.callFromThread(self._client.stop,)
|
||||
|
||||
class __Listener(threading.Thread):
|
||||
def __init__(self, playerController, playerPath, filePath, args):
|
||||
|
||||
@ -40,15 +40,13 @@ class VlcPlayer(BasePlayer):
|
||||
try:
|
||||
self._listener = self.__Listener(self, playerPath, filePath, args, self._vlcready, self._vlcclosed)
|
||||
except ValueError:
|
||||
self._client.ui.showErrorMessage(getMessage("en", "vlc-failed-connection"), True)
|
||||
self.reactor.callFromThread(self._client.stop, (True),)
|
||||
self.reactor.callFromThread(self._client.stop, getMessage("en", "vlc-failed-connection"),)
|
||||
return
|
||||
self._listener.setDaemon(True)
|
||||
self._listener.start()
|
||||
if(not self._vlcready.wait(constants.VLC_OPEN_MAX_WAIT_TIME)):
|
||||
self._vlcready.set()
|
||||
self._client.ui.showErrorMessage(getMessage("en", "vlc-failed-connection"), True)
|
||||
self.reactor.callFromThread(self._client.stop, (True),)
|
||||
self.reactor.callFromThread(self._client.stop, getMessage("en", "vlc-failed-connection"),)
|
||||
self.reactor.callFromThread(self._client.initPlayer, (self),)
|
||||
|
||||
def _fileUpdateClearEvents(self):
|
||||
@ -204,7 +202,7 @@ class VlcPlayer(BasePlayer):
|
||||
self._positionAsk.set()
|
||||
self._vlcready.set()
|
||||
self._pausedAsk.set()
|
||||
self.reactor.callFromThread(self._client.stop, (False),)
|
||||
self.reactor.callFromThread(self._client.stop,)
|
||||
|
||||
class __Listener(threading.Thread, asynchat.async_chat):
|
||||
def __init__(self, playerController, playerPath, filePath, args, vlcReady, vlcClosed):
|
||||
|
||||
@ -67,9 +67,9 @@ class SyncClientProtocol(JSONCommandProtocol):
|
||||
self._client.destroyProtocol()
|
||||
|
||||
def dropWithError(self, error):
|
||||
self._client.ui.showErrorMessage(error)
|
||||
self._client.protocolFactory.stopRetrying()
|
||||
self.drop()
|
||||
self._client.stop(error)
|
||||
|
||||
def _extractHelloArguments(self, hello):
|
||||
username = hello["username"] if hello.has_key("username") else None
|
||||
|
||||
@ -36,7 +36,7 @@ class ConsoleUI(threading.Thread):
|
||||
except EOFError:
|
||||
pass
|
||||
|
||||
def promptFor(self, prompt=">", message=""):
|
||||
def waitForUserAction(self, prompt=">", message=""):
|
||||
if message <> "":
|
||||
print(message)
|
||||
self.promptMode.clear()
|
||||
|
||||
@ -12,8 +12,7 @@ class MainWindow(QtGui.QMainWindow):
|
||||
self._syncplayClient = client
|
||||
self.roomInput.setText(self._syncplayClient.getRoom())
|
||||
|
||||
def promptFor(self, prompt=">", message=""):
|
||||
#TODO: Prompt user
|
||||
def waitForUserAction(self, prompt=">", message=""):
|
||||
return None
|
||||
|
||||
def showMessage(self, message, noTimestamp=False):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user