statially store detected hardware type; it's unlikely to change at runtime
authorFelix Domke <tmbinc@elitedvb.net>
Tue, 9 Jun 2009 00:34:47 +0000 (02:34 +0200)
committerFelix Domke <tmbinc@elitedvb.net>
Tue, 9 Jun 2009 00:34:47 +0000 (02:34 +0200)
lib/python/Tools/HardwareInfo.py

index 9fb17dacca233e12abbdcf05cc2b6bd99a6202a3..612a565f34cfcd2165fd387764b52f52fed89d7d 100644 (file)
@@ -1,9 +1,15 @@
 class HardwareInfo:
+       device_name = None
+
        def __init__(self):
-               self.device = "unknown"
+               if HardwareInfo.device_name is not None:
+                       print "using cached result"
+                       return
+
+               HardwareInfo.device_name = "unknown"
                try:
                        file = open("/proc/stb/info/model", "r")
-                       self.device = file.readline().strip()
+                       HardwareInfo.device_name = file.readline().strip()
                        file.close()
                except:
                        print "----------------"
@@ -13,19 +19,16 @@ class HardwareInfo:
                        try:
                                rd = open("/proc/cpuinfo", "r").read()
                                if rd.find("Brcm4380 V4.2") != -1:
-                                       self.device = "dm8000"
+                                       HardwareInfo.device_name = "dm8000"
                                        print "dm8000 detected!"
                                elif rd.find("Brcm7401 V0.0") != -1:
-                                       self.device = "dm800"
+                                       HardwareInfo.device_name = "dm800"
                                        print "dm800 detected!"
                                elif rd.find("MIPS 4KEc V4.8") != -1:
-                                       self.device = "dm7025"
+                                       HardwareInfo.device_name = "dm7025"
                                        print "dm7025 detected!"
                        except:
                                pass
 
        def get_device_name(self):
-               return self.device
-       
-       device_name = property(get_device_name)
-
+               return HardwareInfo.device_name