Skip to content

Commit

Permalink
[add] - split settings for jump back/forward after rwd/fwd to make th…
Browse files Browse the repository at this point in the history
…em seperated for fwd and rwd
  • Loading branch information
Memphiz committed Apr 7, 2013
1 parent b74f4e5 commit 43b0e70
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 54 deletions.
97 changes: 62 additions & 35 deletions script.xbmc.unpausejumpback/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,21 @@

sys.path.append (__resource__)

global g_jumpBackSecsAfterPauseAfterPause
global g_jumpBackSecsAfterX2
global g_jumpBackSecsAfterX4
global g_jumpBackSecsAfterX8
global g_jumpBackSecsAfterX16
global g_jumpBackSecsAfterX32
global g_jumpBackSecsAfterFwdPauseAfterPause
global g_jumpBackSecsAfterFwdX2
global g_jumpBackSecsAfterFwdX4
global g_jumpBackSecsAfterFwdX8
global g_jumpBackSecsAfterFwdX16
global g_jumpBackSecsAfterFwdX32
global g_jumpBackSecsAfterRwdX2
global g_jumpBackSecsAfterRwdX4
global g_jumpBackSecsAfterRwdX8
global g_jumpBackSecsAfterRwdX16
global g_jumpBackSecsAfterRwdX32
global g_lastPlaybackSpeed
global g_pausedTime
global g_waitForJumpback
g_jumpBackSecsAfterPause = 0
g_jumpBackSecsAfterFwdPause = 0
g_pausedTime = 0
g_waitForJumpback = 0
g_lastPlaybackSpeed = 1
Expand Down Expand Up @@ -98,22 +103,32 @@ def isExcluded(fullpath):
return False

def loadSettings():
global g_jumpBackSecsAfterPause
global g_jumpBackSecsAfterFwdPause
global g_waitForJumpback
global g_jumpBackSecsAfterX2
global g_jumpBackSecsAfterX4
global g_jumpBackSecsAfterX8
global g_jumpBackSecsAfterX16
global g_jumpBackSecsAfterX32

g_jumpBackSecsAfterPause = int(float(__addon__.getSetting("jumpbacksecs")))
g_jumpBackSecsAfterX2 = int(float(__addon__.getSetting("jumpbacksecsx2")))
g_jumpBackSecsAfterX4 = int(float(__addon__.getSetting("jumpbacksecsx4")))
g_jumpBackSecsAfterX8 = int(float(__addon__.getSetting("jumpbacksecsx8")))
g_jumpBackSecsAfterX16 = int(float(__addon__.getSetting("jumpbacksecsx16")))
g_jumpBackSecsAfterX32 = int(float(__addon__.getSetting("jumpbacksecsx32")))
global g_jumpBackSecsAfterFwdX2
global g_jumpBackSecsAfterFwdX4
global g_jumpBackSecsAfterFwdX8
global g_jumpBackSecsAfterFwdX16
global g_jumpBackSecsAfterFwdX32
global g_jumpBackSecsAfterRwdX2
global g_jumpBackSecsAfterRwdX4
global g_jumpBackSecsAfterRwdX8
global g_jumpBackSecsAfterRwdX16
global g_jumpBackSecsAfterRwdX32

