示例#1
0
文件: plugin.py 项目: Open-Plus/opgui
	def __init__(self, session, args = None):
		Screen.__init__(self, session)
		InfoBarAudioSelection.__init__(self)
		InfoBarAspectSelection.__init__(self)
		InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions")
		InfoBarNotifications.__init__(self)
		InfoBarBase.__init__(self)
		InfoBarScreenSaver.__init__(self)
		InfoBarSubtitleSupport.__init__(self)
		HelpableScreen.__init__(self)
		InfoBarResolutionSelection.__init__(self)
		self.summary = None
		self.oldService = self.session.nav.getCurrentlyPlayingServiceReference()
		self.session.nav.stopService()

		self.playlistparsers = {}
		self.addPlaylistParser(PlaylistIOM3U, "m3u")
		self.addPlaylistParser(PlaylistIOPLS, "pls")
		self.addPlaylistParser(PlaylistIOInternal, "e2pls")

		# 'None' is magic to start at the list of mountpoints
		try:
			defaultDir = config.mediaplayer.defaultDir.value
		except:
			Load_defaults()
			defaultDir = config.mediaplayer.defaultDir.value
		self.filelist = FileList(defaultDir, matchingPattern = "(?i)^.*\.(mp2|mp3|ogg|ts|trp|mts|m2ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi|divx|m4v|mkv|mp4|m4a|dat|flac|flv|mov|dts|3gp|3g2|asf|wmv|wma|webm)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls")
		self["filelist"] = self.filelist

		self.playlist = MyPlayList()
		self.is_closing = False
		self.hiding = False
		self.delname = ""
		self.playlistname = ""
		self["playlist"] = self.playlist

		self["PositionGauge"] = ServicePositionGauge(self.session.nav)

		self["currenttext"] = Label("")

		self["artisttext"] = Label(_("Artist")+':')
		self["artist"] = Label("")
		self["titletext"] = Label(_("Title")+':')
		self["title"] = Label("")
		self["albumtext"] = Label(_("Album")+':')
		self["album"] = Label("")
		self["yeartext"] = Label(_("Year")+':')
		self["year"] = Label("")
		self["genretext"] = Label(_("Genre")+':')
		self["genre"] = Label("")
		self["coverArt"] = MediaPixmap()
		self["repeat"] = MultiPixmap()

		self.seek_target = None

		try:
			from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
			hotplugNotifier.append(self.hotplugCB)
		except Exception, ex:
			print "[MediaPlayer] No hotplug support", ex
	def __init__(self, session, service, slist = None, lastservice = None):
		Screen.__init__(self, session)
		InfoBarAspectSelection.__init__(self)
		self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
			{
				"leavePlayer": (self.leavePlayer, _("leave movie player...")),
				"leavePlayerOnExit": (self.leavePlayerOnExit, _("leave movie player..."))
			})
		self["DirectionActions"] = HelpableActionMap(self, "DirectionActions",
			{
				"left": self.left,
				"right": self.right
			}, prio = -2)
		self.allowPiP = True
		for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \
				InfoBarBase, InfoBarSeek, \
				InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
				InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
				InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \
				InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \
				InfoBarPlugins, InfoBarPiP:
			x.__init__(self)
		self.servicelist = slist
		self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceReference()
		session.nav.playService(service)
		self.cur_service = service
		self.returning = False
		self.onClose.append(self.__onClose)
示例#3
0
	def __init__(self, session, args=None):
		Screen.__init__(self, session)
		InfoBarAudioSelection.__init__(self)
		InfoBarAspectSelection.__init__(self)
		InfoBarCueSheetSupport.__init__(self, actionmap="MediaPlayerCueSheetActions")
		InfoBarNotifications.__init__(self)
		InfoBarBase.__init__(self)
		InfoBarScreenSaver.__init__(self)
		InfoBarSubtitleSupport.__init__(self)
		HelpableScreen.__init__(self)
		self.summary = None
		self.oldService = self.session.nav.getCurrentlyPlayingServiceReference()
		self.session.nav.stopService()

		self.playlistparsers = {}
		self.addPlaylistParser(PlaylistIOM3U, "m3u")
		self.addPlaylistParser(PlaylistIOPLS, "pls")
		self.addPlaylistParser(PlaylistIOInternal, "e2pls")

		# 'None' is magic to start at the list of mountpoints
		try:
			defaultDir = config.mediaplayer.defaultDir.value
		except:
			Load_defaults()
			defaultDir = config.mediaplayer.defaultDir.value
		self.filelist = FileList(defaultDir, matchingPattern="(?i)^.*\.(mp2|mp3|ogg|ts|trp|mts|m2ts|wav|wave|m3u|pls|e2pls|mpg|vob|avi|divx|m4v|mkv|mp4|m4a|dat|flac|flv|mov|dts|3gp|3g2|asf|wmv|wma|webm)", useServiceRef=True, additionalExtensions="4098:m3u 4098:e2pls 4098:pls")
		self["filelist"] = self.filelist

		self.playlist = MyPlayList()
		self.is_closing = False
		self.hiding = False
		self.delname = ""
		self.playlistname = ""
		self["playlist"] = self.playlist

		self["PositionGauge"] = ServicePositionGauge(self.session.nav)

		self["currenttext"] = Label("")

		self["artisttext"] = Label(_("Artist") + ':')
		self["artist"] = Label("")
		self["titletext"] = Label(_("Title") + ':')
		self["title"] = Label("")
		self["albumtext"] = Label(_("Album") + ':')
		self["album"] = Label("")
		self["yeartext"] = Label(_("Year") + ':')
		self["year"] = Label("")
		self["genretext"] = Label(_("Genre") + ':')
		self["genre"] = Label("")
		self["coverArt"] = MediaPixmap()
		self["repeat"] = MultiPixmap()

		self.seek_target = None

		try:
			from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
			hotplugNotifier.append(self.hotplugCB)
		except Exception, ex:
			print "[MediaPlayer] No hotplug support", ex
示例#4
0
    def __init__(self, session, service, slist=None, lastservice=None):
        Screen.__init__(self, session)
        InfoBarAspectSelection.__init__(self)
        InfoBarAudioSelection.__init__(self)
        InfoBarSimpleEventView.__init__(self)
        self.pts_pvrStateDialog = ""

        self["key_yellow"] = Label()
        self["key_blue"] = Label()
        self["key_green"] = Label()

        self["eventname"] = Label()
        self["state"] = Label()
        self["speed"] = Label()
        self["statusicon"] = MultiPixmap()

        self["actions"] = HelpableActionMap(
            self, "MoviePlayerActions", {
                "leavePlayer": (self.leavePlayer, _("leave movie player...")),
                "leavePlayerOnExit":
                (self.leavePlayerOnExit, _("leave movie player..."))
            })

        self.allowPiP = True

        for x in HelpableScreen, InfoBarShowHide, InfoBarLongKeyDetection, InfoBarMenu, InfoBarEPG, \
          InfoBarBase, InfoBarSeek, InfoBarShowMovies, InfoBarInstantRecord, \
          InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
          InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
          InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \
          InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \
          InfoBarPlugins, InfoBarPiP, InfoBarZoom, InfoBarButtonSetup:
            x.__init__(self)

#Blackhole
        self.oldeiconfig = config.misc.deliteeinfo.value
        config.misc.deliteeinfo.value = False
        #End

        self.onChangedEntry = []
        self.servicelist = slist
        self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup(
        )
        session.nav.playService(service)
        self.cur_service = service
        self.returning = False
        self.onClose.append(self.__onClose)
        self.onShow.append(self.doButtonsCheck)

        self.__event_tracker = ServiceEventTracker(
            screen=self,
            eventmap={enigma.iPlayableService.evStart: self.__evStart})

        assert MoviePlayer.instance is None, "class InfoBar is a singleton class and just one instance of this class is allowed!"
        MoviePlayer.instance = self

        # is needed for every first call of MoviePlayer
        self.__evStart()
示例#5
0
	def __init__(self, session, service, slist = None, lastservice = None):
		Screen.__init__(self, session)
		InfoBarAspectSelection.__init__(self)
		InfoBarAudioSelection.__init__(self)
		InfoBarSimpleEventView.__init__(self)
		self.pts_pvrStateDialog = ""

		self["key_yellow"] = Label()
		self["key_blue"] = Label()
		self["key_green"] = Label()

		self["eventname"] = Label()
		self["state"] = Label()
		self["speed"] = Label()
		self["statusicon"] = MultiPixmap()

		self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
			{
				"leavePlayer": (self.leavePlayer, _("leave movie player...")),
				"leavePlayerOnExit": (self.leavePlayerOnExit, _("leave movie player..."))
			})

		self.allowPiP = True

		for x in HelpableScreen, InfoBarShowHide, InfoBarLongKeyDetection, InfoBarMenu, InfoBarEPG, \
				InfoBarBase, InfoBarSeek, InfoBarShowMovies, InfoBarInstantRecord, \
				InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
				InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
				InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \
				InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \
				InfoBarPlugins, InfoBarPiP, InfoBarZoom, InfoBarButtonSetup:
			x.__init__(self)

#Blackhole
		self.oldeiconfig = config.misc.deliteeinfo.value
		config.misc.deliteeinfo.value = False
#End

		self.onChangedEntry = [ ]
		self.servicelist = slist
		self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup()
		session.nav.playService(service)
		self.cur_service = service
		self.returning = False
		self.onClose.append(self.__onClose)
		self.onShow.append(self.doButtonsCheck)

		self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
			{
				enigma.iPlayableService.evStart: self.__evStart
			})

		assert MoviePlayer.instance is None, "class InfoBar is a singleton class and just one instance of this class is allowed!"
		MoviePlayer.instance = self

		# is needed for every first call of MoviePlayer
		self.__evStart()
示例#6
0
    def __init__(self, session, service, slist = None, lastservice = None):
        Screen.__init__(self, session)
        InfoBarAspectSelection.__init__(self)
        InfoBarAudioSelection.__init__(self)
        InfoBarSimpleEventView.__init__(self)
        self.pts_pvrStateDialog = ''
        self['key_yellow'] = Label()
        self['key_blue'] = Label()
        self['key_green'] = Label()
        self['eventname'] = Label()
        self['state'] = Label()
        self['speed'] = Label()
        self['statusicon'] = MultiPixmap()
        self['actions'] = HelpableActionMap(self, 'MoviePlayerActions', {'leavePlayer': (self.leavePlayer, _('leave movie player...')),
         'leavePlayerOnExit': (self.leavePlayerOnExit, _('leave movie player...'))})
        self.allowPiP = True
        for x in (HelpableScreen,
         InfoBarShowHide,
         InfoBarLongKeyDetection,
         InfoBarMenu,
         InfoBarEPG,
         InfoBarBase,
         InfoBarSeek,
         InfoBarShowMovies,
         InfoBarInstantRecord,
         InfoBarAudioSelection,
         InfoBarNotifications,
         InfoBarSimpleEventView,
         InfoBarServiceNotifications,
         InfoBarPVRState,
         InfoBarCueSheetSupport,
         InfoBarMoviePlayerSummarySupport,
         InfoBarSubtitleSupport,
         InfoBarTeletextPlugin,
         InfoBarServiceErrorPopupSupport,
         InfoBarExtensions,
         InfoBarPlugins,
         InfoBarPiP,
         InfoBarZoom,
         InfoBarButtonSetup):
            x.__init__(self)

        self.onChangedEntry = []
        self.servicelist = slist
        self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup()
        session.nav.playService(service)
        self.cur_service = service
        self.returning = False
        self.onClose.append(self.__onClose)
        self.onShow.append(self.doButtonsCheck)
        self.__event_tracker = ServiceEventTracker(screen=self, eventmap={enigma.iPlayableService.evStart: self.__evStart})
        MoviePlayer.instance = self
        self.__evStart()
示例#7
0
    def __init__(self, session, service, slist=None, lastservice=None):
        Screen.__init__(self, session)
        InfoBarAspectSelection.__init__(self)
        InfoBarAudioSelection.__init__(self)
        InfoBarSimpleEventView.__init__(self)
        self.pts_pvrStateDialog = ''
        self['key_yellow'] = Label()
        self['key_blue'] = Label()
        self['key_green'] = Label()
        self['eventname'] = Label()
        self['state'] = Label()
        self['speed'] = Label()
        self['statusicon'] = MultiPixmap()
        self['actions'] = HelpableActionMap(
            self, 'MoviePlayerActions', {
                'leavePlayer': (self.leavePlayer, _('leave movie player...')),
                'leavePlayerOnExit':
                (self.leavePlayerOnExit, _('leave movie player...'))
            })
        self.allowPiP = True
        for x in (HelpableScreen, InfoBarShowHide, InfoBarLongKeyDetection,
                  InfoBarMenu, InfoBarEPG, InfoBarBase, InfoBarSeek,
                  InfoBarShowMovies, InfoBarInstantRecord,
                  InfoBarAudioSelection, InfoBarNotifications,
                  InfoBarSimpleEventView, InfoBarServiceNotifications,
                  InfoBarPVRState, InfoBarCueSheetSupport,
                  InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport,
                  InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport,
                  InfoBarExtensions, InfoBarPlugins, InfoBarPiP, InfoBarZoom,
                  InfoBarButtonSetup):
            x.__init__(self)

        self.onChangedEntry = []
        self.servicelist = slist
        self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup(
        )
        session.nav.playService(service)
        self.cur_service = service
        self.returning = False
        self.onClose.append(self.__onClose)
        self.onShow.append(self.doButtonsCheck)
        self.__event_tracker = ServiceEventTracker(
            screen=self,
            eventmap={enigma.iPlayableService.evStart: self.__evStart})
        MoviePlayer.instance = self
        self.__evStart()
示例#8
0
    def __init__(self, session, service, slist=None, lastservice=None):
        Screen.__init__(self, session)
        InfoBarAspectSelection.__init__(self)
        InfoBarAudioSelection.__init__(self)
        self.pts_pvrStateDialog = ""

        self["key_yellow"] = Label()
        self["key_blue"] = Label()
        self["key_green"] = Label()

        self["eventname"] = Label()
        self["state"] = Label()
        self["speed"] = Label()
        self["statusicon"] = MultiPixmap()

        self["actions"] = HelpableActionMap(
            self, "MoviePlayerActions", {
                "leavePlayer": (self.leavePlayer, _("leave movie player...")),
                "leavePlayerOnExit":
                (self.leavePlayerOnExit, _("leave movie player..."))
            })

        self.allowPiP = True

        for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, InfoBarEPG, \
          InfoBarBase, InfoBarSeek, InfoBarShowMovies, \
          InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
          InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
          InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \
          InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \
          InfoBarPlugins, InfoBarPiP, InfoBarZoom:
            x.__init__(self)

        self.onChangedEntry = []
        self.servicelist = slist
        self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup(
        )
        session.nav.playService(service)
        self.cur_service = service
        self.returning = False
        self.onClose.append(self.__onClose)
        self.onShow.append(self.doButtonsCheck)

        assert MoviePlayer.instance is None, "class InfoBar is a singleton class and just one instance of this class is allowed!"
        MoviePlayer.instance = self
示例#9
0
文件: InfoBar.py 项目: Tron3/enigma2
	def __init__(self, session, service, slist = None, lastservice = None):
		Screen.__init__(self, session)
		InfoBarAspectSelection.__init__(self)
		InfoBarAudioSelection.__init__(self)
		self.pts_pvrStateDialog = ""

		self["key_yellow"] = Label()
		self["key_blue"] = Label()
		self["key_green"] = Label()

		self["eventname"] = Label()
		self["state"] = Label()
		self["speed"] = Label()
		self["statusicon"] = MultiPixmap()

		self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
			{
				"leavePlayer": (self.leavePlayer, _("leave movie player...")),
				"leavePlayerOnExit": (self.leavePlayerOnExit, _("leave movie player..."))
			})

		self.allowPiP = True

		for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, InfoBarEPG, \
				InfoBarBase, InfoBarSeek, InfoBarShowMovies, \
				InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
				InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
				InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \
				InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \
				InfoBarPlugins, InfoBarPiP, InfoBarZoom:
			x.__init__(self)

		self.onChangedEntry = [ ]
		self.servicelist = slist
		self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup()
		session.nav.playService(service)
		self.cur_service = service
		self.returning = False
		self.onClose.append(self.__onClose)
		self.onShow.append(self.doButtonsCheck)

		assert MoviePlayer.instance is None, "class InfoBar is a singleton class and just one instance of this class is allowed!"
		MoviePlayer.instance = self
