diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-06-18 22:40:10 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2006-06-18 22:40:10 +0000 |
| commit | aa14114f1c17459de0aa31a0268224c4b959e2a8 (patch) | |
| tree | ef5d698fde9d60a9541d3ed696009c9202146f3a /lib/python | |
| parent | ef4faf6f9fc8840b36b5f25206fd0722d5e36e85 (diff) | |
| download | enigma2-aa14114f1c17459de0aa31a0268224c4b959e2a8.tar.gz enigma2-aa14114f1c17459de0aa31a0268224c4b959e2a8.zip | |
more flexible way of adding new playlist types
add .e2 as playlist type for the internal e2 playlist
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Screens/MediaPlayer.py | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/lib/python/Screens/MediaPlayer.py b/lib/python/Screens/MediaPlayer.py index f042a5c3..43658c8f 100644 --- a/lib/python/Screens/MediaPlayer.py +++ b/lib/python/Screens/MediaPlayer.py @@ -27,7 +27,12 @@ class MediaPlayer(Screen, InfoBarSeek): self.oldService = self.session.nav.getCurrentlyPlayingServiceReference() self.session.nav.stopService() - self.filelist = FileList(resolveFilename(SCOPE_MEDIA), matchingPattern = "^.*\.(mp3|ogg|ts|wav|wave|m3u|pls)", useServiceRef = True) + self.playlistparsers = {} + self.addPlaylistParser(PlaylistIOM3U, "m3u") + self.addPlaylistParser(PlaylistIOPLS, "pls") + self.addPlaylistParser(PlaylistIOInternal, "e2") + + self.filelist = FileList(resolveFilename(SCOPE_MEDIA), matchingPattern = "^.*\.(mp3|ogg|ts|wav|wave|m3u|pls|e2)", useServiceRef = True) self["filelist"] = self.filelist self.playlist = PlayList() @@ -327,21 +332,23 @@ class MediaPlayer(Screen, InfoBarSeek): if len(self.playlist) == 1: self.changeEntry(0) + def addPlaylistParser(self, parser, extension): + self.playlistparsers[extension] = parser + def playlistCallback(self, answer): if answer is not None: - extension = answer[1][1].getPath()[-3:] - if extension == "m3u": - playlist = PlaylistIOM3U() - elif extension == "pls": - playlist = PlaylistIOPLS() - if answer[1][0] == self.REPLACEPLAYLIST: - self.stopEntry() - self.playlist.clear() - self.switchToFileList() - if answer[1][0] == self.REPLACEPLAYLIST or answer[1][0] == self.ADDPLAYLIST: - list = playlist.open(answer[1][1].getPath()) - for x in list: - self.playlist.addFile(x.ref) + extension = answer[1][1].getPath()[answer[1][1].getPath().rfind('.') + 1:] + print "extension:", extension + if self.playlistparsers.has_key(extension): + playlist = self.playlistparsers[extension]() + if answer[1][0] == self.REPLACEPLAYLIST: + self.stopEntry() + self.playlist.clear() + self.switchToFileList() + if answer[1][0] == self.REPLACEPLAYLIST or answer[1][0] == self.ADDPLAYLIST: + list = playlist.open(answer[1][1].getPath()) + for x in list: + self.playlist.addFile(x.ref) def nextEntry(self): |
