git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
updated swedish language
[enigma2.git]
/
RecordTimer.py
diff --git
a/RecordTimer.py
b/RecordTimer.py
index 9a874a4c066c24a7df678e4fbfe974f4f13095f4..119864374e574c10bdd960d7ba7ded0e2bdd94e1 100644
(file)
--- a/
RecordTimer.py
+++ b/
RecordTimer.py
@@
-7,6
+7,8
@@
from Components.config import config
import timer
import xml.dom.minidom
import timer
import xml.dom.minidom
+from enigma import quitMainloop
+
from Screens.MessageBox import MessageBox
from Screens.SubserviceSelection import SubserviceSelection
import NavigationInstance
from Screens.MessageBox import MessageBox
from Screens.SubserviceSelection import SubserviceSelection
import NavigationInstance
@@
-34,9
+36,14
@@
def parseEvent(ev):
end += config.recording.margin_after.value[0] * 60
return (begin, end, name, description, eit)
end += config.recording.margin_after.value[0] * 60
return (begin, end, name, description, eit)
+class AFTEREVENT:
+ NONE = 0
+ STANDBY = 1
+ DEEPSTANDBY = 2
+
# please do not translate log messages
class RecordTimerEntry(timer.TimerEntry):
# please do not translate log messages
class RecordTimerEntry(timer.TimerEntry):
- def __init__(self, serviceref, begin, end, name, description, eit, disabled = False, justplay = False):
+ def __init__(self, serviceref, begin, end, name, description, eit, disabled = False, justplay = False
, afterEvent = AFTEREVENT.NONE
):
timer.TimerEntry.__init__(self, int(begin), int(end))
assert isinstance(serviceref, ServiceReference)
timer.TimerEntry.__init__(self, int(begin), int(end))
assert isinstance(serviceref, ServiceReference)
@@
-51,6
+58,8
@@
class RecordTimerEntry(timer.TimerEntry):
self.record_service = None
self.start_prepare = 0
self.justplay = justplay
self.record_service = None
self.start_prepare = 0
self.justplay = justplay
+ self.afterEvent = afterEvent
+ self.session = None
self.log_entries = []
self.resetState()
self.log_entries = []
self.resetState()
@@
-109,7
+118,7
@@
class RecordTimerEntry(timer.TimerEntry):
f.write(self.description + "\n")
f.write(str(self.begin) + "\n")
f.close()
f.write(self.description + "\n")
f.write(str(self.begin) + "\n")
f.close()
- except:
+ except
IOError
:
self.log(4, "failed to write meta information")
return True
self.log(4, "failed to write meta information")
return True
@@
-174,6
+183,11
@@
class RecordTimerEntry(timer.TimerEntry):
if not self.justplay:
self.record_service.stop()
self.record_service = None
if not self.justplay:
self.record_service.stop()
self.record_service = None
+ if self.afterEvent == AFTEREVENT.STANDBY:
+ if self.session is not None:
+ self.session.open(Standby, self)
+ elif self.afterEvent == AFTEREVENT.DEEPSTANDBY:
+ quitMainloop(1)
return True
def getNextActivation(self):
return True
def getNextActivation(self):
@@
-210,6
+224,8
@@
def createTimer(xml):
repeated = xml.getAttribute("repeated").encode("utf-8")
disabled = long(xml.getAttribute("disabled") or "0")
justplay = long(xml.getAttribute("justplay") or "0")
repeated = xml.getAttribute("repeated").encode("utf-8")
disabled = long(xml.getAttribute("disabled") or "0")
justplay = long(xml.getAttribute("justplay") or "0")
+ afterevent = str(xml.getAttribute("afterevent") or "nothing")
+ afterevent = { "nothing": AFTEREVENT.NONE, "standby": AFTEREVENT.STANDBY, "deepstandby": AFTEREVENT.DEEPSTANDBY }[afterevent]
if xml.hasAttribute("eit") and xml.getAttribute("eit") != "None":
eit = long(xml.getAttribute("eit"))
else:
if xml.hasAttribute("eit") and xml.getAttribute("eit") != "None":
eit = long(xml.getAttribute("eit"))
else:
@@
-217,7
+233,7
@@
def createTimer(xml):
name = xml.getAttribute("name").encode("utf-8")
#filename = xml.getAttribute("filename").encode("utf-8")
name = xml.getAttribute("name").encode("utf-8")
#filename = xml.getAttribute("filename").encode("utf-8")
- entry = RecordTimerEntry(serviceref, begin, end, name, description, eit, disabled, justplay)
+ entry = RecordTimerEntry(serviceref, begin, end, name, description, eit, disabled, justplay
, afterevent
)
entry.repeated = int(repeated)
for l in elementsWithTag(xml.childNodes, "log"):
entry.repeated = int(repeated)
for l in elementsWithTag(xml.childNodes, "log"):
@@
-242,7
+258,7
@@
class RecordTimer(timer.Timer):
def isRecording(self):
isRunning = False
for timer in self.timer_list:
def isRecording(self):
isRunning = False
for timer in self.timer_list:
- if timer.isRunning():
+ if timer.isRunning()
and not timer.justplay
:
isRunning = True
return isRunning
isRunning = True
return isRunning
@@
-311,6
+327,7
@@
class RecordTimer(timer.Timer):
list.append(' repeated="' + str(int(timer.repeated)) + '"')
list.append(' name="' + str(stringToXML(timer.name)) + '"')
list.append(' description="' + str(stringToXML(timer.description)) + '"')
list.append(' repeated="' + str(int(timer.repeated)) + '"')
list.append(' name="' + str(stringToXML(timer.name)) + '"')
list.append(' description="' + str(stringToXML(timer.description)) + '"')
+ list.append(' afterevent="' + str(stringToXML({ AFTEREVENT.NONE: "nothing", AFTEREVENT.STANDBY: "standby", AFTEREVENT.DEEPSTANDBY: "deepstandby" }[timer.afterEvent])) + '"')
if timer.eit is not None:
list.append(' eit="' + str(timer.eit) + '"')
list.append(' disabled="' + str(int(timer.disabled)) + '"')
if timer.eit is not None:
list.append(' eit="' + str(timer.eit) + '"')
list.append(' disabled="' + str(int(timer.disabled)) + '"')
@@
-343,24
+360,29
@@
class RecordTimer(timer.Timer):
def isInTimer(self, eventid, begin, duration, service):
time_match = 0
def isInTimer(self, eventid, begin, duration, service):
time_match = 0
+ chktime = None
+ chktimecmp = None
+ chktimecmp_end = None
+ end = begin + duration
for x in self.timer_list:
if str(x.service_ref) == str(service):
#if x.eit is not None and x.repeated == 0:
# if x.eit == eventid:
# return duration
if x.repeated != 0:
for x in self.timer_list:
if str(x.service_ref) == str(service):
#if x.eit is not None and x.repeated == 0:
# if x.eit == eventid:
# return duration
if x.repeated != 0:
- chktime = localtime(begin)
+ if chktime is None:
+ chktime = localtime(begin)
+ chktimecmp = chktime.tm_wday * 1440 + chktime.tm_hour * 60 + chktime.tm_min
+ chktimecmp_end = chktimecmp + (duration / 60)
time = localtime(x.begin)
time = localtime(x.begin)
- chktimecmp = chktime.tm_wday * 1440 + chktime.tm_hour * 60 + chktime.tm_min
for y in range(7):
if x.repeated & (2 ** y):
timecmp = y * 1440 + time.tm_hour * 60 + time.tm_min
if timecmp <= chktimecmp < (timecmp + ((x.end - x.begin) / 60)):
time_match = ((timecmp + ((x.end - x.begin) / 60)) - chktimecmp) * 60
for y in range(7):
if x.repeated & (2 ** y):
timecmp = y * 1440 + time.tm_hour * 60 + time.tm_min
if timecmp <= chktimecmp < (timecmp + ((x.end - x.begin) / 60)):
time_match = ((timecmp + ((x.end - x.begin) / 60)) - chktimecmp) * 60
- elif chktimecmp <= timecmp <
(chktimecmp + (duration / 60))
:
- time_match = (
(chktimecmp + (duration / 60))
- timecmp) * 60
+ elif chktimecmp <= timecmp <
chktimecmp_end
:
+ time_match = (
chktimecmp_end
- timecmp) * 60
else: #if x.eit is None:
else: #if x.eit is None:
- end = begin + duration
if begin <= x.begin <= end:
diff = end - x.begin
if time_match < diff:
if begin <= x.begin <= end:
diff = end - x.begin
if time_match < diff: