Author: dmeyer
Date: Sat Feb 25 20:48:34 2006
New Revision: 7941

Added:
   trunk/dbox/src/ui/dbox.py
      - copied, changed from r7939, /trunk/dbox/src/ui/lcd.py
Removed:
   trunk/dbox/src/ui/lcd.py

Log:
rename to dbox.py and make it tollerant when the dbox is not there

Copied: trunk/dbox/src/ui/dbox.py (from r7939, /trunk/dbox/src/ui/lcd.py)
==============================================================================
--- /trunk/dbox/src/ui/lcd.py   (original)
+++ trunk/dbox/src/ui/dbox.py   Sat Feb 25 20:48:34 2006
@@ -15,18 +15,33 @@
     def __init__(self):
         plugin.Plugin.__init__(self)
         self.dbox = 'dbox'
-        self._send(lock=1)
         self.info = None
         self.item = None
+        self.connected = False
         EventHandler(self.eventhandler).register()
-        Timer(self.status).start(0.1)
+        Timer(self.status).start(1)
         kaa.notifier.signals['shutdown'].connect(self.shutdown)
+        self.check_startup()
+        
 
-    def update(self):
-        pass
-
-
+    @kaa.notifier.execute_in_thread('dbox')
+    def check_startup(self, delayed=False):
+        try:
+            if delayed:
+                self._send()
+                print 'found dbox'
+                kaa.notifier.OneShotTimer(self.check_startup).start(3)
+            else:
+                self._send(lock=1)
+                self.connected = True
+                print 'connected'
+        except:
+            kaa.notifier.OneShotTimer(self.check_startup, True).start(1)
+        
     def status(self):
+        if not self.connected:
+            return True
+
         if self.item:
             name = self.item.name
             info1 = info2 = ''
@@ -52,17 +67,24 @@
 
     @kaa.notifier.execute_in_thread('dbox')
     def update(self, name, info1, info2, pos, t):
-        self.info = name, info1, info2, pos, t
-        self._send(clear=1, rect='0,50,75,60,1,0', font=1, size=13,
-                   text=name, xpos=1, ypos=12)
-        if info1:
-            self._send(text=info1, xpos=1, ypos=25, size=11, font=0)
-        if info2:
-            self._send(text=info2, xpos=1, ypos=35, size=11, font=0)
-
-        self._send(rect='2,52,%s,58,1,1' % pos, text=t, font=1, size=14,
-                   xpos=80, ypos=62, update=1)
-
+        if not self.connected:
+            return
+        try:
+            self.info = name, info1, info2, pos, t
+            self._send(clear=1, rect='0,50,75,60,1,0', font=1, size=13,
+                       text=name, xpos=1, ypos=12)
+            if info1:
+                self._send(text=info1, xpos=1, ypos=25, size=11, font=0)
+            if info2:
+                self._send(text=info2, xpos=1, ypos=35, size=11, font=0)
+
+            self._send(rect='2,52,%s,58,1,1' % pos, text=t, font=1, size=14,
+                       xpos=80, ypos=62, update=1)
+        except:
+            print 'lost dbox, trying to reconnect'
+            self.connected = False
+            kaa.notifier.OneShotTimer(self.check_startup, True).start(1)
+            
 
     def eventhandler(self, event):
         if event == PLAY_START and event.arg and isinstance(event.arg, 
MediaItem):
@@ -78,4 +100,5 @@
 
         
     def shutdown(self):
-        self._send(lock=0)
+        if self.connected:
+            self._send(lock=0)


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to