fix seek state visualization
[enigma2.git] / lib / python / Screens / MediaPlayer.py
index 5a461848b58429595e9213b805cd70c46dcf8af6..b03bc9bb6ae4d2103fa0c735eda531a69697cf71 100644 (file)
@@ -46,8 +46,17 @@ class MediaPlayer(Screen, InfoBarSeek):
                self["genre"] = Label("")
                
                #self["text"] = Input("1234", maxSize=True, type=Input.NUMBER)
-                
-               self["actions"] = NumberActionMap(["OkCancelActions", "DirectionActions", "NumberActions", "MediaPlayerSeekActions"],
+
+               class MoviePlayerActionMap(NumberActionMap):
+                       def __init__(self, player, contexts = [ ], actions = { }, prio=0):
+                               NumberActionMap.__init__(self, contexts, actions, prio)
+                               self.player = player
+
+                       def action(self, contexts, action):
+                               self.player.show()
+                               return NumberActionMap.action(self, contexts, action)
+
+               self["actions"] = MoviePlayerActionMap(self, ["OkCancelActions", "DirectionActions", "NumberActions", "MediaPlayerSeekActions"],
                {
                        "ok": self.ok,
                        "cancel": self.exit,
@@ -89,9 +98,9 @@ class MediaPlayer(Screen, InfoBarSeek):
 
                self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
                        {
-#                              iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged,
-#                              iPlayableService.evStart: self.__serviceStarted,
-                               
+                               #iPlayableService.evStart: self.__serviceStarted,
+                               #iPlayableService.evSeekableStatusChanged: InfoBarSeek.__seekableStatusChanged,
+
                                iPlayableService.evEOF: self.__evEOF,
 #                              iPlayableService.evSOF: self.__evSOF,
                        })
@@ -124,7 +133,7 @@ class MediaPlayer(Screen, InfoBarSeek):
        
        def __evEOF(self):
                self.nextEntry()
-               
+       
        def __onClose(self):
                self.session.nav.playService(self.oldService)
        
@@ -253,6 +262,7 @@ class MediaPlayer(Screen, InfoBarSeek):
                        menu.append((_("switch to filelist"), "filelist"))
                        menu.append((_("delete"), "delete"))
                        menu.append((_("clear playlist"), "clear"))
+               menu.append((_("hide player"), "hide"));
                self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu)
                
        def menuCallback(self, choice):
@@ -268,12 +278,16 @@ class MediaPlayer(Screen, InfoBarSeek):
                elif choice[1] == "filelist":
                        self.switchToFileList()
                elif choice[1] == "delete":
+                       if self.playlist.getSelectionIndex() == self.playlist.getCurrentIndex():
+                               self.stopEntry()
                        self.deleteEntry()
                elif choice[1] == "clear":
                        self.stopEntry()
                        self.playlist.clear()
                        self.switchToFileList()
-                       
+               elif choice[1] == "hide":
+                       self.hide()
+
        def copyDirectory(self, directory):
                filelist = FileList(directory, useServiceRef = True, isTop = True)
                
@@ -344,5 +358,10 @@ class MediaPlayer(Screen, InfoBarSeek):
        def stopEntry(self):
                self.playlist.stopFile()
                self.session.nav.playService(None)
+               self.updateMusicInformation(clear=True)
+
+       def unPauseService(self):
+               self.setSeekState(self.SEEK_STATE_PLAY)
+