示例#10
0
	def __init__(self, session, service, slist=None, lastservice=None, infobar=None):
		Screen.__init__(self, session)

		InfoBarAspectSelection.__init__(self)

		self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
			{
				"leavePlayer": (self.leavePlayer, _("leave movie player...")),
				"leavePlayerOnExit": (self.leavePlayerOnExit, _("leave movie player...")),
				"channelUp": (self.channelUp, _("when PiPzap enabled zap channel up...")),
				"channelDown": (self.channelDown, _("when PiPzap enabled zap channel down...")),
			})

		self["DirectionActions"] = HelpableActionMap(self, "DirectionActions",
			{
				"left": self.left,
				"right": self.right
			}, prio = -2)

		self.allowPiP = True

		for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \
				InfoBarBase, InfoBarSeek, InfoBarShowMovies, InfoBarInstantRecord, \
				InfoBarAudioSelection, InfoBarNotifications, \
				InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
				InfoBarMoviePlayerSummarySupport, InfoBarSubtitleSupport, \
				InfoBarTeletextPlugin, InfoBarServiceErrorPopupSupport, InfoBarExtensions, \
				InfoBarPlugins, InfoBarPiP, InfoBarHotkey:
			x.__init__(self)

		self.servicelist = slist
		self.infobar = infobar
		self.lastservice = lastservice or session.nav.getCurrentlyPlayingServiceOrGroup()
		session.nav.playService(service)
		self.cur_service = service
		self.returning = False
		self.onClose.append(self.__onClose)
		config.misc.standbyCounter.addNotifier(self.standbyCountChanged, initial_call=False)
