diff options
author | Mikel Astiz <mikel.astiz@bmw-carit.de> | 2012-12-05 13:51:31 +0100 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-12-05 16:39:46 +0200 |
commit | 05eb08872ad882034008cd67ed5077a3bbaaf79b (patch) | |
tree | e5e631bd3c2aeae8af9b38953d32523e8805971f /test/monitor-bluetooth | |
parent | 90e7850d95b36c6c2e7a0fffe848b8b48557b6f3 (diff) | |
download | bluez-05eb08872ad882034008cd67ed5077a3bbaaf79b.tar.gz |
test: Update monitor script to ObjectManager
Make the script compatible with the new API provided by the
ObjectManager and Properties interfaces.
Diffstat (limited to 'test/monitor-bluetooth')
-rwxr-xr-x | test/monitor-bluetooth | 68 |
1 files changed, 31 insertions, 37 deletions
diff --git a/test/monitor-bluetooth b/test/monitor-bluetooth index 4a598e16a..45cc91013 100755 --- a/test/monitor-bluetooth +++ b/test/monitor-bluetooth @@ -7,15 +7,28 @@ import gobject import dbus import dbus.mainloop.glib -def property_changed(name, value, path, interface): - iface = interface[interface.rfind(".") + 1:] - val = str(value) - print("{%s.PropertyChanged} [%s] %s = %s" % (iface, path, name, val)) +relevant_ifaces = [ "org.bluez.Adapter", "org.bluez.Device" ] -def object_signal(value, path, interface, member): +def property_changed(interface, changed, invalidated, path): iface = interface[interface.rfind(".") + 1:] - val = str(value) - print("{%s.%s} [%s] Path = %s" % (iface, member, path, val)) + for name, value in changed.iteritems(): + val = str(value) + print("{%s.PropertyChanged} [%s] %s = %s" % (iface, path, name, + val)) + +def interfaces_added(path, interfaces): + for iface, props in interfaces.iteritems(): + if not(iface in relevant_ifaces): + continue + print("{Added %s} [%s]" % (iface, path)) + for name, value in props.iteritems(): + print(" %s = %s" % (name, value)) + +def interfaces_removed(path, interfaces): + for iface in interfaces: + if not(iface in relevant_ifaces): + continue + print("{Removed %s} [%s]" % (iface, path)) if __name__ == '__main__': dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) @@ -23,36 +36,17 @@ if __name__ == '__main__': bus = dbus.SystemBus() bus.add_signal_receiver(property_changed, bus_name="org.bluez", - signal_name = "PropertyChanged", - path_keyword="path", - interface_keyword="interface") - - bus.add_signal_receiver(object_signal, bus_name="org.bluez", - signal_name = "AdapterAdded", - path_keyword="path", - member_keyword="member", - interface_keyword="interface") - bus.add_signal_receiver(object_signal, bus_name="org.bluez", - signal_name = "AdapterRemoved", - path_keyword="path", - member_keyword="member", - interface_keyword="interface") - bus.add_signal_receiver(object_signal, bus_name="org.bluez", - signal_name = "DefaultAdapterChanged", - path_keyword="path", - member_keyword="member", - interface_keyword="interface") - - bus.add_signal_receiver(object_signal, bus_name="org.bluez", - signal_name = "DeviceCreated", - path_keyword="path", - member_keyword="member", - interface_keyword="interface") - bus.add_signal_receiver(object_signal, bus_name="org.bluez", - signal_name = "DeviceRemoved", - path_keyword="path", - member_keyword="member", - interface_keyword="interface") + dbus_interface="org.freedesktop.DBus.Properties", + signal_name="PropertiesChanged", + path_keyword="path") + + bus.add_signal_receiver(interfaces_added, bus_name="org.bluez", + dbus_interface="org.freedesktop.DBus.ObjectManager", + signal_name="InterfacesAdded") + + bus.add_signal_receiver(interfaces_removed, bus_name="org.bluez", + dbus_interface="org.freedesktop.DBus.ObjectManager", + signal_name="InterfacesRemoved") mainloop = gobject.MainLoop() mainloop.run() |