#!/usr/bin/python import gobject import dbus import dbus.mainloop.glib from dbus.lowlevel import MethodCallMessage, HANDLER_RESULT_NOT_YET_HANDLED def extract_list(list): val = "[" for i in list: val += " " + str(i) val += " ]" return val def extract_bool(b): if b == dbus.Boolean(1): val = "true" else: val = "false" return val def property_changed_adapter(name, value, path): adapter = path[path.rfind("/") + 1:] if name in ["Polling"]: val = extract_bool(value) elif name in ["Tags", "Devices"]: val = extract_list(value) else: val = str(value) print "[Adapter] [%s] %s = %s" % (adapter, name, val) def property_changed_manager(name, value, path): manager = path[path.rfind("/") + 1:] if name in ["Adapters"]: val = extract_list(value) print "[Manager] %s = %s" % (name, val) if __name__ == '__main__': dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() bus.add_signal_receiver(property_changed_manager, bus_name="org.neard", dbus_interface="org.neard.Manager", signal_name = "PropertyChanged", path_keyword="path") bus.add_signal_receiver(property_changed_adapter, bus_name="org.neard", dbus_interface="org.neard.Adapter", signal_name = "PropertyChanged", path_keyword="path") mainloop = gobject.MainLoop() mainloop.run()