Author: dmeyer
Date: Mon Feb 11 04:52:22 2008
New Revision: 3044

Log:
Sync with local tree. Require dbus-python 0.8.0 and remove
the ugly work-around needed for bugs in older versions.


Modified:
   trunk/beacon/src/server/hwmon/hal.py

Modified: trunk/beacon/src/server/hwmon/hal.py
==============================================================================
--- trunk/beacon/src/server/hwmon/hal.py        (original)
+++ trunk/beacon/src/server/hwmon/hal.py        Mon Feb 11 04:52:22 2008
@@ -42,11 +42,13 @@
 
 # check for dbus and it's version
 import dbus
-if getattr(dbus, 'version', (0,0,0)) < (0,51,0):
-    raise ImportError('dbus >= 0.51.0 not found')
-import dbus.glib
+if getattr(dbus, 'version', (0,0,0)) < (0,8,0):
+    raise ImportError('dbus >= 0.8.0 not found')
 
-# use gtk main loop
+# Set dbus to use gtk and adjust kaa to it. Right now python dbus
+# only supports the glib mainloop and no generic one.
+from dbus.mainloop.glib import DBusGMainLoop
+DBusGMainLoop(set_as_default=True)
 kaa.main.select_notifier('gtk', x11=False)
 
 # kaa.beacon imports
@@ -58,11 +60,8 @@
 log = logging.getLogger('beacon.hal')
 
 # HAL signals
-signals = { 'add': kaa.Signal(),
-            'remove': kaa.Signal(),
-            'changed': kaa.Signal(),
-            'failed': kaa.Signal()
-          }
+signals = kaa.Signals('add', 'remove', 'changed', 'failed')
+
 
 class Device(object):
     """
@@ -160,7 +159,7 @@
 _bus = None
 _connection_timeout = 5
 
-def _connect_to_hal():
+def start():
     """
     Connect to DBUS and start to connect to HAL.
     """
@@ -176,7 +175,7 @@
             # give up
             signals['failed'].emit('unable to connect to dbus')
             return False
-        kaa.OneShotTimer(_connect_to_hal).start(2)
+        kaa.OneShotTimer(start).start(2)
         return False
     try:
         obj = _bus.get_object('org.freedesktop.Hal', 
'/org/freedesktop/Hal/Manager')
@@ -184,25 +183,6 @@
         # unable to connect to hal
         signals['failed'].emit('hal not found on dbus')
         return False
-
-    # DONT ASK! dbus sucks!
-    kaa.Timer(_connect_to_hal_because_dbus_sucks, obj).start(0.01)
-    return False
-
-
-def _connect_to_hal_because_dbus_sucks(obj):
-    """
-    The real connection to HAL.
-    """
-    if obj._introspect_state == obj.INTROSPECT_STATE_INTROSPECT_IN_PROGRESS:
-        return True
-    if obj._introspect_state == obj.INTROSPECT_STATE_DONT_INTROSPECT:
-        if not _connection_timeout:
-            # give up
-            signals['failed'].emit('unable to connect to hal')
-            return False
-        kaa.OneShotTimer(_connect_to_hal).start(2)
-        return False
     hal = dbus.Interface(obj, 'org.freedesktop.Hal.Manager')
     hal.GetAllDevices(reply_handler=_device_all, error_handler=log.error)
     hal.connect_to_signal('DeviceAdded', _device_new)
@@ -321,8 +301,9 @@
         signals['add'].emit(dev)
 
 
-def start():
-    """
-    Start HAL based device monitor.
-    """
-    _connect_to_hal()
+if __name__ == '__main__':      
+    def new_device(self, dev):
+        print dev
+    signals['add'].connect(new_device)
+    start()
+    kaa.main.run()

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to