Changeset 3608
- Timestamp:
- 10/10/08 21:21:53 (3 months ago)
- Location:
- trunk/beacon/src/server
- Files:
-
- 1 removed
- 3 modified
- 3 copied
-
cdrom.py (copied) (copied from trunk/beacon/src/server/hwmon/cdrom.py) (1 diff, 1 prop)
-
controller.py (modified) (4 diffs)
-
devices.py (copied) (copied from trunk/beacon/src/server/hwmon/client.py) (3 diffs, 1 prop)
-
hal.py (copied) (copied from trunk/beacon/src/server/hwmon/hal.py) (15 diffs, 1 prop)
-
hwmon (deleted)
-
server.py (modified) (2 diffs)
-
videothumb.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/beacon/src/server/cdrom.py
r3063 r3608 70 70 import kaa.metadata 71 71 72 from kaa.beacon.utils import fstab72 from ..utils import fstab 73 73 74 74 # get logging object -
trunk/beacon/src/server/controller.py
r3607 r3608 7 7 # ----------------------------------------------------------------------------- 8 8 # kaa.beacon.server - A virtual filesystem with metadata 9 # Copyright (C) 2007 Dirk Meyer9 # Copyright (C) 2007-2008 Dirk Meyer 10 10 # 11 11 # First Edition: Dirk Meyer <dischi@freevo.org> … … 36 36 37 37 # kaa.beacon imports 38 import hwmon38 import devices 39 39 from parser import parse 40 40 … … 49 49 self._changed = [] 50 50 db.medialist.connect(self) 51 hwmon.create(handler, db, rootfs)51 self.hwmon = devices.HardwareMonitor(handler, db, rootfs) 52 52 53 53 # Item callbacks … … 108 108 Eject media 109 109 """ 110 hwmon.get_client().eject(media)110 self.hwmon.eject(media) 111 111 112 112 -
trunk/beacon/src/server/devices.py
r3607 r3608 1 1 # -*- coding: iso-8859-1 -*- 2 2 # ----------------------------------------------------------------------------- 3 # client.py - client part of the hardware monitor3 # devices.py - HardwareMonitor 4 4 # ----------------------------------------------------------------------------- 5 5 # $Id$ 6 #7 # This module is used inside the beacon server to communicate with the8 # hardware monitor process.9 6 # 10 7 # ----------------------------------------------------------------------------- … … 43 40 44 41 # kaa.beacon imports 45 from kaa.beacon.utils import get_title42 from ..utils import get_title 46 43 47 44 # get logging object … … 60 57 cdrom = None 61 58 62 class Client(object):59 class HardwareMonitor(object): 63 60 64 61 def __init__(self, handler, db, rootfs): -
trunk/beacon/src/server/hal.py
r3606 r3608 56 56 57 57 # kaa.beacon imports 58 from kaa.beacon.server.config import config58 from config import config 59 59 60 60 # get logging object 61 61 log = logging.getLogger('beacon.hal') 62 62 63 # HALsignals63 # hal signals 64 64 signals = kaa.Signals('add', 'remove', 'changed', 'failed') 65 66 # hal object and interface names 67 HAL = 'org.freedesktop.Hal' 68 HAL_DEVICE = 'org.freedesktop.Hal.Device' 65 69 66 70 @kaa.threaded(kaa.MAINTHREAD) … … 81 85 self.prop = prop 82 86 self._bus = bus 87 88 def get_interface(self, name): 89 obj = self._bus.get_object(HAL, self.udi) 90 return dbus.Interface(obj, name) 83 91 84 92 # ------------------------------------------------------------------------- … … 96 104 if not self.prop.get('volume.fstype'): 97 105 log.error('unknown filesystem type for %s', self.udi) 98 obj = self._bus.get_object('org.freedesktop.Hal', self.udi) 99 vol = dbus.Interface(obj, 'org.freedesktop.Hal.Device.Volume') 106 vol = self.get_interface(HAL_DEVICE + '.Volume') 100 107 vol.Mount('', self.prop.get('volume.fstype'), []) 101 108 return True … … 109 116 """ 110 117 _device_remove(self.udi) 111 obj = self._bus.get_object('org.freedesktop.Hal', self.udi) 112 vol = dbus.Interface(obj, 'org.freedesktop.Hal.Device.Volume') 118 vol = self.get_interface(HAL_DEVICE + '.Volume') 113 119 if self.prop.get('volume.mount_point'): 114 120 vol.Unmount([]) … … 134 140 for c in change_list: 135 141 if c[0] == 'volume.mount_point': 136 obj = self._bus.get_object('org.freedesktop.Hal', self.udi) 137 obj = dbus.Interface(obj, 'org.freedesktop.Hal.Device') 142 obj = self.get_interface(HAL_DEVICE) 138 143 obj.GetAllProperties(reply_handler=self._property_update, 139 144 error_handler=log.error) 140 141 145 142 146 def _property_update(self, prop): … … 151 155 152 156 153 154 157 # ----------------------------------------------------------------------------- 155 158 # Connection handling … … 166 169 def start(): 167 170 """ 168 Connect to DBUS and start to connect to HAL.171 Connect to DBUS and start to connect to hal. 169 172 """ 170 173 global _bus … … 183 186 return False 184 187 try: 185 obj = _bus.get_object( 'org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')188 obj = _bus.get_object(HAL, '/org/freedesktop/Hal/Manager') 186 189 except Exception, e: 187 190 # unable to connect to hal 188 191 emit_signal('failed', 'hal not found on dbus') 189 192 return False 190 hal = dbus.Interface(obj, 'org.freedesktop.Hal.Manager')193 hal = dbus.Interface(obj, HAL + '.Manager') 191 194 hal.GetAllDevices(reply_handler=_device_all, error_handler=log.error) 192 195 hal.connect_to_signal('DeviceAdded', _device_new) … … 204 207 def _device_all(device_names): 205 208 """ 206 H ALcallback with the list of all known devices.209 Hal callback with the list of all known devices. 207 210 Called by dbus in GOBJECT thread. 208 211 """ 209 212 for name in device_names: 210 obj = _bus.get_object( "org.freedesktop.Hal", str(name))211 obj.GetAllProperties(dbus_interface= "org.freedesktop.Hal.Device",213 obj = _bus.get_object(HAL, str(name)) 214 obj.GetAllProperties(dbus_interface=HAL_DEVICE, 212 215 reply_handler=kaa.Callback(_device_add, name), 213 216 error_handler=log.error) 214 217 215 216 218 def _device_new(udi): 217 219 """ 218 H ALcallback for a new device.220 Hal callback for a new device. 219 221 Called by dbus in GOBJECT thread. 220 222 """ 221 obj = _bus.get_object( "org.freedesktop.Hal", udi)222 obj.GetAllProperties(dbus_interface= "org.freedesktop.Hal.Device",223 obj = _bus.get_object(HAL, udi) 224 obj.GetAllProperties(dbus_interface=HAL_DEVICE, 223 225 reply_handler=kaa.Callback(_device_add, udi, True), 224 226 error_handler=log.error) 225 227 226 227 228 def _device_remove(udi): 228 229 """ 229 H ALcallback when a device is removed.230 Hal callback when a device is removed. 230 231 Called by dbus in GOBJECT thread or by eject 231 232 """ … … 241 242 # that id, but we need to unreg, right? FIXME by reading hal doc. 242 243 sig = _bus.remove_signal_receiver 243 sig(dev._modified, "PropertyModified", 'org.freedesktop.Hal.Device',244 "org.freedesktop.Hal", udi)244 sig(dev._modified, "PropertyModified", HAL_DEVICE, 245 HAL, udi) 245 246 _devices.remove(dev) 246 247 # signal changes … … 248 249 emit_signal('remove', dev) 249 250 250 251 251 def _device_add(prop, udi, removable=False): 252 252 """ 253 H ALcallback for property list of a new device. If removable is set to253 Hal callback for property list of a new device. If removable is set to 254 254 False this functions tries to detect if it is removable or not. 255 255 Called by dbus in GOBJECT thread. … … 264 264 emit_signal('add', dev) 265 265 return 266 267 266 if prop.get('block.device').startswith('/dev/mapper') or \ 268 267 (prop.get('block.device') and config.discs and \ … … 271 270 # fixed device set in config 272 271 return 273 274 272 if config.discs: 275 273 # fixed drives are set so this is a removable 276 274 removable = True 277 278 275 if not prop.get('volume.is_disc') and not removable: 279 276 # No disc and not already marked as removable. … … 297 294 log.exception('device checking') 298 295 return 299 300 296 dev = Device(prop, _bus) 301 297 _devices.append(dev) 302 sig = _bus.add_signal_receiver 303 sig(dev._modified, "PropertyModified", 'org.freedesktop.Hal.Device', 304 "org.freedesktop.Hal", prop['info.udi']) 305 298 _bus.add_signal_receiver(dev._modified, "PropertyModified", HAL_DEVICE, HAL, 299 prop['info.udi']) 306 300 parent = _blockdevices.get(prop.get('info.parent')) 307 301 if parent: … … 311 305 312 306 313 if __name__ == '__main__': 307 if __name__ == '__main__': 314 308 def changed(dev, prop): 315 309 print 'changed', dev.get('info.parent') -
trunk/beacon/src/server/server.py
r3071 r3608 399 399 yield self._db.add_object(type, parent=parent, **kwargs) 400 400 401 401 402 402 @kaa.rpc.expose('item.delete') 403 403 @kaa.coroutine() … … 410 410 self._db.delete_object(id) 411 411 412 412 413 413 @kaa.rpc.expose('beacon.shutdown') 414 414 def shutdown(self): -
trunk/beacon/src/server/videothumb.py
r3019 r3608 66 66 self.create_failed = thumbnailer.create_failed 67 67 68 self.child = kaa.Process(['mplayer', '-nosound', '-vo', 'png:z=2', 68 self.child = kaa.Process(['mplayer', '-nosound', '-vo', 'png:z=2', 69 69 '-frames', '10', '-osdlevel', '0', '-nocache', 70 70 '-zoom', '-ss' ])
