servicemp3.cpp: more simple/flexible streaming detection
[enigma2.git] / lib / python / Tools / HardwareInfo.py
index 38cccb577cb08521abaaed49365271f6e045aaa2..e72d29124d6b3389769ece725c1c0627c5306a79 100644 (file)
@@ -1,10 +1,34 @@
 class HardwareInfo:
 class HardwareInfo:
+       device_name = None
+
        def __init__(self):
        def __init__(self):
-               self.device = "unknown"
-               file = open("/proc/stb/info/model", "r")
-               self.device = file.readline().strip()
-               
+               if HardwareInfo.device_name is not None:
+#                      print "using cached result"
+                       return
+
+               HardwareInfo.device_name = "unknown"
+               try:
+                       file = open("/proc/stb/info/model", "r")
+                       HardwareInfo.device_name = file.readline().strip()
+                       file.close()
+               except:
+                       print "----------------"
+                       print "you should upgrade to new drivers for the hardware detection to work properly"
+                       print "----------------"
+                       print "fallback to detect hardware via /proc/cpuinfo!!"
+                       try:
+                               rd = open("/proc/cpuinfo", "r").read()
+                               if rd.find("Brcm4380 V4.2") != -1:
+                                       HardwareInfo.device_name = "dm8000"
+                                       print "dm8000 detected!"
+                               elif rd.find("Brcm7401 V0.0") != -1:
+                                       HardwareInfo.device_name = "dm800"
+                                       print "dm800 detected!"
+                               elif rd.find("MIPS 4KEc V4.8") != -1:
+                                       HardwareInfo.device_name = "dm7025"
+                                       print "dm7025 detected!"
+                       except:
+                               pass
+
        def get_device_name(self):
        def get_device_name(self):
-               return self.device
-       
-       device_name = property(get_device_name)
\ No newline at end of file
+               return HardwareInfo.device_name