skip 30,90,270 seconds with 1/3, 4/6, 7/9
authorFelix Domke <tmbinc@elitedvb.net>
Mon, 27 Feb 2006 23:32:32 +0000 (23:32 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Mon, 27 Feb 2006 23:32:32 +0000 (23:32 +0000)
data/keymap.xml
lib/python/Screens/InfoBarGenerics.py

index f77c81c..3641df9 100644 (file)
                
                <key id="KEY_LEFT" mapto="seekBack" flags="m" />
                <key id="KEY_RIGHT" mapto="seekFwd" flags="m" />
+               
+               <key id="KEY_1" mapto="seek:-30" flags="m" />
+               <key id="KEY_3" mapto="seek:30" flags="m" />
+               <key id="KEY_4" mapto="seek:-90" flags="m" />
+               <key id="KEY_6" mapto="seek:90" flags="m" />
+               <key id="KEY_7" mapto="seek:-270" flags="m" />
+               <key id="KEY_9" mapto="seek:270" flags="m" />
        </map>
 
        <map context="InfobarTimeshiftActions">
                <key id="KEY_POWER" mapto="power" flags="m" />
        </map>
        <map context="CutListEditorActions">
-               <key id="KEY_1" mapto="setIn" flags="m" />
-               <key id="KEY_2" mapto="setOut" flags="m" />
-               <key id="KEY_3" mapto="setMark" flags="m" />
-               <key id="KEY_4" mapto="addMark" flags="m" />
-               <key id="KEY_5" mapto="removeMark" flags="m" />
+               <key id="KEY_NEXT" mapto="setIn" flags="m" />
+               <key id="KEY_PREVIOUS" mapto="setOut" flags="m" />
+               <key id="KEY_0" mapto="setMark" flags="m" />
+               <key id="KEY_CHANNELUP" mapto="addMark" flags="m" />
+               <key id="KEY_CHANNELDOWN" mapto="removeMark" flags="m" />
                <key id="KEY_EXIT" mapto="leave" flags="m" />
                <key id="KEY_OK" mapto="showMenu" flags="m" />
        </map>
index d6a1001..84d04f9 100644 (file)
@@ -540,7 +540,20 @@ class InfoBarSeek:
                                iPlayableService.evEOF: self.__evEOF,
                                iPlayableService.evSOF: self.__evSOF,
                        })
-               self["SeekActions"] = HelpableActionMap(self, "InfobarSeekActions", 
+
+               class InfoBarSeekActionMap(HelpableActionMap):
+                       def __init__(self, screen, *args, **kwargs):
+                               HelpableActionMap.__init__(self, screen, *args, **kwargs)
+                               self.screen = screen
+                               
+                       def action(self, contexts, action):
+                               if action[:5] == "seek:":
+                                       time = int(action[5:])
+                                       self.screen.seekRelative(time * 90000)
+                               else:
+                                       HelpableActionMap.action(self, contexts, action)
+
+               self["SeekActions"] = InfoBarSeekActionMap(self, "InfobarSeekActions", 
                        {
                                "pauseService": (self.pauseService, "pause"),
                                "unPauseService": (self.unPauseService, "continue"),
@@ -781,7 +794,7 @@ class InfoBarSeek:
        def seekRelative(self, diff):
                seekable = self.getSeek()
                if seekable is not None:
-                       seekable.seekRelative(0, diff)
+                       seekable.seekRelative(1, diff)
 
 from Screens.PVRState import PVRState