fixes bug #436 (again)
[enigma2.git] / lib / python / Components / NimManager.py
index 6af4c52c6f29f98b0734d9156ba4bd8e9fabfebb..c68e9404d8d1bf83ec26a3a44e93f6d69dce1431 100644 (file)
@@ -1257,9 +1257,19 @@ def InitNimManager(nimmgr):
        def tunerTypeChanged(nimmgr, configElement):
                fe_id = configElement.fe_id
                print "tunerTypeChanged feid %d to mode %s" % (fe_id, configElement.value)
-               open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
+               try:
+                       oldvalue = open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "r").readline()
+                       open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write("0")
+               except:
+                       print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
                frontend = eDVBResourceManager.getInstance().allocateRawChannel(fe_id).getFrontend()
+               frontend.closeFrontend()
+               open("/proc/stb/frontend/%d/mode" % (fe_id), "w").write(configElement.value)
                frontend.reopenFrontend()
+               try:
+                       open("/sys/module/dvb_core/parameters/dvb_shutdown_timeout", "w").write(oldvalue)
+               except:
+                       print "[info] no /sys/module/dvb_core/parameters/dvb_shutdown_timeout available"
                nimmgr.enumerateNIMs()
        
        empty_slots = 0