Unbreak shift+drag mpv reset

This commit is contained in:
Et0h 2014-09-14 22:23:42 +01:00
parent d59e183662
commit 9ca2c54a69
2 changed files with 9 additions and 2 deletions

View File

@ -25,6 +25,7 @@ class MplayerPlayer(BasePlayer):
self.quitReason = None
self.lastLoadedTime = None
self.fileLoaded = False
self._resetPosition = False
try:
self._listener = self.__Listener(self, playerPath, filePath, args)
except ValueError:

View File

@ -19,7 +19,9 @@ class MpvPlayer(MplayerPlayer):
self._listener.sendLine('cycle pause')
def _storePosition(self, value):
if self._fileIsLoaded():
if self._resetPosition:
self._position = 0
elif self._fileIsLoaded():
self._position = value
else:
self._position = self._client.getGlobalPosition()
@ -63,13 +65,17 @@ class MpvPlayer(MplayerPlayer):
self._positionAsk.set()
elif "Playing:" in line:
if self._position < 1:
self._resetPosition = True
self._clearFileLoaded()
def _onMPVFileUpdate(self):
self.fileLoaded = True
self.lastLoadedTime = time.time()
self.reactor.callFromThread(self._client.updateFile, self._filename, self._duration, self._filepath)
self.reactor.callFromThread(self.setPosition, self._client.getGlobalPosition())
if not self._resetPosition:
self.reactor.callFromThread(self.setPosition, self._client.getGlobalPosition())
self._resetPosition = False
if self._paused != self._client.getGlobalPaused():
self.reactor.callFromThread(self._client.getGlobalPaused)