1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
from dbus import Interface, SystemBus
class HALManager(object):
def __init__(self, bus=None):
self._bus = bus or SystemBus()
manager = self._bus.get_object("org.freedesktop.Hal",
"/org/freedesktop/Hal/Manager")
self._manager = Interface(manager, "org.freedesktop.Hal.Manager")
def get_devices(self):
"""
Returns a list of HAL devices.
"""
devices = []
for udi in self._manager.GetAllDevices():
device = self._bus.get_object("org.freedesktop.Hal", udi)
device = Interface(device, "org.freedesktop.Hal.Device")
device = HALDevice(device)
devices.append(device)
return devices
class HALDevice(object):
def __init__(self, device):
self._children = []
self._device = device
self.properties = device.GetAllProperties()
self.udi = self.properties["info.udi"]
self.parent = None
def add_child(self, device):
self._children.append(device)
device.parent = self
def get_children(self):
return self._children
|