void gatt_add_characteristic(GDBusProxy *proxy) { if (!characteristic_is_child(proxy)) return; characteristics = g_list_append(characteristics, proxy); print_characteristic(proxy, COLORED_NEW); }
void gatt_remove_characteristic(GDBusProxy *proxy) { if (!characteristic_is_child(proxy)) return; characteristics = g_list_remove(characteristics, proxy); print_characteristic(proxy, COLORED_DEL); }
void gatt_remove_characteristic(GDBusProxy *proxy) { GList *l; l = g_list_find(characteristics, proxy); if (!l) return; characteristics = g_list_delete_link(characteristics, l); print_characteristic(proxy, COLORED_DEL); }
static void list_attributes(const char *path, GList *source) { GList *l; for (l = source; l; l = g_list_next(l)) { GDBusProxy *proxy = l->data; const char *proxy_path; proxy_path = g_dbus_proxy_get_path(proxy); if (!g_str_has_prefix(proxy_path, path)) continue; if (source == services) { print_service(proxy, NULL); list_attributes(proxy_path, characteristics); } else if (source == characteristics) { print_characteristic(proxy, NULL); list_attributes(proxy_path, descriptors); } else if (source == descriptors) print_descriptor(proxy, NULL); } }