示例#11
0
	def __init__(self, session, args = None):
		Screen.__init__(self, session)
		InfoBarAudioSelection.__init__(self)
		InfoBarAspectSelection.__init__(self)
		InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions")
		InfoBarNotifications.__init__(self)
		InfoBarBase.__init__(self)
		InfoBarScreenSaver.__init__(self)
		InfoBarSubtitleSupport.__init__(self)
		HelpableScreen.__init__(self)
		self.summary = None
		self.oldService = self.session.nav.getCurrentlyPlayingServiceOrGroup()
		self.session.nav.stopService()

		self.setTitle(_("Media player"))

		self.playlistparsers = {}
		self.addPlaylistParser(PlaylistIOM3U, "m3u")
		self.addPlaylistParser(PlaylistIOPLS, "pls")
		self.addPlaylistParser(PlaylistIOInternal, "e2pls")

		# 'None' is magic to start at the list of mountpoints
		defaultDir = config.mediaplayer.defaultDir.getValue()
		self.filelist = FileList(defaultDir, matchingPattern = "(?i)^.*\.(dts|mp3|wav|wave|wv|oga|ogg|flac|m4a|mp2|m2a|wma|ac3|mka|aac|ape|alac|mpg|vob|m4v|mkv|avi|divx|dat|flv|mp4|mov|wmv|asf|3gp|3g2|mpeg|mpe|rm|rmvb|ogm|ogv|m2ts|mts|ts|m3u|e2pls|pls|amr|au|mid|pva|wtv)", useServiceRef = True, additionalExtensions = "4098:m3u 4098:e2pls 4098:pls")
		self["filelist"] = self.filelist

		self.playlist = MyPlayList()
		self.is_closing = False
		self.delname = ""
		self.playlistname = ""
		self["playlist"] = self.playlist

		self["PositionGauge"] = ServicePositionGauge(self.session.nav)

		self["currenttext"] = Label("")

		self["artisttext"] = Label(_("Artist")+':')
		self["artist"] = Label("")
		self["titletext"] = Label(_("Title")+':')
		self["title"] = Label("")
		self["albumtext"] = Label(_("Album")+':')
		self["album"] = Label("")
		self["yeartext"] = Label(_("Year")+':')
		self["year"] = Label("")
		self["genretext"] = Label(_("Genre")+':')
		self["genre"] = Label("")
		self["coverArt"] = MediaPixmap()
		self["repeat"] = MultiPixmap()

		self.seek_target = None

		try:
			from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
			hotplugNotifier.append(self.hotplugCB)
		except Exception as ex:
			print("[MediaPlayer] No hotplug support", ex)

		class MoviePlayerActionMap(NumberActionMap):
			def __init__(self, player, contexts = [ ], actions = { }, prio=0):
				NumberActionMap.__init__(self, contexts, actions, prio)
				self.player = player

			def action(self, contexts, action):
				self.player.show()
				return NumberActionMap.action(self, contexts, action)

		self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions",
			{
				"ok": (self.ok, _("Add file to playlist")),
				"cancel": (self.exit, _("Exit mediaplayer")),
			}, -2)

		self["MediaPlayerActions"] = HelpableActionMap(self, "MediaPlayerActions",
			{
				"play": (self.xplayEntry, _("Play entry")),
				"pause": (self.pauseEntry, _("Pause")),
				"stop": (self.stopEntry, _("Stop entry")),
				"previous": (self.previousMarkOrEntry, _("Play from previous mark or playlist entry")),
				"next": (self.nextMarkOrEntry, _("Play from next mark or playlist entry")),
				"menu": (self.showMenu, _("Menu")),
				"skipListbegin": (self.skip_listbegin, _("Jump to beginning of list")),
				"skipListend": (self.skip_listend, _("Jump to end of list")),
				"prevBouquet": (self.prevBouquet, self.prevBouquetHelpText),
				"nextBouquet": (self.nextBouquet, self.nextBouquetHelptext),
				"delete": (self.deletePlaylistEntry, _("Delete playlist entry")),
				"shift_stop": (self.clear_playlist, _("Clear playlist")),
				"shift_record": (self.playlist.PlayListShuffle, _("Shuffle playlist")),
				"subtitles": (self.subtitleSelection, _("Subtitle selection")),
			}, -2)

		self["InfobarEPGActions"] = HelpableActionMap(self, "InfobarEPGActions",
			{
				"showEventInfo": (self.showEventInformation, _("show event details")),
			})

		self["actions"] = MoviePlayerActionMap(self, ["DirectionActions"],
		{
			"right": self.rightDown,
			"rightRepeated": self.doNothing,
			"rightUp": self.rightUp,
			"left": self.leftDown,
			"leftRepeated": self.doNothing,
			"leftUp": self.leftUp,

			"up": self.up,
			"upRepeated": self.up,
			"upUp": self.doNothing,
			"down": self.down,
			"downRepeated": self.down,
			"downUp": self.doNothing,
		}, -2)

		InfoBarSeek.__init__(self, actionmap = "MediaPlayerSeekActions")

		self.mediaPlayerInfoBar = self.session.instantiateDialog(MediaPlayerInfoBar)

		self.onClose.append(self.delMPTimer)
		self.onClose.append(self.__onClose)
		self.onShow.append(self.timerHideMediaPlayerInfoBar)

		self.righttimer = False
		self.rightKeyTimer = eTimer()
		self.rightKeyTimer.callback.append(self.rightTimerFire)

		self.lefttimer = False
		self.leftKeyTimer = eTimer()
		self.leftKeyTimer.callback.append(self.leftTimerFire)

		self.hideMediaPlayerInfoBar = eTimer()
		self.hideMediaPlayerInfoBar.callback.append(self.timerHideMediaPlayerInfoBar)

		self.currList = "filelist"
		self.isAudioCD = False
		self.ext = None
		self.AudioCD_albuminfo = {}
		self.cdAudioTrackFiles = []
		self.onShown.append(self.applySettings)

		self.playlistIOInternal = PlaylistIOInternal()
		list = self.playlistIOInternal.open(resolveFilename(SCOPE_CONFIG, "playlist.e2pls"))
		if list:
			for x in list:
				self.playlist.addFile(x.ref)
			self.playlist.updateList()

		self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
			{
				iPlayableService.evUpdatedInfo: self.__evUpdatedInfo,
				iPlayableService.evUser+10: self.__evAudioDecodeError,
				iPlayableService.evUser+11: self.__evVideoDecodeError,
				iPlayableService.evUser+12: self.__evPluginError,
				iPlayableService.evUser+13: self["coverArt"].embeddedCoverArt
			})

		self.servicelist = None
		self.pipZapAvailable = False
		if InfoBar.instance is not None:
			self.servicelist = InfoBar.instance.servicelist
			if self.servicelist and hasattr(self.servicelist, 'dopipzap'):
				self.pipZapAvailable = SystemInfo.get("NumVideoDecoders", 1) > 1