git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
optimize linked tuner handling
[enigma2.git]
/
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 63e2b302899a1e13e6bb2a62964bb10590daec5f..267ada1cbbf3d16408d41d1585197a0015570a0e 100644
(file)
--- 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 os import path as os_path, remove as os_remove, listdir as os_listdir
from time import strftime
-from enigma import eTimer,
iPlayableService,
eServiceCenter, iServiceInformation
+from enigma import eTimer, eServiceCenter, iServiceInformation
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Screens.InputBox import InputBox
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Screens.InputBox import InputBox
@@
-12,7
+12,7
@@
from Components.FileList import FileList
from Components.MediaPlayer import PlayList
from Tools.Directories import resolveFilename, SCOPE_CONFIG, SCOPE_PLAYLIST, SCOPE_SKIN_IMAGE
from Components.ServicePosition import ServicePositionGauge
from Components.MediaPlayer import PlayList
from Tools.Directories import resolveFilename, SCOPE_CONFIG, SCOPE_PLAYLIST, SCOPE_SKIN_IMAGE
from Components.ServicePosition import ServicePositionGauge
-from Components.ServiceEventTracker import
ServiceEventTracker
+from Components.ServiceEventTracker import
InfoBarBase
from Components.Playlist import PlaylistIOInternal, PlaylistIOM3U, PlaylistIOPLS
from Screens.InfoBarGenerics import InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications
from ServiceReference import ServiceReference
from Components.Playlist import PlaylistIOInternal, PlaylistIOM3U, PlaylistIOPLS
from Screens.InfoBarGenerics import InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications
from ServiceReference import ServiceReference
@@
-31,7
+31,7
@@
class MyPlayList(PlayList):
self.oldCurrPlaying = -1
class MediaPixmap(Pixmap):
self.oldCurrPlaying = -1
class MediaPixmap(Pixmap):
- def applySkin(self, desktop):
+ def applySkin(self, desktop
, screen
):
self.default_pixmap = None
if self.skinAttributes is not None:
for (attrib, value) in self.skinAttributes:
self.default_pixmap = None
if self.skinAttributes is not None:
for (attrib, value) in self.skinAttributes:
@@
-39,10
+39,10
@@
class MediaPixmap(Pixmap):
self.default_pixmap = value
break
if self.default_pixmap is None:
self.default_pixmap = value
break
if self.default_pixmap is None:
- self.default_pixmap = resolveFilename(SCOPE_SKIN_IMAGE, "no_coverArt.png")
- return Pixmap.applySkin(self, desktop)
+ self.default_pixmap = resolveFilename(SCOPE_SKIN_IMAGE, "
skin_default/
no_coverArt.png")
+ return Pixmap.applySkin(self, desktop
, screen
)
-class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, HelpableScreen):
+class MediaPlayer(Screen, InfoBar
Base, InfoBar
Seek, InfoBarAudioSelection, InfoBarCueSheetSupport, InfoBarNotifications, HelpableScreen):
ALLOW_SUSPEND = True
ENABLE_RESUME_SUPPORT = True
ALLOW_SUSPEND = True
ENABLE_RESUME_SUPPORT = True
@@
-51,6
+51,7
@@
class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSup
InfoBarAudioSelection.__init__(self)
InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions")
InfoBarNotifications.__init__(self)
InfoBarAudioSelection.__init__(self)
InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions")
InfoBarNotifications.__init__(self)
+ InfoBarBase.__init__(self)
HelpableScreen.__init__(self)
self.summary = None
self.oldService = self.session.nav.getCurrentlyPlayingServiceReference()
HelpableScreen.__init__(self)
self.summary = None
self.oldService = self.session.nav.getCurrentlyPlayingServiceReference()
@@
-62,7
+63,7
@@
class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSup
self.addPlaylistParser(PlaylistIOInternal, "e2pls")
# 'None' is magic to start at the list of mountpoints
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)
+ 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"] = self.filelist
self.playlist = MyPlayList()
self["filelist"] = self.filelist
self.playlist = MyPlayList()
@@
-110,8
+111,8
@@
class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSup
"play": (self.xplayEntry, _("play entry")),
"pause": (self.pauseEntry, _("pause")),
"stop": (self.stopEntry, _("stop entry")),
"play": (self.xplayEntry, _("play entry")),
"pause": (self.pauseEntry, _("pause")),
"stop": (self.stopEntry, _("stop entry")),
- "previous": (self.previous
Entry, _("play previous
playlist entry")),
- "next": (self.next
Entry, _("play next
playlist entry")),
+ "previous": (self.previous
MarkOrEntry, _("play from previous mark or
playlist entry")),
+ "next": (self.next
MarkOrEntry, _("play from next mark or
playlist entry")),
"menu": (self.showMenu, _("menu")),
"skipListbegin": (self.skip_listbegin, _("jump to listbegin")),
"skipListend": (self.skip_listend, _("jump to listend")),
"menu": (self.showMenu, _("menu")),
"skipListbegin": (self.skip_listbegin, _("jump to listbegin")),
"skipListend": (self.skip_listend, _("jump to listend")),
@@
-146,24
+147,16
@@
class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSup
InfoBarSeek.__init__(self, actionmap = "MediaPlayerSeekActions")
InfoBarSeek.__init__(self, actionmap = "MediaPlayerSeekActions")
- self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
- {
- #iPlayableService.evStart: self.__serviceStarted,
- #iPlayableService.evSeekableStatusChanged: InfoBarSeek.__seekableStatusChanged,
-
- iPlayableService.evEOF: self.__evEOF,
- })
-
self.onClose.append(self.delMPTimer)
self.onClose.append(self.__onClose)
self.righttimer = False
self.rightKeyTimer = eTimer()
self.onClose.append(self.delMPTimer)
self.onClose.append(self.__onClose)
self.righttimer = False
self.rightKeyTimer = eTimer()
- self.rightKeyTimer.
timeout.get()
.append(self.rightTimerFire)
+ self.rightKeyTimer.
callback
.append(self.rightTimerFire)
self.lefttimer = False
self.leftKeyTimer = eTimer()
self.lefttimer = False
self.leftKeyTimer = eTimer()
- self.leftKeyTimer.
timeout.get()
.append(self.leftTimerFire)
+ self.leftKeyTimer.
callback
.append(self.leftTimerFire)
self.currList = "filelist"
self.currList = "filelist"
@@
-196,8
+189,11
@@
class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSup
def checkSkipShowHideLock(self):
self.updatedSeekState()
def checkSkipShowHideLock(self):
self.updatedSeekState()
- def __evEOF(self):
- self.nextEntry()
+ def doEofInternal(self, playing):
+ if playing:
+ self.nextEntry()
+ else:
+ self.show()
def __onClose(self):
self.session.nav.playService(self.oldService)
def __onClose(self):
self.session.nav.playService(self.oldService)
@@
-570,10
+566,19
@@
class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSup
if next < len(self.playlist):
self.changeEntry(next)
if next < len(self.playlist):
self.changeEntry(next)
- def previousEntry(self):
- next = self.playlist.getCurrentIndex() - 1
- if next >= 0:
- self.changeEntry(next)
+ def nextMarkOrEntry(self):
+ if not self.jumpPreviousNextMark(lambda x: x):
+ next = self.playlist.getCurrentIndex() + 1
+ if next < len(self.playlist):
+ self.changeEntry(next)
+ else:
+ self.doSeek(-1)
+
+ def previousMarkOrEntry(self):
+ if not self.jumpPreviousNextMark(lambda x: -x-5*90000, start=True):
+ next = self.playlist.getCurrentIndex() - 1
+ if next >= 0:
+ self.changeEntry(next)
def deleteEntry(self):
self.playlist.deleteFile(self.playlist.getSelectionIndex())
def deleteEntry(self):
self.playlist.deleteFile(self.playlist.getSelectionIndex())
@@
-675,21
+680,9
@@
class MediaPlayer(Screen, InfoBarSeek, InfoBarAudioSelection, InfoBarCueSheetSup
self.playlist.pauseFile()
elif self.seekstate == self.SEEK_STATE_PLAY:
self.playlist.playFile()
self.playlist.pauseFile()
elif self.seekstate == self.SEEK_STATE_PLAY:
self.playlist.playFile()
- elif self.seekstate in ( self.SEEK_STATE_FF_2X,
- self.SEEK_STATE_FF_4X,
- self.SEEK_STATE_FF_8X,
- self.SEEK_STATE_FF_16X,
- self.SEEK_STATE_FF_32X,
- self.SEEK_STATE_FF_48X,
- self.SEEK_STATE_FF_64X,
- self.SEEK_STATE_FF_128X):
+ elif self.isStateForward(self.seekstate):
self.playlist.forwardFile()
self.playlist.forwardFile()
- elif self.seekstate in ( self.SEEK_STATE_BACK_8X,
- self.SEEK_STATE_BACK_16X,
- self.SEEK_STATE_BACK_32X,
- self.SEEK_STATE_BACK_48X,
- self.SEEK_STATE_BACK_64X,
- self.SEEK_STATE_BACK_128X):
+ elif self.isStateBackward(self.seekstate):
self.playlist.rewindFile()
def pauseEntry(self):
self.playlist.rewindFile()
def pauseEntry(self):
@@
-735,7
+728,7
@@
class MediaPlayerLCDScreen(Screen):
self["text4"].setText(text)
def main(session, **kwargs):
self["text4"].setText(text)
def main(session, **kwargs):
-
session.open(MediaPlayer)
+ session.open(MediaPlayer)
def menu(menuid, **kwargs):
if menuid == "mainmenu":
def menu(menuid, **kwargs):
if menuid == "mainmenu":