1 import gobject
2 import dbus
3
4 import conduit.utils as Utils
5 import conduit.dataproviders.SimpleFactory as SimpleFactory
6
8
10 SimpleFactory.SimpleFactory.__init__(self, **kwargs)
11
12
13 self.bus = dbus.SystemBus()
14 self.hal_obj = self.bus.get_object("org.freedesktop.Hal", "/org/freedesktop/Hal/Manager")
15 self.hal = dbus.Interface(self.hal_obj, "org.freedesktop.Hal.Manager")
16
17
18 self.hal.connect_to_signal("DeviceAdded", self._device_added)
19 self.hal.connect_to_signal("DeviceRemoved", self._device_removed)
20 self.hal.connect_to_signal("NewCapability", self._new_capability)
21
26
32
35
37 try:
38 device_dbus_obj = self.bus.get_object("org.freedesktop.Hal" ,device)
39 buffer = {}
40 for x, y in device_dbus_obj.GetAllProperties(dbus_interface="org.freedesktop.Hal.Device").items():
41 buffer[str(x)] = str(y)
42 return buffer
43 except:
44 return {}
45
47 """ Enumerate HAL for any entries of interest """
48 devices = self.hal.GetAllDevices()
49 for device in self.hal.GetAllDevices():
50 device = str(device)
51 props = self._get_properties(device)
52 if self.is_interesting(device, props):
53 self.item_added(device, **props)
54
57