diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-11-23 13:44:22 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-11-23 13:44:22 +0100 |
commit | 7ad970d62c732ed2e9738c595c7b5ebff15b211f (patch) | |
tree | 788a5595360f70f517aaa49f293b566fb7a253fc | |
parent | b570627cf85d3231a1bdff90c6d7f07c015194d5 (diff) | |
download | connman-7ad970d62c732ed2e9738c595c7b5ebff15b211f.tar.gz connman-7ad970d62c732ed2e9738c595c7b5ebff15b211f.tar.bz2 connman-7ad970d62c732ed2e9738c595c7b5ebff15b211f.zip |
Add Device interface to device elements
-rw-r--r-- | src/element.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/element.c b/src/element.c index 3e2e0c3e..2ed2361e 100644 --- a/src/element.c +++ b/src/element.c @@ -416,6 +416,18 @@ static GDBusSignalTable element_signals[] = { { }, }; +static GDBusMethodTable device_methods[] = { + { "GetProperties", "", "a{sv}", get_properties }, + { "SetProperty", "sv", "", set_property }, + { "ClearProperty", "s", "", clear_property }, + { }, +}; + +static GDBusSignalTable device_signals[] = { + { "PropertyChanged", "sv" }, + { }, +}; + struct append_filter { enum connman_element_type type; DBusMessageIter *iter; @@ -1260,7 +1272,16 @@ static void register_element(gpointer data, gpointer user_data) CONNMAN_ELEMENT_INTERFACE, element_methods, element_signals, NULL, element, NULL) == FALSE) - connman_error("Failed to register %s", element->path); + connman_error("Failed to register %s element", element->path); + + if (element->type == CONNMAN_ELEMENT_TYPE_DEVICE) { + if (g_dbus_register_interface(connection, element->path, + CONNMAN_DEVICE_INTERFACE, + device_methods, device_signals, + NULL, element, NULL) == FALSE) + connman_error("Failed to register %s device", + element->path); + } g_dbus_emit_signal(connection, CONNMAN_MANAGER_PATH, CONNMAN_MANAGER_INTERFACE, "ElementAdded", @@ -1321,6 +1342,10 @@ static gboolean remove_element(GNode *node, gpointer user_data) DBUS_TYPE_OBJECT_PATH, &element->path, DBUS_TYPE_INVALID); + if (element->type == CONNMAN_ELEMENT_TYPE_DEVICE) + g_dbus_unregister_interface(connection, element->path, + CONNMAN_DEVICE_INTERFACE); + g_dbus_unregister_interface(connection, element->path, CONNMAN_ELEMENT_INTERFACE); |