~ahasenack/landscape-client/landscape-client-1.5.5-0ubuntu0.9.04.0

« back to all changes in this revision

Viewing changes to landscape/hal.py

  • Committer: Bazaar Package Importer
  • Author(s): Rick Clark
  • Date: 2008-09-08 16:35:57 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080908163557-l3ixzj5dxz37wnw2
Tags: 1.0.18-0ubuntu1
New upstream release 

Show diffs side-by-side

added added

removed removed

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