1 from HTMLComponent import *
2 from GUIComponent import *
4 from MenuList import MenuList
6 from Tools.Directories import *
27 PlayIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "play-small-fs8.png"))
28 PauseIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "pause-small-fs8.png"))
29 StopIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "stop-small-fs8.png"))
30 RewindIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "rewind-small-fs8.png"))
31 ForwardIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "forward-small-fs8.png"))
33 def PlaylistEntryComponent(serviceref, state):
35 res.append((eListboxPythonMultiContent.TYPE_TEXT, 35, 0, 250, 32, 0, RT_VALIGN_CENTER, os.path.split(serviceref.getPath().split('/')[-1])[1]))
37 if state == STATE_PLAY:
39 elif state == STATE_PAUSE:
41 elif state == STATE_STOP:
43 elif state == STATE_REWIND:
45 elif state == STATE_FORWARD:
49 res.append((eListboxPythonMultiContent.TYPE_PIXMAP, 0, 0, 33, 32, png))
53 class PlayList(HTMLComponent, GUIComponent, MenuList):
55 GUIComponent.__init__(self)
56 self.l = eListboxPythonMultiContent()
58 self.l.setList(self.list)
59 self.l.setFont(0, gFont("Regular", 18))
61 self.oldCurrPlaying = -1
65 self.l.setList(self.list)
67 def GUIcreate(self, parent):
68 self.instance = eListbox(parent)
69 self.instance.setContent(self.l)
70 self.instance.setItemHeight(32)
72 def getSelection(self):
73 return self.l.getCurrentSelection()[0]
75 def getSelectionIndex(self):
76 return self.l.getCurrentSelectionIndex()
78 def addFile(self, serviceref):
79 self.list.append(PlaylistEntryComponent(serviceref, STATE_NONE))
81 def deleteFile(self, index):
82 if self.currPlaying >= index:
84 self.list = self.list[:index] + self.list[index + 1:]
86 def setCurrentPlaying(self, index):
87 self.oldCurrPlaying = self.currPlaying
88 self.currPlaying = index
90 def updateState(self, state):
91 if len(self.list) > self.oldCurrPlaying and self.oldCurrPlaying != -1:
92 self.list[self.oldCurrPlaying] = PlaylistEntryComponent(self.list[self.oldCurrPlaying][0], STATE_NONE)
93 self.list[self.currPlaying] = PlaylistEntryComponent(self.list[self.currPlaying][0], state)
97 self.updateState(STATE_PLAY)
100 self.updateState(STATE_PAUSE)
103 self.updateState(STATE_STOP)
105 def rewindFile(self):
106 self.updateState(STATE_REWIND)
108 def forwardFile(self):
109 self.updateState(STATE_FORWARD)
111 def updateList(self):
112 self.l.setList(self.list)
114 def getCurrentIndex(self):
115 return self.currPlaying
117 def getServiceRefList(self):
124 return len(self.list)