g_jumpBackSecsAfterFwdPause = int(float(__addon__.getSetting("jumpbacksecs")))
g_jumpBackSecsAfterFwdX2 = int(float(__addon__.getSetting("jumpbacksecsfwdx2")))
g_jumpBackSecsAfterFwdX4 = int(float(__addon__.getSetting("jumpbacksecsfwdx4")))
g_jumpBackSecsAfterFwdX8 = int(float(__addon__.getSetting("jumpbacksecsfwdx8")))
g_jumpBackSecsAfterFwdX16 = int(float(__addon__.getSetting("jumpbacksecsfwdx16")))
g_jumpBackSecsAfterFwdX32 = int(float(__addon__.getSetting("jumpbacksecsfwdx32")))
g_jumpBackSecsAfterRwdX2 = int(float(__addon__.getSetting("jumpbacksecsrwdx2")))
g_jumpBackSecsAfterRwdX4 = int(float(__addon__.getSetting("jumpbacksecsrwdx4")))
g_jumpBackSecsAfterRwdX8 = int(float(__addon__.getSetting("jumpbacksecsrwdx8")))
g_jumpBackSecsAfterRwdX16 = int(float(__addon__.getSetting("jumpbacksecsrwdx16")))
g_jumpBackSecsAfterRwdX32 = int(float(__addon__.getSetting("jumpbacksecsrwdx32")))
g_waitForJumpback = int(float(__addon__.getSetting("waitforjumpback")))
log('Settings loaded! JumpBackSecs: %d, WaitSecs: %d' % (g_jumpBackSecsAfterPause, g_waitForJumpback))
log('Settings loaded! JumpBackSecs: %d, WaitSecs: %d' % (g_jumpBackSecsAfterFwdPause, g_waitForJumpback))

class MyPlayer( xbmc.Player ):
def __init__( self, *args, **kwargs ):
Expand All @@ -137,24 +152,36 @@ def onPlayBackSpeedChanged( self, speed ):
direction = -1
log('Resuming. Was forwarded with speed X%d.' % (abs(g_lastPlaybackSpeed)))
#handle jumpafter fwd/rwd (humpback after fwd, jump forward after red)
if absLastSpeed == 2:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterX2 * direction
elif absLastSpeed == 4:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterX4 * direction
elif absLastSpeed == 8:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterX8 * direction
elif absLastSpeed == 16:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterX16 * direction
elif absLastSpeed == 32:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterX32 * direction
if direction == -1: #fwd
if absLastSpeed == 2:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterFwdX2 * direction
elif absLastSpeed == 4:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterFwdX4 * direction
elif absLastSpeed == 8:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterFwdX8 * direction
elif absLastSpeed == 16:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterFwdX16 * direction
elif absLastSpeed == 32:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterFwdX32 * direction
else: #rwd
if absLastSpeed == 2:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterRwdX2 * direction
elif absLastSpeed == 4:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterRwdX4 * direction
elif absLastSpeed == 8:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterRwdX8 * direction
elif absLastSpeed == 16:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterRwdX16 * direction
elif absLastSpeed == 32:
resumeTime = xbmc.Player().getTime() + g_jumpBackSecsAfterRwdX32 * direction

if absLastSpeed != 1: #we really fwd'ed or rwd'ed
xbmc.Player().seekTime(resumeTime) # do the jump

g_lastPlaybackSpeed = speed

def onPlayBackResumed( self ):
global g_jumpBackSecsAfterPause
global g_jumpBackSecsAfterFwdPause
global g_pausedTime
global g_waitForJumpback
if g_pausedTime > 0:
Expand All @@ -168,10 +195,10 @@ def onPlayBackResumed( self ):

else:
#handle humpback after pause
if g_jumpBackSecsAfterPause != 0 and xbmc.Player().isPlayingVideo() and xbmc.Player().getTime() > g_jumpBackSecsAfterPause and g_pausedTime > 0 and (time() - g_pausedTime) > g_waitForJumpback:
resumeTime = xbmc.Player().getTime() - g_jumpBackSecsAfterPause
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_jumpBackSecsAfterPause )
log( 'Resumed with %ds jumpback' % g_jumpBackSecsAfterFwdPause )

