entering recording duration for instant records is now possible
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Thu, 2 Mar 2006 02:54:17 +0000 (02:54 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Thu, 2 Mar 2006 02:54:17 +0000 (02:54 +0000)
lib/python/Screens/InfoBarGenerics.py
lib/python/Screens/InputBox.py

index 1f49c5db7b073ed9fa52a07956d8753ce028cfbe..0ef08d4313e5b5eb757b817c5e241d673a91dc7c 100644 (file)
@@ -12,12 +12,14 @@ from Components.BlinkingPixmap import BlinkingPixmapConditional
 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
@@ -1052,13 +1054,25 @@ class InfoBarInstantRecord:
                        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))
@@ -1067,10 +1081,10 @@ class InfoBarInstantRecord:
                        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=_("Start 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
index 6771a517d70aa9471f0db440b8a46cd295e5c0ac..57745ca75bddb62b1cd03582596a7ff7e70a4fef 100644 (file)
@@ -18,7 +18,7 @@ class InputBox(Screen):
                self["actions"] = NumberActionMap(["WizardActions", "InputActions"], 
                {
                        "ok": self.go,
-                       "back": self.close,
+                       "back": self.cancel,
                        "left": self.keyLeft,
                        "right": self.keyRight,
                        "1": self.keyNumberGlobal,