The branch, frodo has been updated
       via  1be04e03fba7c7e12f085b9522b7bfccecc5f606 (commit)
      from  804807d5e9db2a2190acfa8fc4349b55d26124f2 (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=1be04e03fba7c7e12f085b9522b7bfccecc5f606

commit 1be04e03fba7c7e12f085b9522b7bfccecc5f606
Author: Martijn Kaijser <[email protected]>
Date:   Sun Apr 7 20:37:09 2013 +0200

    [script.xbmc.unpausejumpback] 2.2.0

diff --git a/script.xbmc.unpausejumpback/addon.xml 
b/script.xbmc.unpausejumpback/addon.xml
index ec20b4d..fbf3e8b 100644
--- a/script.xbmc.unpausejumpback/addon.xml
+++ b/script.xbmc.unpausejumpback/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.xbmc.unpausejumpback" name="XBMC Unpause Jumpback" 
version="2.1.0" provider-name="Memphiz, Lucleonhart">
+<addon id="script.xbmc.unpausejumpback" name="XBMC Unpause Jumpback" 
version="2.2.0" provider-name="Memphiz|Lucleonhart|schumi2004">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
   </requires>
@@ -7,10 +7,15 @@
   <extension point="xbmc.addon.metadata">
     <summary lang="en">XBMC jumpback on unpausing videos</summary>
     <description lang="en">
-        This addon will jumpback the given number of seconds whenever a movie 
is unpause - for finding back into the story.
+        This addon will jumpback the given number of seconds whenever a movie 
is unpaused - for finding back into the story.
         You can set the amount of seconds to jump back and the minimum seconds 
the pause must take to jump back.
+        It also allows to jump back or forward after rwd or fwd a specified 
amount of seconds.
     </description>
     <platform>all</platform>
+    <website></website>
+    <source>https://github.com/Memphiz/script.xbmc.unpausejumpback/</source>
+    <forum>http://forum.xbmc.org/showthread.php?tid=134837</forum>
+    <email></email>
   </extension>
 </addon>
 
diff --git a/script.xbmc.unpausejumpback/changelog.txt 
b/script.xbmc.unpausejumpback/changelog.txt
index e08fba3..ced4a52 100644
--- a/script.xbmc.unpausejumpback/changelog.txt
+++ b/script.xbmc.unpausejumpback/changelog.txt
@@ -1,5 +1,9 @@
+2.2.0
+- add exclude settings
+- add jumpback/forward after fwd or rwd based on the fwd/rwd speed (can be 
adjusted for each speed separately for fwd and rwd).
+
 2.1.0
 - add setting for specifying the minimum pause time before jumping back
 
 2.0.0
-- initial commit for frodo
\ No newline at end of file
+- initial commit for frodo
diff --git a/script.xbmc.unpausejumpback/default.py 
b/script.xbmc.unpausejumpback/default.py
index 426a539..b834094 100644
--- a/script.xbmc.unpausejumpback/default.py
+++ b/script.xbmc.unpausejumpback/default.py
@@ -34,24 +34,101 @@ __resource__ = xbmc.translatePath( os.path.join( __cwd__, 
'resources', 'lib' ) )
 
 sys.path.append (__resource__)
 
-global g_jumpBackSecs
+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_jumpBackSecs = 0
+g_jumpBackSecsAfterFwdPause = 0
 g_pausedTime = 0
 g_waitForJumpback = 0
+g_lastPlaybackSpeed = 1
 
 def log(msg):
   xbmc.log("### [%s] - %s" % (__scriptname__,msg,),level=xbmc.LOGDEBUG )
 
 log( "[%s] - Version: %s Started" % (__scriptname__,__version__))
 
+# helper function to get string type from settings
+def getSetting(setting):
+       return __addon__.getSetting(setting).strip()
+
+# helper function to get bool type from settings
+def getSettingAsBool(setting):
+       return getSetting(setting).lower() == "true"
+
+# check exclusion settings for filename passed as argument
+def isExcluded(fullpath):
+
+       if not fullpath:
+               return True
+
+       log("isExcluded(): Checking exclusion settings for '%s'." % fullpath)
+
+       if (fullpath.find("pvr://") > -1) and getSettingAsBool('ExcludeLiveTV'):
+               log("isExcluded(): Video is playing via Live TV, which is 
currently set as excluded location.")
+               return True
+
+       if (fullpath.find("http://";) > -1) and getSettingAsBool('ExcludeHTTP'):
+               log("isExcluded(): Video is playing via HTTP source, which is 
currently set as excluded location.")
+               return True
+
+       ExcludePath = getSetting('ExcludePath')
+       if ExcludePath and getSettingAsBool('ExcludePathOption'):
+               if (fullpath.find(ExcludePath) > -1):
+                       log("isExcluded(): Video is playing from '%s', which is 
currently set as excluded path 1." % ExcludePath)
+                       return True
+
+       ExcludePath2 = getSetting('ExcludePath2')
+       if ExcludePath2 and getSettingAsBool('ExcludePathOption2'):
+               if (fullpath.find(ExcludePath2) > -1):
+                       log("isExcluded(): Video is playing from '%s', which is 
currently set as excluded path 2." % ExcludePath2)
+                       return True
+
+       ExcludePath3 = getSetting('ExcludePath3')
+       if ExcludePath3 and getSettingAsBool('ExcludePathOption3'):
+               if (fullpath.find(ExcludePath3) > -1):
+                       log("isExcluded(): Video is playing from '%s', which is 
currently set as excluded path 3." % ExcludePath3)
+                       return True
+
+       return False
+
 def loadSettings():
-  global g_jumpBackSecs
+  global g_jumpBackSecsAfterFwdPause
   global g_waitForJumpback
-  g_jumpBackSecs = int(float(__addon__.getSetting("jumpbacksecs")))
+  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_jumpBackSecs, 
g_waitForJumpback))
+  log('Settings loaded! JumpBackSecs: %d, WaitSecs: %d' % 
(g_jumpBackSecsAfterFwdPause, g_waitForJumpback))
 
 class MyPlayer( xbmc.Player ):
   def __init__( self, *args, **kwargs ):
@@ -62,18 +139,68 @@ class MyPlayer( xbmc.Player ):
     global g_pausedTime
     g_pausedTime = time()
     log('Paused. Time: %d' % g_pausedTime)
-  
+
+  def onPlayBackSpeedChanged( self, speed ):
+    global g_lastPlaybackSpeed
+
+    if speed == 1: #normal playback speed reached
+      direction = 1
+      absLastSpeed = abs(g_lastPlaybackSpeed)
+      if g_lastPlaybackSpeed < 0:
+        log('Resuming. Was rewinded with speed X%d.' % 
(abs(g_lastPlaybackSpeed)))
+      if g_lastPlaybackSpeed > 1:
+        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 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_jumpBackSecs
+    global g_jumpBackSecsAfterFwdPause
     global g_pausedTime
     global g_waitForJumpback
-    log('Resuming. Was paused for %d seconds.' % (time() - g_pausedTime))
-    if g_jumpBackSecs != 0 and xbmc.Player().isPlayingVideo() and 
xbmc.Player().getTime() > g_jumpBackSecs and g_pausedTime > 0 and (time() - 
g_pausedTime) > g_waitForJumpback:
-      resumeTime = xbmc.Player().getTime() - g_jumpBackSecs
-      xbmc.Player().seekTime(resumeTime)
-      log( 'Resumed with %ds jumpback' % g_jumpBackSecs )
+    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
+      g_pausedTime = 0
 try:
   class MyMonitor( xbmc.Monitor ):
     def __init__( self, *args, **kwargs ):
@@ -92,3 +219,4 @@ loadSettings()
 
 while not xbmc.abortRequested:
   xbmc.sleep(100)
+
diff --git a/script.xbmc.unpausejumpback/resources/settings.xml 
b/script.xbmc.unpausejumpback/resources/settings.xml
index 415f843..0bc85a8 100644
--- a/script.xbmc.unpausejumpback/resources/settings.xml
+++ b/script.xbmc.unpausejumpback/resources/settings.xml
@@ -1,7 +1,31 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <settings>
-  <category label="Jump back on unpause">
-    <setting id="jumpbacksecs" type="slider" label="Jump seconds" default="0" 
range="0,60" />
-    <setting id="waitforjumpback" type="slider" label="Minimum pause before 
jumpback" default="10" range="0,600" />
+  <category label="32000">
+    <setting id="jumpbacksecs" type="slider" label="32001" default="0" 
range="0,60" />
+    <setting id="waitforjumpback" type="slider" label="32002" default="10" 
range="0,600" />
+  </category>
+  <category label="32010">
+    <setting id="jumpbacksecsfwdx2" type="slider" label="32011" default="2" 
range="0,60" />
+    <setting id="jumpbacksecsfwdx4" type="slider" label="32012" default="4" 
range="0,60" />
+    <setting id="jumpbacksecsfwdx8" type="slider" label="32013" default="8" 
range="0,60" />
+    <setting id="jumpbacksecsfwdx16" type="slider" label="32014" default="16" 
range="0,60" />
+    <setting id="jumpbacksecsfwdx32" type="slider" label="32015" default="32" 
range="0,60" />
+  </category>
+  <category label="32020">
+    <setting id="jumpbacksecsrwdx2" type="slider" label="32021" default="2" 
range="0,60" />
+    <setting id="jumpbacksecsrwdx4" type="slider" label="32022" default="4" 
range="0,60" />
+    <setting id="jumpbacksecsrwdx8" type="slider" label="32023" default="8" 
range="0,60" />
+    <setting id="jumpbacksecsrwdx16" type="slider" label="32024" default="16" 
range="0,60" />
+    <setting id="jumpbacksecsrwdx32" type="slider" label="32025" default="32" 
range="0,60" />
+  </category>
+  <category label="32030">
+    <setting id="ExcludeLiveTV" type="bool" label="32031" default="false"/>
+    <setting id="ExcludeHTTP" type="bool" label="32032" default="false"/>    
+    <setting id="ExcludePathOption" type="bool" label="32033" default="false" 
/>
+    <setting id="ExcludePath" type="folder" source="video" label="32034" 
default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
+    <setting id="ExcludePathOption2" type="bool" label="32033" default="false" 
visible= "eq(-2,true)" enable="eq(-2,true)" />
+    <setting id="ExcludePath2" type="folder" source="video" label="32034" 
default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
+    <setting id="ExcludePathOption3" type="bool" label="32033" default="false" 
visible= "eq(-2,true)" enable="eq(-2,true)" />
+    <setting id="ExcludePath3" type="folder" source="video" label="32034" 
default="" visible= "eq(-1,true)" enable="eq(-1,true)" />
   </category>
 </settings>

-----------------------------------------------------------------------

Summary of changes:
 script.xbmc.unpausejumpback/addon.xml              |    9 +-
 script.xbmc.unpausejumpback/changelog.txt          |    6 +-
 script.xbmc.unpausejumpback/default.py             |  154 ++++++++++++++++++--
 .../resources/language/English/strings.xml         |   23 +++
 script.xbmc.unpausejumpback/resources/settings.xml |   30 ++++-
 5 files changed, 203 insertions(+), 19 deletions(-)
 create mode 100644 
script.xbmc.unpausejumpback/resources/language/English/strings.xml


hooks/post-receive
-- 
Scripts

------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to