from Screens.InputBox import InputBox
from Components.ActionMap import NumberActionMap, HelpableActionMap
from Components.Label import Label
-from Components.Pixmap import Pixmap
+from Components.Pixmap import Pixmap,MultiPixmap
from Components.Label import Label
from Components.FileList import FileList
from Components.MediaPlayer import PlayList
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)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls")
+ self.filelist = FileList(None, matchingPattern = "(?i)^.*\.(mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls")
self["filelist"] = self.filelist
self.playlist = MyPlayList()
self["genretext"] = Label(_("Genre:"))
self["genre"] = Label("")
self["coverArt"] = MediaPixmap()
+ self["repeat"] = MultiPixmap()
+ self.repeat = False
self.seek_target = None
class MoviePlayerActionMap(NumberActionMap):
self.coverArtFileName = ""
self.isAudioCD = False
self.AudioCD_albuminfo = {}
+ self.savePlaylistOnExit = True
self.playlistIOInternal = PlaylistIOInternal()
list = self.playlistIOInternal.open(resolveFilename(SCOPE_CONFIG, "playlist.e2pls"))
self.playlistIOInternal.clear()
for x in self.playlist.list:
self.playlistIOInternal.addService(ServiceReference(x[0]))
- if not self.isAudioCD:
+ if self.savePlaylistOnExit:
self.playlistIOInternal.save(resolveFilename(SCOPE_CONFIG, "playlist.e2pls"))
self.close()
menu.append((_("save playlist"), "saveplaylist"));
menu.append((_("load playlist"), "loadplaylist"));
menu.append((_("delete saved playlist"), "deleteplaylist"));
+ menu.append((_("repeat playlist"), "repeat"));
self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu)
def menuCallback(self, choice):
self.delete_saved_playlist()
elif choice[1] == "shuffle":
self.playlist.PlayListShuffle()
-
+ elif choice[1] == "repeat":
+ if self.repeat == True:
+ self.repeat = False
+ self["repeat"].setPixmapNum(0)
+ else:
+ self.repeat = True
+ self["repeat"].setPixmapNum(1)
def showEventInformation(self):
from Screens.EventView import EventViewSimple
next = self.playlist.getCurrentIndex() + 1
if next < len(self.playlist):
self.changeEntry(next)
+ elif ( len(self.playlist) > 0 ) and ( self.repeat == True ):
+ self.stopEntry()
+ self.changeEntry(0)
def nextMarkOrEntry(self):
if not self.jumpPreviousNextMark(lambda x: x):
from enigma import eServiceReference
mp = session.open(MediaPlayer)
+ mp.playlist.clear()
+ mp.savePlaylistOnExit = False
- mp.switchToPlayList()
for file in list:
- ref = eServiceReference(4097, 0, file.path)
+ if file.mimetype.startswith("video"):
+ stype = 1
+ else:
+ stype = 4097
+ ref = eServiceReference(stype, 0, file.path)
mp.playlist.addFile(ref)
- # TODO: rather play first than last file?
- mp.playServiceRefEntry(ref)
- mp.playlist.updateList()
+ mp.changeEntry(0)
+ mp.switchToPlayList()
def audioCD_open(list, session, **kwargs):
from enigma import eServiceReference
mp = session.open(MediaPlayer)
mp.playlist.clear()
+ mp.savePlaylistOnExit = False
mp.isAudioCD = True
for file in list:
def filescan(**kwargs):
from Components.Scanner import Scanner, ScanPath
mediatypes = [
- Scanner(mimetypes = ["video/mpeg"],
+ Scanner(mimetypes = ["video/mpeg", "video/MP2T", "video/x-msvideo"],
paths_to_scan =
[
ScanPath(path = "", with_subdirs = False),