seek to start when bouncing at SOF
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index f40feb3f82f72f155a2a5f11c9d764daca8b9ee9..13d61ae05f677fe11d27e2ed5f2fdf779ad69144 100644 (file)
@@ -95,11 +95,14 @@ class InfoBarShowHide:
 
        def lockShow(self):
                self.__locked = self.__locked + 1
-               self.show()
+               if self.execing:
+                       self.show()
+                       self.hideTimer.stop()
        
        def unlockShow(self):
                self.__locked = self.__locked - 1
-               self.startHideTimer()
+               if self.execing:
+                       self.startHideTimer()
 
 #      def startShow(self):
 #              self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
@@ -456,7 +459,7 @@ class InfoBarSeek:
        """handles actions like seeking, pause"""
        
        # ispause, isff, issm
-       SEEK_STATE_PLAY = (0, 0, 0, "")
+       SEEK_STATE_PLAY = (0, 0, 0, ">")
        SEEK_STATE_PAUSE = (1, 0, 0, "||")
        SEEK_STATE_FF_2X = (0, 2, 0, ">> 2x")
        SEEK_STATE_FF_4X = (0, 4, 0, ">> 4x")
@@ -701,6 +704,14 @@ class InfoBarSeek:
        
        def __evSOF(self):
                self.setSeekState(self.SEEK_STATE_PLAY)
+               service = self.session.nav.getCurrentService()
+               if service is None:
+                       return
+               seekable = service.seek()
+               if seekable is None:
+                       return
+               seekable.seekRelative(0, 0)
+               
 
 from Screens.PVRState import PVRState
 
@@ -708,12 +719,17 @@ class InfoBarPVRState:
        def __init__(self):
                self.onPlayStateChanged.append(self.__playStateChanged)
                self.pvrStateDialog = self.session.instantiateDialog(PVRState)
-               self.onShow.append(self.pvrStateDialog.show)
+               self.onShow.append(self.__mayShow)
                self.onHide.append(self.pvrStateDialog.hide)
        
+       def __mayShow(self):
+               if self.seekstate != self.SEEK_STATE_PLAY:
+                       self.pvrStateDialog.show()
+
        def __playStateChanged(self, state):
                playstateString = state[3]
                self.pvrStateDialog["state"].setText(playstateString)
+               self.__mayShow()
 
 class InfoBarShowMovies: