5 signal sender=:1.12 -> dest=(null destination) serial=1208 path=/org/freedesktop/Hal/devices/computer_logicaldev_input; interface=org.freedesktop.Hal.Device; member=Condition
9 signal sender=:1.11 -> dest=(null destination) serial=750 path=/com/nokia/mce/signal; interface=com.nokia.mce.signal; member=display_status_ind
12 signal sender=:1.11 -> dest=(null destination) serial=731 path=/com/nokia/mce/signal; interface=com.nokia.mce.signal; member=tklock_mode_ind
17 MCE_SERVICE = "com.nokia.mce"
18 MCE_REQUEST_IF = "com.nokia.mce.request"
19 MCE_SIGNAL_IF = "com.nokia.mce.signal"
20 MCE_REQUEST_PATH = "/com/nokia/mce/request"
21 MCE_SIGNAL_PATH = "/com/nokia/mce/signal"
22 MCE_TKLOCK_MODE_SIG = "tklock_mode_ind"
23 MCE_DISPLAY_SIG = "display_status_ind"
27 import dbus.mainloop.glib
31 class SpeakTimeController(object):
33 bus = dbus.SystemBus()
34 mce_req = dbus.Interface(
35 bus.get_object(MCE_SERVICE, MCE_REQUEST_PATH),
36 dbus_interface=MCE_REQUEST_IF)
38 bus.get_object(MCE_SERVICE, MCE_SIGNAL_PATH),
39 dbus_interface=MCE_SIGNAL_IF)
41 bus.get_object("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer_logicaldev_input"),
42 dbus_interface="org.freedesktop.Hal.Device")
44 self.sig_display_status(mce_req.get_display_status())
45 self.sig_tklock_mode(mce_req.get_tklock_mode())
47 mce.connect_to_signal(MCE_DISPLAY_SIG, self.sig_display_status)
48 mce.connect_to_signal(MCE_TKLOCK_MODE_SIG, self.sig_tklock_mode)
49 hal.connect_to_signal("Condition", self.sig_condition)
53 def sig_display_status(self, status):
54 print "display status [%s]" % status
55 self.display_status = status
57 def sig_tklock_mode(self, mode):
58 print "lock mode [%s]" % mode
59 self.tklock_mode = mode
61 def sig_condition(self, name, *args):
62 print "condition: name=[%s] args=[%r]" % (name, args)
63 if name == 'ButtonPressed' and args[0] == 'power':
65 if self.display_status == "on" and self.tklock_mode == "locked":
66 s = time.strftime("%H:%M")
67 print "speak: [%s]" % s
68 print os.system("espeak \"%s\"" % s)
72 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
74 ctrl = SpeakTimeController()
77 mainloop = gobject.MainLoop()