X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FExtensions%2FDVDPlayer%2Fplugin.py;h=80629c5ddafbe069d69282d69af537b34b0fc804;hp=b7d66a8263341f8850ae76e1ee44e65355941a84;hb=574f425cc1ebece0aa5f09fb77a8cb7ad0310a1f;hpb=74837aa1b9a2d0ee3cd630b74abcb224272290ab
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py
index b7d66a8..80629c5 100644
--- a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py
+++ b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py
@@ -1,5 +1,5 @@
from os import path as os_path, remove as os_remove, listdir as os_listdir, system
-from enigma import eTimer, iPlayableService, iServiceInformation, eServiceReference, iServiceKeys
+from enigma import eTimer, iPlayableService, iServiceInformation, eServiceReference, iServiceKeys, getDesktop
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Screens.ChoiceBox import ChoiceBox
@@ -7,6 +7,7 @@ from Screens.HelpMenu import HelpableScreen
from Screens.InfoBarGenerics import InfoBarSeek, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarShowHide, InfoBarNotifications
from Components.ActionMap import ActionMap, NumberActionMap, HelpableActionMap
from Components.Label import Label
+from Components.Pixmap import Pixmap
from Components.FileList import FileList
from Components.MenuList import MenuList
from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase
@@ -109,10 +110,11 @@ class DVDSummary(Screen):
self["Title"].setText(title)
class DVDOverlay(Screen):
- skin = """"""
def __init__(self, session, args = None):
+ desktop_size = getDesktop(0).size()
+ DVDOverlay.skin = """""" %(desktop_size.width(), desktop_size.height())
Screen.__init__(self, session)
-
+
class ChapterZap(Screen):
skin = """
@@ -182,14 +184,17 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
-
-
+
+
-
+
HasTelext
-
+
+
+
+
Position,ShowHours
@@ -251,9 +256,13 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
self.session.nav.stopService()
self["audioLabel"] = Label("n/a")
self["subtitleLabel"] = Label("")
+ self["angleLabel"] = Label("")
self["chapterLabel"] = Label("")
+ self["anglePix"] = Pixmap()
+ self["anglePix"].hide()
self.last_audioTuple = None
self.last_subtitleTuple = None
+ self.last_angleTuple = None
self.totalChapters = 0
self.currentChapter = 0
self.totalTitles = 0
@@ -273,7 +282,8 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
iPlayableService.evUser+8: self.__chapterUpdated,
iPlayableService.evUser+9: self.__titleUpdated,
iPlayableService.evUser+11: self.__menuOpened,
- iPlayableService.evUser+12: self.__menuClosed
+ iPlayableService.evUser+12: self.__menuClosed,
+ iPlayableService.evUser+13: self.__osdAngleInfoAvail
})
self["DVDPlayerDirectionActions"] = ActionMap(["DirectionActions"],
@@ -316,6 +326,7 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
"dvdAudioMenu": (self.enterDVDAudioMenu, _("(show optional DVD audio menu)")),
"nextAudioTrack": (self.nextAudioTrack, _("switch to the next audio track")),
"nextSubtitleTrack": (self.nextSubtitleTrack, _("switch to the next subtitle language")),
+ "nextAngle": (self.nextAngle, _("switch to the next angle")),
"seekBeginning": self.seekBeginning,
}, -2)
@@ -352,15 +363,12 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
if file.mimetype == "video/x-dvd":
self.dvd_device = devicepath
print "physical dvd found:", self.dvd_device
- self.physicalDVD = True
+ self.physicalDVD = True
self.dvd_filelist = dvd_filelist
self.onFirstExecBegin.append(self.showFileBrowser)
self.service = None
self.in_menu = False
- self.old_aspect = open("/proc/stb/video/aspect", "r").read()
- self.old_policy = open("/proc/stb/video/policy", "r").read()
- self.old_wss = open("/proc/stb/denc/0/wss", "r").read()
def keyNumberGlobal(self, number):
print "You pressed number " + str(number)
@@ -387,9 +395,6 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
def serviceStarted(self): #override InfoBarShowHide function
self.dvdScreen.show()
- subs = self.getServiceInterface("subtitle")
- if subs:
- subs.enableSubtitles(self.dvdScreen.instance, None)
def doEofInternal(self, playing):
if self.in_menu:
@@ -469,6 +474,22 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
if subtitleTuple != self.last_subtitleTuple and not self.in_menu:
self.doShow()
self.last_subtitleTuple = subtitleTuple
+
+ def __osdAngleInfoAvail(self):
+ info = self.getServiceInterface("info")
+ angleTuple = info and info.getInfoObject(iServiceInformation.sUser+8)
+ print "AngleInfoAvail ", repr(angleTuple)
+ if angleTuple:
+ angleString = ""
+ if angleTuple[1] > 1:
+ angleString = "%d / %d" % (angleTuple[0],angleTuple[1])
+ self["anglePix"].show()
+ else:
+ self["anglePix"].hide()
+ self["angleLabel"].setText(angleString)
+ if angleTuple != self.last_angleTuple and not self.in_menu:
+ self.doShow()
+ self.last_angleTuple = angleTuple
def __chapterUpdated(self):
info = self.getServiceInterface("info")
@@ -490,7 +511,7 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
def askLeavePlayer(self):
choices = [(_("Exit"), "exit"), (_("Continue playing"), "play")]
- if not self.physicalDVD:
+ if True or not self.physicalDVD:
choices.insert(1,(_("Return to file browser"), "browser"))
self.session.openWithCallback(self.exitCB, ChoiceBox, title=_("Leave DVD Player?"), list = choices)
@@ -523,6 +544,9 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
def enterDVDMenu(self):
self.sendKey(iServiceKeys.keyUser+7)
+
+ def nextAngle(self):
+ self.sendKey(iServiceKeys.keyUser+8)
def seekBeginning(self):
if self.service:
@@ -588,6 +612,9 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
self.service = self.session.nav.getCurrentService()
print "self.service", self.service
print "cur_dlg", self.session.current_dialog
+ subs = self.getServiceInterface("subtitle")
+ if subs:
+ subs.enableSubtitles(self.dvdScreen.instance, None)
def exitCB(self, answer):
if answer is not None:
@@ -605,11 +632,6 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
pass
def __onClose(self):
- for i in (("/proc/stb/video/aspect", self.old_aspect), ("/proc/stb/video/policy", self.old_policy), ("/proc/stb/denc/0/wss", self.old_wss)):
- try:
- open(i[0], "w").write(i[1])
- except IOError:
- print "restore", i[0], "failed"
self.restore_infobar_seek_config()
self.session.nav.playService(self.oldService)
@@ -683,7 +705,7 @@ def filescan(**kwargs):
ScanPath(path = "", with_subdirs = False),
],
name = "DVD",
- description = "Play DVD",
+ description = _("Play DVD"),
openfnc = filescan_open,
)]