[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82
Michael 'Mickey' Lauer
mickey at vanille-media.de
Mon Feb 2 18:51:49 UTC 2009
The following commit has been merged in the master branch:
commit 8eaaf983d3dbd20a604a4950326c68f7ac3bec55
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Fri Jan 2 15:26:56 2009 +0100
otimed: alarm: use "hardcoded" path to default real time clock
also: do not introspect and follow name owner changes, so that
odeviced has not to be present at subsystem launch time
diff --git a/framework/subsystems/otimed/alarm.py b/framework/subsystems/otimed/alarm.py
index 29e9fbd..7182746 100644
--- a/framework/subsystems/otimed/alarm.py
+++ b/framework/subsystems/otimed/alarm.py
@@ -89,34 +89,11 @@ class AlarmController( dbus.service.Object ):
dbus.BUS_DAEMON_NAME,
dbus.BUS_DAEMON_PATH
)
- self.rtc = None
-
- def cbListObjects( rtcpaths ):
- try:
- if not rtcpaths:
- logger.error( "no RealTimeClock interface found" )
- return
- proxy = self.bus.get_object( "org.freesmartphone.odeviced", rtcpaths[0] )
- self.rtc = dbus.Interface( proxy, "org.freesmartphone.RealTimeClock" )
- except:
- logger.exception( "failed to get rtc interface" )
-
- def onIdle():
- logger.info( "getting rtc interface" )
- try:
- # we need to have odeviced started up before being able to set alarms
- proxy = self.bus.get_object( "org.freesmartphone.odeviced", "/org/freesmartphone/Framework" )
- framework = dbus.Interface( proxy, "org.freesmartphone.Framework" )
- framework.ListObjectsByInterface(
- "org.freesmartphone.Device.RealTimeClock",
- reply_handler=cbListObjects, error_handler=log_dbus_error( "can not get list of RTCs" )
- )
- except:
- logger.exception( "failed to get rtc interface" )
-
- gobject.idle_add(onIdle)
-
- logger.info( "%s initialized. Serving %s at %s", self.__class__.__name__, self.interface, self.path )
+
+ # gather realtime clock dbus object
+ o = bus.get_object( "org.freesmartphone.odeviced", "/org/freesmartphone/Device/RealTimeClock/0", follow_name_owner_changes=True )
+ self.rtc = dbus.Interface( o, "org.freesmartphone.RealTimeClock" )
+ logger.info( "%s %s initialized. Serving %s at %s", self.__class__.__name__, __version__, self.interface, self.path )
def _nameOwnerChangedHandler( self, name, old_owner, new_owner ):
# TODO what happens when something changes it busname?
@@ -142,12 +119,9 @@ class AlarmController( dbus.service.Object ):
alarm.fire()
if self.queue:
self.timer = gobject.timeout_add_seconds( self.queue[0].timestamp - int(time.time()), self._schedule )
- if self.rtc is None:
- logger.error( "no rtc interface yet, wakeup not possible" )
- return
self.rtc.SetWakeupTime(
self.queue[0].timestamp,
- reply_handler=drop_dbus_result, error_handler=log_dbus_error( "can not set wakeup time" )
+ reply_handler=drop_dbus_result, error_handler=log_dbus_error( "RTC error; can not set wakeup time" )
)
#
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list