X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/08fca93e7f2a37a452399d08c5c84b969b7e52af..9eb9dd57b133eafdd73eb361220e862f28455ba7:/lib/python/Screens/MediaPlayer.py diff --git a/lib/python/Screens/MediaPlayer.py b/lib/python/Screens/MediaPlayer.py index 95ff16aa..da50ae55 100644 --- a/lib/python/Screens/MediaPlayer.py +++ b/lib/python/Screens/MediaPlayer.py @@ -23,7 +23,7 @@ class MediaPlayer(Screen, InfoBarSeek): Screen.__init__(self, session) self.session.nav.stopService() - self.filelist = FileList(resolveFilename(SCOPE_MEDIA), matchingPattern = "^.*\.(mp3|ogg|ts|avi)", useServiceRef = True) + self.filelist = FileList(resolveFilename(SCOPE_MEDIA), matchingPattern = "^.*\.(mp3|ogg|ts|wav|wave)", useServiceRef = True) self["filelist"] = self.filelist self.playlist = PlayList() @@ -44,16 +44,6 @@ class MediaPlayer(Screen, InfoBarSeek): self["genretext"] = Label(_("Genre:")) self["genre"] = Label("") - self.__event_tracker = ServiceEventTracker(screen=self, eventmap= - { -# iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged, -# iPlayableService.evStart: self.__serviceStarted, - - iPlayableService.evEOF: self.__evEOF, -# iPlayableService.evSOF: self.__evSOF, - }) - - #self["text"] = Input("1234", maxSize=True, type=Input.NUMBER) self["actions"] = NumberActionMap(["OkCancelActions", "DirectionActions", "NumberActions", "MediaPlayerSeekActions"], @@ -96,6 +86,15 @@ class MediaPlayer(Screen, InfoBarSeek): InfoBarSeek.__init__(self) + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { +# iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged, +# iPlayableService.evStart: self.__serviceStarted, + + iPlayableService.evEOF: self.__evEOF, +# iPlayableService.evSOF: self.__evSOF, + }) + self.onClose.append(self.delMPTimer) self.onClose.append(self.__onClose) @@ -107,6 +106,10 @@ class MediaPlayer(Screen, InfoBarSeek): self.leftKeyTimer = eTimer() self.leftKeyTimer.timeout.get().append(self.leftTimerFire) + self.infoTimer = eTimer() + self.infoTimer.timeout.get().append(self.infoTimerFire) + self.infoTimer.start(500) + self.currList = "filelist" def doNothing(self): @@ -124,7 +127,30 @@ class MediaPlayer(Screen, InfoBarSeek): def delMPTimer(self): del self.rightKeyTimer del self.leftKeyTimer + del self.infoTimer + def infoTimerFire(self): + currPlay = self.session.nav.getCurrentService() + if currPlay is not None: + self.updateMusicInformation( artist = currPlay.info().getInfoString(iServiceInformation.sArtist), + title = currPlay.info().getInfoString(iServiceInformation.sTitle), + album = currPlay.info().getInfoString(iServiceInformation.sAlbum), + genre = currPlay.info().getInfoString(iServiceInformation.sGenre), + clear = True) + else: + self.updateMusicInformation() + + def updateMusicInformation(self, artist = "", title = "", album = "", year = "", genre = "", clear = False): + self.updateSingleMusicInformation("artist", artist, clear) + self.updateSingleMusicInformation("title", title, clear) + self.updateSingleMusicInformation("album", album, clear) + self.updateSingleMusicInformation("year", year, clear) + self.updateSingleMusicInformation("genre", genre, clear) + + def updateSingleMusicInformation(self, name, info, clear): + if info != "" or clear: + if self[name].getText() != info: + self[name].setText(info) def fwdTimerFire(self): self.fwdKeyTimer.stop() @@ -257,6 +283,8 @@ class MediaPlayer(Screen, InfoBarSeek): def copyFile(self): self.playlist.addFile(self.filelist.getServiceRef()) self.playlist.updateList() + if len(self.playlist) == 1: + self.changeEntry(0) def nextEntry(self): next = self.playlist.getCurrentIndex() + 1 @@ -280,7 +308,7 @@ class MediaPlayer(Screen, InfoBarSeek): def playEntry(self): currref = self.playlist.getServiceRefList()[self.playlist.getCurrentIndex()] - if currref is None or self.session.nav.getCurrentlyPlayingServiceReference() is None or currref != self.session.nav.getCurrentlyPlayingServiceReference(): + if self.session.nav.getCurrentlyPlayingServiceReference() is None or currref != self.session.nav.getCurrentlyPlayingServiceReference(): self.session.nav.playService(self.playlist.getServiceRefList()[self.playlist.getCurrentIndex()]) info = eServiceCenter.getInstance().info(currref) description = info.getInfoString(currref, iServiceInformation.sDescription)