tizen 2.3.1 release
[framework/connectivity/bluez.git] / test / monitor-bluetooth
index 4a598e1..d9b5472 100755 (executable)
@@ -2,20 +2,35 @@
 
 from __future__ import absolute_import, print_function, unicode_literals
 
-import gobject
-
 import dbus
 import dbus.mainloop.glib
+try:
+  from gi.repository import GObject
+except ImportError:
+  import gobject as GObject
 
-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.Adapter1", "org.bluez.Device1" ]
 
-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 +38,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")
-
-       mainloop = gobject.MainLoop()
+                       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()