from Components.ServiceName import ServiceName
from Components.EventInfo import EventInfo, EventInfoProgress
from Components.Clock import Clock
+from Components.Input import Input
from ServiceReference import ServiceReference
from EpgSelection import EPGSelection
from Screens.MessageBox import MessageBox
from Screens.ChoiceBox import ChoiceBox
+from Screens.InputBox import InputBox
from Screens.Dish import Dish
from Screens.Standby import Standby
from Screens.EventView import EventViewEPGSelect, EventViewSimple
# try to get event info
event = None
- if limitEvent:
- try:
- service = self.session.nav.getCurrentService()
- epg = eEPGCache.getInstance()
- event = epg.lookupEventTime(serviceref, -1, 0)
- if event is None:
- info = service.info()
- ev = info.getEvent(0)
- event = ev
- except:
- pass
+ try:
+ service = self.session.nav.getCurrentService()
+ epg = eEPGCache.getInstance()
+ event = epg.lookupEventTime(serviceref, -1, 0)
if event is None:
- self.session.open(MessageBox, _("No event info found, recording indefinitely."), MessageBox.TYPE_INFO)
+ info = service.info()
+ ev = info.getEvent(0)
+ event = ev
+ except:
+ pass
+ begin = time.time()
+ end = time.time() + 3600 * 10
+ name = "instant record"
+ description = ""
+ eventid = None
+
if event is not None:
- data = parseEvent(event)
- begin = time.time()
- end = begin + 3600 * 10
- data = (begin, end, data[2], data[3], data[4])
+ curEvent = parseEvent(event)
+ name = curEvent[2]
+ description = curEvent[3]
+ eventid = curEvent[4]
+ if limitEvent:
+ end = curEvent[1]
else:
- data = (time.time(), time.time() + 3600 * 10, "instant record", "", None)
+ if limitEvent:
+ self.session.open(MessageBox, _("No event info found, recording indefinitely."), MessageBox.TYPE_INFO)
+
+ data = (begin, end, name, description, eventid)
- # fix me, description.
self.recording = self.session.nav.recordWithTimer(serviceref, *data)
self.recording.dontSave = True
return
if self.isInstantRecordRunning():
- self.stopCurrentRecording()
+ if answer[1] == "manualduration":
+ self.session.openWithCallback(self.inputCallback, InputBox, title=_("How many minutes do you want to record?"), text="5", maxSize=False, type=Input.NUMBER)
+ else:
+ self.stopCurrentRecording()
else:
limitEvent = False
if answer[1] == "event":
limitEvent = True
+ if answer[1] == "manualduration":
+ self.session.openWithCallback(self.inputCallback, InputBox, title=_("How many minutes do you want to record?"), text="5", maxSize=False, type=Input.NUMBER)
self.startInstantRecording(limitEvent = limitEvent)
+ def inputCallback(self, value):
+ if value is not None:
+ print "stopping recording after", int(value), "minutes."
+ if self.recording is not None:
+ self.recording.end = time.time() + 60 * int(value)
+ self.session.nav.RecordTimer.timeChanged(self.recording)
+
def instantRecord(self):
try:
stat = os.stat(resolveFilename(SCOPE_HDD))
return
if self.isInstantRecordRunning():
- self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=_("Do you want to stop the current\n(instant) recording?"), list=[(_("yes"), "yes"), (_("no"), "no")])
+ self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=_("A recording is currently running.\nWhat do you want to do?"), list=[(_("stop recording"), "yes"), (_("enter recording duration"), "manualduration"), (_("do nothing"), "no")])
# self.session.openWithCallback(self.recordQuestionCallback, MessageBox, _("Do you want to stop the current\n(instant) recording?"))
else:
- self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=_("Do you want to stop the current\n(instant) recording?"), list=[(_("record indefinitely"), "indefinitely"), (_("stop after current event"), "event"), (_("don't record"), "no")])
+ self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=_("Start recording?"), list=[(_("record indefinitely"), "indefinitely"), (_("stop after current event"), "event"), (_("enter recording duration"), "manualduration"),(_("don't record"), "no")])
#self.session.openWithCallback(self.recordQuestionCallback, MessageBox, _("Start recording?"))
from Screens.AudioSelection import AudioSelection