X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/fc1c1768923a6ec3c3439a851b616095d60d81b3..58fe3de03d974c022df060acdf5d0e3dbc5bac90:/lib/python/Plugins/Extensions/MediaPlayer/plugin.py diff --git a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py index 7b5a4a09..ed1a8874 100644 --- a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py @@ -1,4 +1,4 @@ -from os import path as os_path, remove as os_remove, listdir as os_listdir, popen +from os import path as os_path, remove as os_remove, listdir as os_listdir from time import strftime from enigma import iPlayableService, eTimer, eServiceCenter, iServiceInformation from Screens.Screen import Screen @@ -66,7 +66,7 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB self.addPlaylistParser(PlaylistIOInternal, "e2pls") # 'None' is magic to start at the list of mountpoints - self.filelist = FileList(None, matchingPattern = "(?i)^.*\.(mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi|mkv|dat|flac)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls") + self.filelist = FileList(None, matchingPattern = "(?i)^.*\.(mp2|mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi|mkv|mp4|dat|flac)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls") self["filelist"] = self.filelist self.playlist = MyPlayList() @@ -233,7 +233,7 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB currPlay = self.session.nav.getCurrentService() message = currPlay.info().getInfoString(iServiceInformation.sUser+12) print "[__evPluginError]" , message - self.session.open(MessageBox, ("GStreamer Error: missing %s") % message, type = MessageBox.TYPE_INFO,timeout = 20 ) + self.session.open(MessageBox, message, type = MessageBox.TYPE_INFO,timeout = 20 ) def delMPTimer(self): del self.rightKeyTimer @@ -459,18 +459,8 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB menu.append((_("load playlist"), "loadplaylist")); menu.append((_("delete saved playlist"), "deleteplaylist")); menu.append((_("repeat playlist"), "repeat")); - self.cdAudioTrackFiles = [] drivepath = harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD()) if pathExists(drivepath): - from Components.Scanner import scanDevice - res = scanDevice(drivepath) - list = [ (r.description, r, res[r], self.session) for r in res ] - if list: - (desc, scanner, files, session) = list[0] - for file in files: - if file.mimetype == "audio/x-cda": - self.cdAudioTrackFiles.append(file.path) - if len(self.cdAudioTrackFiles): menu.insert(0,(_("Play Audio-CD..."), "audiocd")) self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu) @@ -515,21 +505,33 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB self.repeat = True self["repeat"].setPixmapNum(1) elif choice[1] == "audiocd": + from Components.Scanner import scanDevice + drivepath = harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD()) + self.cdAudioTrackFiles = [] + res = scanDevice(drivepath) + list = [ (r.description, r, res[r], self.session) for r in res ] + if list: + (desc, scanner, files, session) = list[0] + for file in files: + if file.mimetype == "audio/x-cda": + self.cdAudioTrackFiles.append(file.path) self.playAudioCD() - + def playAudioCD(self): from enigma import eServiceReference from Plugins.Extensions.CDInfo.plugin import Query - self.playlist.clear() - self.savePlaylistOnExit = False - self.isAudioCD = True - for file in self.cdAudioTrackFiles: - ref = eServiceReference(4097, 0, file) - self.playlist.addFile(ref) - cdinfo = Query(self) - cdinfo.scan() - self.changeEntry(0) - self.switchToPlayList() + + if len(self.cdAudioTrackFiles): + self.playlist.clear() + self.savePlaylistOnExit = False + self.isAudioCD = True + for file in self.cdAudioTrackFiles: + ref = eServiceReference(4097, 0, file) + self.playlist.addFile(ref) + cdinfo = Query(self) + cdinfo.scan() + self.changeEntry(0) + self.switchToPlayList() def showEventInformation(self): from Screens.EventView import EventViewSimple @@ -590,12 +592,13 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB def PlaylistSelected(self,path): if path is not None: self.clear_playlist() - self.playlistIOInternal = PlaylistIOInternal() - list = self.playlistIOInternal.open(path[1]) - if list: + extension = path[0].rsplit('.',1)[-1] + if self.playlistparsers.has_key(extension): + playlist = self.playlistparsers[extension]() + list = playlist.open(path[1]) for x in list: self.playlist.addFile(x.ref) - self.playlist.updateList() + self.playlist.updateList() def delete_saved_playlist(self): listpath = [] @@ -725,7 +728,7 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB ext = text[-4:].lower() # FIXME: the information if the service contains video (and we should hide our window) should com from the service instead - if ext not in [".mp3", ".wav", ".ogg", "flac"] and not self.isAudioCD: + if ext not in [".mp2", ".mp3", ".wav", ".ogg", "flac"] and not self.isAudioCD: self.hide() else: needsInfoUpdate = True @@ -752,7 +755,7 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB currref = self.playlist.getServiceRefList()[idx] text = currref.getPath() ext = text[-4:].lower() - if ext not in [".mp3", ".wav", ".ogg", "flac"] and not self.isAudioCD: + if ext not in [".mp2", ".mp3", ".wav", ".ogg", "flac"] and not self.isAudioCD: self.hide() else: needsInfoUpdate = True