aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-01-26 13:30:26 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-01-26 13:30:26 +0000
commit9c22bd14f76cbc38c14d417dc185cdcdfc610665 (patch)
treeb278e7bbf51e9b9058eebc675475770f5cb20211 /lib
parentbb9ce4897ba4326cd0cdf4b394631c679ba353dc (diff)
downloadenigma2-9c22bd14f76cbc38c14d417dc185cdcdfc610665.tar.gz
enigma2-9c22bd14f76cbc38c14d417dc185cdcdfc610665.zip
follow api changes
Diffstat (limited to 'lib')
-rw-r--r--lib/python/Components/Button.py2
-rw-r--r--lib/python/Components/EventInfo.py12
-rw-r--r--lib/python/Screens/ChannelSelection.py16
-rw-r--r--lib/python/Screens/InfoBar.py6
-rw-r--r--lib/python/Screens/InfoBarGenerics.py206
-rw-r--r--lib/python/Screens/Makefile.am3
-rw-r--r--lib/python/Tools/FuzzyDate.py30
7 files changed, 141 insertions, 134 deletions
diff --git a/lib/python/Components/Button.py b/lib/python/Components/Button.py
index d9226b6d..cb4b4213 100644
--- a/lib/python/Components/Button.py
+++ b/lib/python/Components/Button.py
@@ -17,11 +17,9 @@ class Button(HTMLComponent, GUIComponent, VariableText):
return 0
def disable(self):
-# self.instance.hide()
pass
def enable(self):
-# self.instance.show()
pass
# html:
diff --git a/lib/python/Components/EventInfo.py b/lib/python/Components/EventInfo.py
index 36a5aa4d..de16a173 100644
--- a/lib/python/Components/EventInfo.py
+++ b/lib/python/Components/EventInfo.py
@@ -13,13 +13,13 @@ class EventInfo(PerServiceDisplay):
Next_StartTime = 5
def __init__(self, navcore, now_or_next):
- # listen to evUpdatedEventInfo and evStopService
- # note that evStopService will be called once to establish a known state
+ # listen to evUpdatedEventInfo and evEnd
+ # note that evEnd will be called once to establish a known state
self.now_or_next = now_or_next
PerServiceDisplay.__init__(self, navcore,
{
- pNavigation.evUpdatedEventInfo: self.ourEvent,
- pNavigation.evStopService: self.stopEvent
+ iPlayableService.evUpdatedEventInfo: self.ourEvent,
+ iPlayableService.evEnd: self.stopEvent
})
def ourEvent(self):
@@ -53,8 +53,8 @@ class EventInfoProgress(PerServiceDisplayProgress, EventInfo):
self.now_or_next = now_or_next
PerServiceDisplayProgress.__init__(self, navcore,
{
- pNavigation.evUpdatedEventInfo: self.ourEvent,
- pNavigation.evStopService: self.stopEvent
+ iPlayableService.evUpdatedEventInfo: self.ourEvent,
+ iPlayableService.evEnd: self.stopEvent
})
def update(self, ev):
diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py
index 89bc2154..d66353c9 100644
--- a/lib/python/Screens/ChannelSelection.py
+++ b/lib/python/Screens/ChannelSelection.py
@@ -694,13 +694,13 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect
"cancel": self.cancel,
"ok": self.channelSelected,
})
- self.onShown.append(self.onShow)
+ self.onShown.append(self.__onShown)
self.lastChannelRootTimer = eTimer()
- self.lastChannelRootTimer.timeout.get().append(self.onCreate)
+ self.lastChannelRootTimer.timeout.get().append(self.__onCreate)
self.lastChannelRootTimer.start(100,True)
- def onCreate(self):
+ def __onCreate(self):
self.setTvMode()
self.servicePathTV = [ ]
self.restoreRoot()
@@ -709,7 +709,7 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect
self.setCurrentSelection(lastservice)
self.session.nav.playService(lastservice)
- def onShow(self):
+ def __onShown(self):
self.recallBouquetMode()
ref = self.session.nav.getCurrentlyPlayingServiceReference()
if ref is not None and ref.valid() and ref.getPath() == "":
@@ -887,7 +887,7 @@ class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelS
self.servicelist.setCurrent(lastservice)
self.session.nav.playService(lastservice)
self.servicelist.setPlayableIgnoreService(lastservice)
- self.info.instance.show()
+ self.info.show()
def channelSelected(self): # just return selected service
ref = self.getCurrentSelection()
@@ -907,7 +907,7 @@ class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelS
self.saveRoot()
def closeRadio(self):
- self.info.instance.hide()
+ self.info.hide()
#set previous tv service
lastservice=eServiceReference(config.tv.lastservice.value)
self.session.nav.playService(lastservice)
@@ -917,7 +917,7 @@ class SimpleChannelSelection(ChannelSelectionBase):
def __init__(self, session, title):
ChannelSelectionBase.__init__(self, session)
self.title = title
- self.onShown.append(self.onExecCallback)
+ self.onShown.append(self.__onExecCallback)
self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions"],
{
@@ -927,7 +927,7 @@ class SimpleChannelSelection(ChannelSelectionBase):
"keyTV": self.setModeTv,
})
- def onExecCallback(self):
+ def __onExecCallback(self):
self.session.currentDialog.instance.setTitle(self.title)
self.setModeTv()
diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py
index 147f891b..51e77a8b 100644
--- a/lib/python/Screens/InfoBar.py
+++ b/lib/python/Screens/InfoBar.py
@@ -16,7 +16,7 @@ from Screens.InfoBarGenerics import InfoBarShowHide, \
InfoBarEPG, InfoBarEvent, InfoBarServiceName, InfoBarSeek, InfoBarInstantRecord, \
InfoBarAudioSelection, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, \
InfoBarSubserviceSelection, InfoBarTuner, InfoBarShowMovies, InfoBarTimeshift, \
- InfoBarServiceNotifications
+ InfoBarServiceNotifications, InfoBarPVRState
from Screens.HelpMenu import HelpableScreen, HelpMenu
@@ -65,7 +65,7 @@ class InfoBar(Screen, InfoBarShowHide, InfoBarPowerKey,
class MoviePlayer(Screen, InfoBarShowHide, InfoBarPowerKey, \
InfoBarMenu, \
InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
- InfoBarServiceNotifications):
+ InfoBarServiceNotifications, InfoBarPVRState):
def __init__(self, session, service):
Screen.__init__(self, session)
@@ -78,7 +78,7 @@ class MoviePlayer(Screen, InfoBarShowHide, InfoBarPowerKey, \
for x in HelpableScreen, InfoBarShowHide, InfoBarPowerKey, InfoBarMenu, \
InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \
InfoBarAudioSelection, InfoBarNotifications, \
- InfoBarServiceNotifications:
+ InfoBarServiceNotifications, InfoBarPVRState:
x.__init__(self)
self["CurrentTime"] = ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
index 2da8a4bd..f40feb3f 100644
--- a/lib/python/Screens/InfoBarGenerics.py
+++ b/lib/python/Screens/InfoBarGenerics.py
@@ -41,7 +41,7 @@ from Menu import MainMenu, mdom
class InfoBarDish:
def __init__(self):
self.dishDialog = self.session.instantiateDialog(Dish)
- self.onShown.append(self.dishDialog.instance.show)
+ self.onShown.append(self.dishDialog.show)
class InfoBarShowHide:
""" InfoBar show/hide control, accepts toggleShow and hide actions, might start
@@ -58,49 +58,56 @@ class InfoBarShowHide:
"hide": self.hide,
})
- self.state = self.STATE_SHOWN
+ self.__state = self.STATE_SHOWN
+ self.__locked = 0
self.onExecBegin.append(self.show)
- self.onClose.append(self.delHideTimer)
self.hideTimer = eTimer()
self.hideTimer.timeout.get().append(self.doTimerHide)
self.hideTimer.start(5000, True)
+
+ self.onShow.append(self.__onShow)
+ self.onHide.append(self.__onHide)
- def delHideTimer(self):
- del self.hideTimer
+ def __onShow(self):
+ self.__state = self.STATE_SHOWN
+ self.startHideTimer()
+
+ def startHideTimer(self):
+ if self.__state == self.STATE_SHOWN and not self.__locked:
+ self.hideTimer.start(5000, True)
- def hide(self):
- self.instance.hide()
-
- def show(self):
- self.state = self.STATE_SHOWN
- self.hideTimer.start(5000, True)
+ def __onHide(self):
+ self.__state = self.STATE_HIDDEN
def doTimerHide(self):
self.hideTimer.stop()
- if self.state == self.STATE_SHOWN:
- self.instance.hide()
- self.state = self.STATE_HIDDEN
+ if self.__state == self.STATE_SHOWN:
+ self.hide()
def toggleShow(self):
- if self.state == self.STATE_SHOWN:
- self.instance.hide()
- #pls check animation support, sorry
-# self.startHide()
+ if self.__state == self.STATE_SHOWN:
+ self.hide()
self.hideTimer.stop()
- self.state = self.STATE_HIDDEN
- elif self.state == self.STATE_HIDDEN:
- self.instance.show()
+ elif self.__state == self.STATE_HIDDEN:
self.show()
-
- def startShow(self):
- self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
- self.state = self.STATE_SHOWN
+
+ def lockShow(self):
+ self.__locked = self.__locked + 1
+ self.show()
- def startHide(self):
- self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100)
- self.state = self.STATE_HIDDEN
+ def unlockShow(self):
+ self.__locked = self.__locked - 1
+ self.startHideTimer()
+
+# def startShow(self):
+# self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
+# self.__state = self.STATE_SHOWN
+#
+# def startHide(self):
+# self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100)
+# self.__state = self.STATE_HIDDEN
class NumberZap(Screen):
def quit(self):
@@ -202,7 +209,6 @@ class InfoBarNumberZap:
# print "You pressed number " + str(number)
if number == 0:
self.servicelist.recallPrevService()
- self.instance.show()
self.show()
else:
self.session.openWithCallback(self.numberEntered, NumberZap, number)
@@ -265,27 +271,25 @@ class InfoBarChannelSelection:
"zapUp": (self.zapUp, _("next channel")),
"zapDown": (self.zapDown, _("previous channel")),
})
-
- def switchChannelUp(self):
+
+ def switchChannelUp(self):
self.servicelist.moveUp()
self.session.execDialog(self.servicelist)
- def switchChannelDown(self):
+ def switchChannelDown(self):
self.servicelist.moveDown()
self.session.execDialog(self.servicelist)
def zapUp(self):
self.servicelist.moveUp()
self.servicelist.zap()
- self.instance.show()
self.show()
def zapDown(self):
self.servicelist.moveDown()
self.servicelist.zap()
- self.instance.show()
self.show()
-
+
class InfoBarMenu:
""" Handles a menu action, to open the (main) menu """
def __init__(self):
@@ -451,30 +455,33 @@ class InfoBarServiceName:
class InfoBarSeek:
"""handles actions like seeking, pause"""
- # ispause, isff, issm, skip
- SEEK_STATE_PLAY = (0, 0, 0, 0)
- SEEK_STATE_PAUSE = (1, 0, 0, 0)
- SEEK_STATE_FF_2X = (0, 2, 0, 0)
- SEEK_STATE_FF_4X = (0, 4, 0, 0)
- SEEK_STATE_FF_8X = (0, 8, 0, 0)
- SEEK_STATE_FF_32X = (0, 4, 0, 32)
- SEEK_STATE_FF_64X = (0, 4, 0, 64)
- SEEK_STATE_FF_128X = (0, 4, 0, 128)
+ # ispause, isff, issm
+ SEEK_STATE_PLAY = (0, 0, 0, "")
+ SEEK_STATE_PAUSE = (1, 0, 0, "||")
+ SEEK_STATE_FF_2X = (0, 2, 0, ">> 2x")
+ SEEK_STATE_FF_4X = (0, 4, 0, ">> 4x")
+ SEEK_STATE_FF_8X = (0, 8, 0, ">> 8x")
+ SEEK_STATE_FF_32X = (0, 32, 0, ">> 32x")
+ SEEK_STATE_FF_64X = (0, 64, 0, ">> 64x")
+ SEEK_STATE_FF_128X = (0, 128, 0, ">> 128x")
- SEEK_STATE_BACK_4X = (0, 0, 0, -4)
- SEEK_STATE_BACK_32X = (0, 0, 0, -32)
- SEEK_STATE_BACK_64X = (0, 0, 0, -64)
- SEEK_STATE_BACK_128X = (0, 0, 0, -128)
+ SEEK_STATE_BACK_4X = (0, -4, 0, "<< 4x")
+ SEEK_STATE_BACK_32X = (0, -32, 0, "<< 32x")
+ SEEK_STATE_BACK_64X = (0, -64, 0, "<< 64x")
+ SEEK_STATE_BACK_128X = (0, -128, 0, "<< 128x")
- SEEK_STATE_SM_HALF = (0, 0, 2, 0)
- SEEK_STATE_SM_QUARTER = (0, 0, 4, 0)
- SEEK_STATE_SM_EIGHTH = (0, 0, 8, 0)
+ SEEK_STATE_SM_HALF = (0, 0, 2, "/2")
+ SEEK_STATE_SM_QUARTER = (0, 0, 4, "/4")
+ SEEK_STATE_SM_EIGHTH = (0, 0, 8, "/8")
def __init__(self):
self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
{
- pNavigation.evSeekableStatusChanged: self.__seekableStatusChanged,
- pNavigation.evNewService: self.__serviceStarted
+ iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged,
+ iPlayableService.evStart: self.__serviceStarted,
+
+ iPlayableService.evEOF: self.__evEOF,
+ iPlayableService.evSOF: self.__evSOF,
})
self["SeekActions"] = HelpableActionMap(self, "InfobarSeekActions",
{
@@ -489,10 +496,7 @@ class InfoBarSeek:
# give them a little more priority to win over color buttons
self.seekstate = self.SEEK_STATE_PLAY
- self.seekTimer = eTimer()
- self.seekTimer.timeout.get().append(self.seekTimerFired)
- self.skipinterval = 500 # 500ms skip interval
- self.onClose.append(self.delSeekTimer)
+ self.onClose.append(self.delTimer)
self.fwdtimer = False
self.fwdKeyTimer = eTimer()
@@ -501,6 +505,10 @@ class InfoBarSeek:
self.rwdtimer = False
self.rwdKeyTimer = eTimer()
self.rwdKeyTimer.timeout.get().append(self.rwdTimerFire)
+
+ self.onPlayStateChanged = [ ]
+
+ self.lockedBecauseOfSkipping = False
def up(self):
pass
@@ -508,21 +516,10 @@ class InfoBarSeek:
def down(self):
pass
- def delSeekTimer(self):
- del self.seekTimer
+ def delTimer(self):
del self.fwdKeyTimer
del self.rwdKeyTimer
- def seekTimerFired(self):
- self.seekbase += self.skipmode * self.skipinterval
-
- # check if we bounced against the beginning of the file
- if self.seekbase < 0:
- self.seekbase = 0;
- self.setSeekState(self.SEEK_STATE_PLAY)
-
- self.doSeek(self.seekbase)
-
def isSeekable(self):
service = self.session.nav.getCurrentService()
if service is None:
@@ -547,7 +544,6 @@ class InfoBarSeek:
def setSeekState(self, state):
service = self.session.nav.getCurrentService()
- self.seekTimer.stop()
if service is None:
return False
@@ -565,35 +561,17 @@ class InfoBarSeek:
oldstate = self.seekstate
self.seekstate = state
- for i in range(4):
+ for i in range(3):
if oldstate[i] != self.seekstate[i]:
- (self.session.nav.pause, pauseable.setFastForward, pauseable.setSlowMotion, self.setSkipMode)[i](self.seekstate[i])
+ (self.session.nav.pause, pauseable.setFastForward, pauseable.setSlowMotion)[i](self.seekstate[i])
- return True
-
- def setSkipMode(self, skipmode):
- print "setskipmode", skipmode
- self.skipmode = skipmode
- if skipmode == 0:
- self.seekTimer.stop()
- else:
- self.seekTimer.start(500)
-
- service = self.session.nav.getCurrentService()
- if service is None:
- return
+ for c in self.onPlayStateChanged:
+ c(self.seekstate)
- seekable = service.seek()
- if seekable is None:
- return
+ self.checkSkipShowHideLock()
- if skipmode:
- seekable.setTrickmode(1)
- else:
- seekable.setTrickmode(0)
+ return True
- self.seekbase = seekable.getPlayPosition()[1] / 90
-
def pauseService(self):
if self.seekstate == self.SEEK_STATE_PAUSE:
print "pause, but in fact unpause"
@@ -706,6 +684,36 @@ class InfoBarSeek:
def rwdSeekTo(self, minutes):
print "rwdSeekTo"
self.fwdSeekTo(0 - minutes)
+
+ def checkSkipShowHideLock(self):
+ wantlock = self.seekstate != self.SEEK_STATE_PLAY
+
+ if self.lockedBecauseOfSkipping and not wantlock:
+ self.unlockShow()
+ self.lockedBecauseOfSkipping = False
+
+ if wantlock and not self.lockedBecauseOfSkipping:
+ self.lockShow()
+ self.lockedBecauseOfSkipping = True
+
+ def __evEOF(self):
+ self.setSeekState(self.SEEK_STATE_PAUSE)
+
+ def __evSOF(self):
+ self.setSeekState(self.SEEK_STATE_PLAY)
+
+from Screens.PVRState import PVRState
+
+class InfoBarPVRState:
+ def __init__(self):
+ self.onPlayStateChanged.append(self.__playStateChanged)
+ self.pvrStateDialog = self.session.instantiateDialog(PVRState)
+ self.onShow.append(self.pvrStateDialog.show)
+ self.onHide.append(self.pvrStateDialog.hide)
+
+ def __playStateChanged(self, state):
+ playstateString = state[3]
+ self.pvrStateDialog["state"].setText(playstateString)
class InfoBarShowMovies:
@@ -768,7 +776,7 @@ class InfoBarTimeshift:
self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
{
- pNavigation.evSeekableStatusChanged: self.__seekableStatusChanged
+ iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged
})
def getTimeshift(self):
@@ -1051,13 +1059,13 @@ class InfoBarAdditionalInfo:
def gotServiceEvent(self, ev):
service = self.session.nav.getCurrentService()
- if ev == pNavigation.evUpdatedEventInfo:
+ if ev == iPlayableService.evUpdatedEventInfo:
self.checkSubservices(service)
self.checkFormat(service)
- elif ev == pNavigation.evUpdatedInfo:
+ elif ev == iPlayableService.evUpdatedInfo:
self.checkCrypted(service)
self.checkDolby(service)
- elif ev == pNavigation.evStopService:
+ elif ev == iPlayableService.evEnd:
self.hideSubServiceIndication()
self["CryptActive"].hideWidget()
self["DolbyActive"].hideWidget()
@@ -1087,7 +1095,7 @@ class InfoBarServiceNotifications:
def __init__(self):
self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
{
- pNavigation.evEnd: self.serviceHasEnded
+ iPlayableService.evEnd: self.serviceHasEnded
})
def serviceHasEnded(self):
diff --git a/lib/python/Screens/Makefile.am b/lib/python/Screens/Makefile.am
index 95f3a04e..2629315f 100644
--- a/lib/python/Screens/Makefile.am
+++ b/lib/python/Screens/Makefile.am
@@ -8,4 +8,5 @@ install_PYTHON = \
EpgSelection.py EventView.py Mute.py Standby.py ServiceInfo.py \
AudioSelection.py InfoBarGenerics.py HelpMenu.py Wizard.py __init__.py \
Dish.py SubserviceSelection.py LanguageSelection.py StartWizard.py \
- TutorialWizard.py PluginBrowser.py MinuteInput.py Scart.py
+ TutorialWizard.py PluginBrowser.py MinuteInput.py Scart.py PVRState.py
+
diff --git a/lib/python/Tools/FuzzyDate.py b/lib/python/Tools/FuzzyDate.py
index c5055baf..121b85b8 100644
--- a/lib/python/Tools/FuzzyDate.py
+++ b/lib/python/Tools/FuzzyDate.py
@@ -22,18 +22,18 @@ def FuzzyTime(t):
return (date, timeres)
if __name__ == "__main__":
- print "now: %s %s" % FuzzyDate(time.time())
- print "1 day: %s %s" % FuzzyDate(time.time() + 86400)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *2)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *3)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *4)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *5)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *6)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *7)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *8)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *9)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *10)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *11)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *12)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *13)
- print "2 days: %s %s" % FuzzyDate(time.time() + 86400 *14)
+ print "now: %s %s" % FuzzyTime(time.time())
+ print "1 day: %s %s" % FuzzyTime(time.time() + 86400)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *2)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *3)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *4)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *5)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *6)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *7)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *8)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *9)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *10)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *11)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *12)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *13)
+ print "2 days: %s %s" % FuzzyTime(time.time() + 86400 *14)