diff --git a/script.xbmc.unpausejumpback/addon.xml b/script.xbmc.unpausejumpback/addon.xml index 380e5d2..cc4a015 100644 --- a/script.xbmc.unpausejumpback/addon.xml +++ b/script.xbmc.unpausejumpback/addon.xml @@ -1,5 +1,5 @@ - + @@ -26,5 +26,3 @@ GNU GENERAL PUBLIC LICENSE. Version 2, June 1991 - - diff --git a/script.xbmc.unpausejumpback/changelog.txt b/script.xbmc.unpausejumpback/changelog.txt index 6f0898d..ad3ace0 100644 --- a/script.xbmc.unpausejumpback/changelog.txt +++ b/script.xbmc.unpausejumpback/changelog.txt @@ -1,4 +1,7 @@ -2.3.3 +2.3.5 +- revert change introduced in 2.3.2 + +2.3.4 - fixed format of authors tag in addon.xml - removed the XBMC from the name diff --git a/script.xbmc.unpausejumpback/default.py b/script.xbmc.unpausejumpback/default.py index 09aafeb..6f0e94a 100644 --- a/script.xbmc.unpausejumpback/default.py +++ b/script.xbmc.unpausejumpback/default.py @@ -18,6 +18,7 @@ import xbmcaddon import xbmcgui import os +from time import time __addon__ = xbmcaddon.Addon() __cwd__ = __addon__.getAddonInfo('path') @@ -45,8 +46,10 @@ global g_jumpBackSecsAfterRwdX32 global g_jumpBackSecsAfterResume global g_lastPlaybackSpeed +global g_pausedTime global g_waitForJumpback g_jumpBackSecsAfterFwdPause = 0 +g_pausedTime = 0 g_waitForJumpback = 0 g_lastPlaybackSpeed = 1 @@ -133,17 +136,9 @@ def __init__( self, *args, **kwargs ): log('MyPlayer - init') def onPlayBackPaused( self ): - global g_jumpBackSecsAfterFwdPause - global g_waitForJumpback - - if self.isPlayingVideo(): - _filename = self.getPlayingFile() - if isExcluded(_filename): - log("Playback paused - ignoring because '%s' is in exclusion settings." % _filename) - elif g_jumpBackSecsAfterFwdPause > 0 and self.getTime() > g_jumpBackSecsAfterFwdPause: - percentage = (self.getTime() - g_jumpBackSecsAfterFwdPause) / self.getTotalTime() * 100 - log('Playback paused, setting up alarm clock - getTime()=%f getTotalTime()=%f g_jumpBackSecsAfterFwdPause=%d percentage=%f' % (self.getTime(), self.getTotalTime(), g_jumpBackSecsAfterFwdPause, percentage)) - xbmc.executebuiltin('AlarmClock(JumpbackPaused, PlayerControl(SeekPercentage(%f)), 0:%d, silent)' % (percentage, g_waitForJumpback)) + global g_pausedTime + g_pausedTime = time() + log('Paused. Time: %d' % g_pausedTime) def onPlayBackSpeedChanged( self, speed ): global g_lastPlaybackSpeed @@ -186,12 +181,26 @@ def onPlayBackSpeedChanged( self, speed ): g_lastPlaybackSpeed = speed def onPlayBackResumed( self ): - log('Cancelling alarm - playback either resumed or stopped by the user') - xbmc.executebuiltin('CancelAlarm(JumpbackPaused, true)') - - # We don't care if playback was resumed or stopped, we just want to know when we're no longer paused - onPlayBackStopped = onPlayBackResumed - + global g_jumpBackSecsAfterFwdPause + global g_pausedTime + global g_waitForJumpback + if g_pausedTime > 0: + log('Resuming. Was paused for %d seconds.' % (time() - g_pausedTime)) + + # check for exclusion + _filename = self.getPlayingFile() + if isExcluded(_filename): + log("Ignored because '%s' is in exclusion settings." % _filename) + return + + else: + #handle humpback after pause + if g_jumpBackSecsAfterFwdPause != 0 and xbmc.Player().isPlayingVideo() and xbmc.Player().getTime() > g_jumpBackSecsAfterFwdPause and g_pausedTime > 0 and (time() - g_pausedTime) > g_waitForJumpback: + resumeTime = xbmc.Player().getTime() - g_jumpBackSecsAfterFwdPause + xbmc.Player().seekTime(resumeTime) + log( 'Resumed with %ds jumpback' % g_jumpBackSecsAfterFwdPause ) + + g_pausedTime = 0 try: class MyMonitor( xbmc.Monitor ): def __init__( self, *args, **kwargs ):