stop service before scanning
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index 22cba7a21f5d94963e60f868ec3d0c8dd4ddc40b..1ef399829a06caab7ed483a229643521c7558318 100644 (file)
@@ -2,7 +2,8 @@ from Screen import Screen
 from Components.ActionMap import ActionMap
 from Components.ActionMap import NumberActionMap
 from Components.Label import Label
-from Components.config import configfile
+from Components.config import configfile, configsequencearg
+from Components.config import config, configElement, ConfigSubsection, configSequence
 from ChannelSelection import ChannelSelection
 
 from Components.ServiceName import ServiceName
@@ -19,6 +20,7 @@ from Screens.Standby import Standby
 from enigma import *
 
 import time
+import os
 
 # hack alert!
 from Menu import MainMenu, mdom
@@ -26,8 +28,10 @@ from Menu import MainMenu, mdom
 class InfoBarVolumeControl:
        """Volume control, handles volUp, volDown, volMute actions and display 
        a corresponding dialog"""
-       
        def __init__(self):
+               config.audio = ConfigSubsection()
+               config.audio.volume = configElement("config.audio.volume", configSequence, [5], configsequencearg.get("INTEGER", (0, 100)))
+
                self["VolumeActions"] = ActionMap( ["InfobarVolumeActions"] ,
                        {
                                "volumeUp": self.volUp,
@@ -40,17 +44,27 @@ class InfoBarVolumeControl:
 
                self.hideVolTimer = eTimer()
                self.hideVolTimer.timeout.get().append(self.volHide)
+
+               vol = config.audio.volume.value[0]
+               self.volumeDialog.setValue(vol)
+               eDVBVolumecontrol.getInstance().setVolume(vol, vol)
        
+       def volSave(self):
+               config.audio.volume.value = eDVBVolumecontrol.getInstance().getVolume()
+               config.audio.volume.save()
+               
        def     volUp(self):
                eDVBVolumecontrol.getInstance().volumeUp()
                self.volumeDialog.instance.show()
                self.volumeDialog.setValue(eDVBVolumecontrol.getInstance().getVolume())
+               self.volSave()
                self.hideVolTimer.start(3000)
 
        def     volDown(self):
                eDVBVolumecontrol.getInstance().volumeDown()
                self.volumeDialog.instance.show()
                self.volumeDialog.setValue(eDVBVolumecontrol.getInstance().getVolume())
+               self.volSave()
                self.hideVolTimer.start(3000)
                
        def volHide(self):
@@ -185,17 +199,8 @@ class InfoBarPowerKey:
                        self.session.open(Standby, self)
 
        def quit(self):
-               #       self.session.open(Standby, self)
-               ref = self.session.nav.getCurrentlyPlayingServiceReference()
-               if ref is not None:
-                       refstr = ref.toString()
-               else:
-                       refstr = ""     
-               
-               #configfile.save()
                quitMainloop(0)
 
-
 class InfoBarNumberZap:
        """ Handles an initial number for NumberZapping """
        def __init__(self):
@@ -368,6 +373,12 @@ class InfoBarInstantRecord:
                        self.startInstantRecording()
 
        def instantRecord(self):
+               try:
+                       stat = os.stat("/hdd/movies")
+               except:
+                       self.session.open(MessageBox, "No HDD found!")
+                       return
+       
                if self.recording != None:
                        self.session.openWithCallback(self.recordQuestionCallback, MessageBox, "Do you want to stop the current\n(instant) recording?")
                else: