add support for cyclic garbage collection to eTimer and eSocketNotifier
[vuplus_dvbapp] / lib / python / Components / Sources / FrontendStatus.py
index e1623ae..141bd8a 100644 (file)
@@ -9,7 +9,7 @@ class FrontendStatus(Source):
                self.frontend_source = frontend_source
                self.invalidate()
                self.poll_timer = eTimer()
                self.frontend_source = frontend_source
                self.invalidate()
                self.poll_timer = eTimer()
-               self.poll_timer.timeout.get().append(self.updateFrontendStatus)
+               self.poll_timer.callback.append(self.updateFrontendStatus)
                self.poll_timer.start(update_interval)
 
        def invalidate(self):
                self.poll_timer.start(update_interval)
 
        def invalidate(self):
@@ -29,11 +29,11 @@ class FrontendStatus(Source):
 
        def getFrontendStatus(self):
                if self.frontend_source:
 
        def getFrontendStatus(self):
                if self.frontend_source:
-                       frontend = self.frontend_source
+                       frontend = self.frontend_source()
+                       dict = { }
                        if frontend:
                        if frontend:
-                               dict = { }
                                frontend.getFrontendStatus(dict)
                                frontend.getFrontendStatus(dict)
-                               return dict
+                       return dict
                elif self.service_source:
                        service = self.service_source()
                        feinfo = service and service.frontendInfo()
                elif self.service_source:
                        service = self.service_source()
                        feinfo = service and service.frontendInfo()
@@ -47,3 +47,6 @@ class FrontendStatus(Source):
                else:
                        self.poll_timer.start(self.update_interval)
 
                else:
                        self.poll_timer.start(self.update_interval)
 
+       def destroy(self):
+               self.poll_timer.timeout.get().remove(self.updateFrontendStatus)
+