g_pausedTime = 0
try:
Expand Down
18 changes: 12 additions & 6 deletions script.xbmc.unpausejumpback/resources/language/English/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,21 @@
<string id="10000">Jump back on unpause</string>
<string id="10001">Jump seconds</string>
<string id="10002">Minimum pause before jumpback</string>
<string id="20000">Jump forward/back after rwd/fwd</string>
<string id="20000">Jump back after fwd</string>
<string id="20001">Jump after x2</string>
<string id="20002">Jump after x4</string>
<string id="20003">Jump after x8</string>
<string id="20004">Jump after x16</string>
<string id="20005">Jump after x32</string>
<string id="30000">Exclude</string>
<string id="30001">Exclude Live TV</string>
<string id="30002">Exclude HTTP sources</string>
<string id="30003">Exclude path</string>
<string id="30004">Folder's path (and subfolders)</string>
<string id="30000">Jump forward after rwd</string>
<string id="30001">Jump after x2</string>
<string id="30002">Jump after x4</string>
<string id="30003">Jump after x8</string>
<string id="30004">Jump after x16</string>
<string id="30005">Jump after x32</string>
<string id="40000">Exclude</string>
<string id="40001">Exclude Live TV</string>
<string id="40002">Exclude HTTP sources</string>
<string id="40003">Exclude path</string>
<string id="40004">Folder's path (and subfolders)</string>
</strings>
33 changes: 20 additions & 13 deletions script.xbmc.unpausejumpback/resources/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,27 @@
<setting id="waitforjumpback" type="slider" label="10002" default="10" range="0,600" />
</category>
<category label="20000">
<setting id="jumpbacksecsx2" type="slider" label="20001" default="1" range="0,60" />
<setting id="jumpbacksecsx4" type="slider" label="20002" default="2" range="0,60" />
<setting id="jumpbacksecsx8" type="slider" label="20003" default="4" range="0,60" />
<setting id="jumpbacksecsx16" type="slider" label="20004" default="8" range="0,60" />
<setting id="jumpbacksecsx32" type="slider" label="20005" default="16" range="0,60" />
<setting id="jumpbacksecsfwdx2" type="slider" label="20001" default="2" range="0,60" />
<setting id="jumpbacksecsfwdx4" type="slider" label="20002" default="4" range="0,60" />
<setting id="jumpbacksecsfwdx8" type="slider" label="20003" default="8" range="0,60" />
<setting id="jumpbacksecsfwdx16" type="slider" label="20004" default="16" range="0,60" />
<setting id="jumpbacksecsfwdx32" type="slider" label="20005" default="32" range="0,60" />
</category>
<category label="30000">
<setting id="ExcludeLiveTV" type="bool" label="30001" default="false"/>
<setting id="ExcludeHTTP" type="bool" label="30002" default="false"/>
<setting id="ExcludePathOption" type="bool" label="30003" default="false" />
<setting id="ExcludePath" type="folder" source="video" label="30004" default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
<setting id="ExcludePathOption2" type="bool" label="30003" default="false" visible= "eq(-2,true)" enable="eq(-2,true)" />
<setting id="ExcludePath2" type="folder" source="video" label="30004" default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
<setting id="ExcludePathOption3" type="bool" label="30003" default="false" visible= "eq(-2,true)" enable="eq(-2,true)" />
<setting id="ExcludePath3" type="folder" source="video" label="30004" default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
<setting id="jumpbacksecsrwdx2" type="slider" label="30001" default="2" range="0,60" />
<setting id="jumpbacksecsrwdx4" type="slider" label="30002" default="4" range="0,60" />
<setting id="jumpbacksecsrwdx8" type="slider" label="30003" default="8" range="0,60" />
<setting id="jumpbacksecsrwdx16" type="slider" label="30004" default="16" range="0,60" />
<setting id="jumpbacksecsrwdx32" type="slider" label="30005" default="32" range="0,60" />
</category>
<category label="40000">
<setting id="ExcludeLiveTV" type="bool" label="40001" default="false"/>
<setting id="ExcludeHTTP" type="bool" label="40002" default="false"/>
<setting id="ExcludePathOption" type="bool" label="40003" default="false" />
<setting id="ExcludePath" type="folder" source="video" label="40004" default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
<setting id="ExcludePathOption2" type="bool" label="40003" default="false" visible= "eq(-2,true)" enable="eq(-2,true)" />
<setting id="ExcludePath2" type="folder" source="video" label="40004" default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
<setting id="ExcludePathOption3" type="bool" label="40003" default="false" visible= "eq(-2,true)" enable="eq(-2,true)" />
<setting id="ExcludePath3" type="folder" source="video" label="40004" default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
</category>
</settings>

0 comments on commit 43b0e70

Please sign in to comment.