aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2008-11-07 14:38:13 +0100
committerghost <andreas.monzner@multimedia-labs.de>2008-11-07 14:38:13 +0100
commitf8d344bcac5f2a6dd17032e6ca3d3fa9b96291b3 (patch)
treedb33254d33e0c074d34c68076b670e7a36d1cc58 /lib/python
parent613447d89ad124aa6fb52627dd7c98085cdd8d31 (diff)
parentf5dc0e14397ef85ad77df165de061264dd2166fd (diff)
downloadenigma2-f8d344bcac5f2a6dd17032e6ca3d3fa9b96291b3.tar.gz
enigma2-f8d344bcac5f2a6dd17032e6ca3d3fa9b96291b3.zip
Merge branch 'master' of git.opendreambox.org:/git/enigma2
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/MediaPlayer.py3
-rw-r--r--lib/python/Components/Playlist.py17
-rw-r--r--lib/python/Plugins/Extensions/MediaPlayer/plugin.py28
3 files changed, 31 insertions, 17 deletions
diff --git a/lib/python/Components/MediaPlayer.py b/lib/python/Components/MediaPlayer.py
index 791274fc..87ba977c 100644
--- a/lib/python/Components/MediaPlayer.py
+++ b/lib/python/Components/MediaPlayer.py
@@ -40,7 +40,7 @@ def PlaylistEntryComponent(serviceref, state):
if png is not None:
res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 5, 0, 16, 16, png))
-
+
return res
class PlayList(MenuList):
@@ -76,6 +76,7 @@ class PlayList(MenuList):
def setCurrentPlaying(self, index):
self.oldCurrPlaying = self.currPlaying
self.currPlaying = index
+ self.moveToIndex(index)
def updateState(self, state):
if len(self.list) > self.oldCurrPlaying and self.oldCurrPlaying != -1:
diff --git a/lib/python/Components/Playlist.py b/lib/python/Components/Playlist.py
index 744ee3af..c9ebe479 100644
--- a/lib/python/Components/Playlist.py
+++ b/lib/python/Components/Playlist.py
@@ -58,6 +58,7 @@ class PlaylistIOM3U(PlaylistIO):
def open(self, filename):
self.clear()
+ self.displayname = None
try:
file = open(filename, "r")
except IOError:
@@ -66,14 +67,22 @@ class PlaylistIOM3U(PlaylistIO):
entry = file.readline().strip()
if entry == "":
break
- if entry[0] != "#":
+ if entry.startswith("#EXTINF:"):
+ extinf = entry.split(',',1)
+ if len(extinf) > 1:
+ self.displayname = extinf[1]
# TODO: use e2 facilities to create a service ref from file
+ elif entry[0] != "#":
if entry[0] == "/":
- self.addService(ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + entry))
+ sref = ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + entry)
elif entry.startswith("http"):
- self.addService(ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + entry.replace(':',"%3a")))
+ sref = ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + entry.replace(':',"%3a"))
else:
- self.addService(ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + os.path.dirname(filename) + "/" + entry))
+ sref = ServiceReference("4097:0:0:0:0:0:0:0:0:0:" + os.path.dirname(filename) + "/" + entry)
+ if self.displayname:
+ sref.ref.setName(self.displayname)
+ self.displayname = None
+ self.addService(sref)
file.close()
return self.list
diff --git a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py
index ed1a8874..963247d6 100644
--- a/lib/python/Plugins/Extensions/MediaPlayer/plugin.py
+++ b/lib/python/Plugins/Extensions/MediaPlayer/plugin.py
@@ -1,6 +1,6 @@
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 enigma import iPlayableService, eTimer, eServiceCenter, iServiceInformation, loadPic
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Screens.InputBox import InputBox
@@ -14,6 +14,7 @@ from Tools.Directories import resolveFilename, SCOPE_CONFIG, SCOPE_PLAYLIST, SCO
from Components.ServicePosition import ServicePositionGauge
from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase
from Components.Playlist import PlaylistIOInternal, PlaylistIOM3U, PlaylistIOPLS
+from Components.AVSwitch import AVSwitch
from Screens.InfoBarGenerics import InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, InfoBarSubtitleSupport
from ServiceReference import ServiceReference
from Screens.ChoiceBox import ChoiceBox
@@ -42,6 +43,7 @@ class MediaPixmap(Pixmap):
break
if self.default_pixmap is None:
self.default_pixmap = resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/no_coverArt.png")
+ self.coverFileNames = ["folder.png", "folder.jpg"]
return Pixmap.applySkin(self, desktop, screen)
class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, InfoBarSubtitleSupport, HelpableScreen):
@@ -283,13 +285,15 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
def updateCoverArtPixmap(self, path):
while not path.endswith("/"):
path = path[:-1]
- pngname = path + "folder.png"
-
- if not fileExists(pngname):
- pngname = self["coverArt"].default_pixmap
- if self.coverArtFileName != pngname:
- self.coverArtFileName = pngname
- self["coverArt"].instance.setPixmapFromFile(self.coverArtFileName)
+ new_coverArtFileName = self["coverArt"].default_pixmap
+ for filename in self["coverArt"].coverFileNames:
+ if fileExists(path + filename):
+ new_coverArtFileName = path + filename
+ if self.coverArtFileName != new_coverArtFileName:
+ self.coverArtFileName = new_coverArtFileName
+ pixmap = loadPic(self.coverArtFileName, 116, 116, AVSwitch().getAspectRatioSetting()/2,1,0,0)
+ if pixmap is not None:
+ self["coverArt"].instance.setPixmap(pixmap.__deref__())
def leftDown(self):
self.lefttimer = True
@@ -632,7 +636,7 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
if x[0][1] == True: #isDir
if recursive:
self.copyDirectory(x[0][0])
- else:
+ elif filelist.getServiceRef() and filelist.getServiceRef().type == 4097:
self.playlist.addFile(x[0][0])
self.playlist.updateList()
@@ -640,12 +644,12 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
if self.filelist.getServiceRef().type == 4098: # playlist
ServiceRef = self.filelist.getServiceRef()
extension = ServiceRef.getPath()[ServiceRef.getPath().rfind('.') + 1:]
- print "extension:", extension
if self.playlistparsers.has_key(extension):
playlist = self.playlistparsers[extension]()
list = playlist.open(ServiceRef.getPath())
for x in list:
self.playlist.addFile(x.ref)
+ self.playlist.updateList()
else:
self.playlist.addFile(self.filelist.getServiceRef())
self.playlist.updateList()
@@ -762,7 +766,8 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
self.unPauseService()
if needsInfoUpdate == True:
- self.updateCoverArtPixmap(currref.getPath())
+ path = self.playlist.getServiceRefList()[self.playlist.getCurrentIndex()].getPath()
+ self.updateCoverArtPixmap(path)
else:
pngname = self["coverArt"].default_pixmap
self.coverArtFileName = pngname
@@ -814,7 +819,6 @@ class MediaPlayerLCDScreen(Screen):
self["text4"] = Label("")
def setText(self, text, line):
- print "lcd set text:", text, line
if len(text) > 10:
if text[-4:] == ".mp3":
text = text[:-4]