return BLUETOOTH_ERROR_NONE;
}
+static void __bt_list_folders_cb(GDBusProxy *proxy,
+ GAsyncResult *res, gpointer user_data)
+{
+ BT_DBG("+");
+
+ GError *error = NULL;
+ GVariant *value, *in_param, *param;
+
+ int result = BLUETOOTH_ERROR_NONE;
+ int request_id;
+ int size = 0;
+
+ in_param = (GVariant*) user_data;
+ g_variant_get(in_param, "(i)", &request_id);
+
+ value = g_dbus_proxy_call_finish(proxy, res, &error);
+
+ if (error) {
+ BT_ERR("%s", error->message);
+ g_clear_error(&error);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ param = g_variant_new("(iiv)", result, request_id, value);
+ BT_DBG("RequestID[%d]", request_id);
+ result = _bt_send_event(BT_MAP_CLIENT_EVENT,
+ BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE, param);
+
+ g_variant_unref(value);
+ g_variant_unref(in_param);
+
+ BT_DBG("-");
+}
+
int _bt_map_client_list_folders(int request_id, GDBusMethodInvocation *context,
const char* session_id, int offset, int maxcount)
{
result = BLUETOOTH_ERROR_INTERNAL;
} else {
BT_DBG("message proxy set");
-
GVariantBuilder* b = g_variant_builder_new (G_VARIANT_TYPE_ARRAY);
-
if (offset >= 0) {
g_variant_builder_add(b, "{sv}", "Offset", g_variant_new_uint16(offset));
}
GVariant *params = g_variant_new("(@a{sv})", args);
g_variant_builder_unref (b);
- int* request_id_p = malloc(sizeof(*request_id_p));
- *request_id_p = request_id;
-
- GVariant *folder_list_var = g_dbus_proxy_call_sync(message_access_proxy,
- "ListFolders", params, G_DBUS_CALL_FLAGS_NONE, -1,
- NULL, &error);
- if (error != NULL) {
- BT_ERR("Could not ListFolders: %s\n", error->message);
- // TODO return correct error
- result = BLUETOOTH_ERROR_INTERNAL;
- } else {
- if (!folder_list_var) {
- BT_ERR("returned ListFolders is null\n");
- result = BLUETOOTH_ERROR_INTERNAL;
- } else {
- BT_DBG("ListFolders succeed\n");
-
- GVariant *param = g_variant_new("(iiv)", result, request_id, folder_list_var);
- BT_DBG("RequestID[%d]", request_id);
- result = _bt_send_event(BT_MAP_CLIENT_EVENT,
- BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE, param);
- }
- }
+ GVariant *param = g_variant_new("(i)", request_id);
+
+ g_dbus_proxy_call(message_access_proxy,
+ "ListFolders", params,
+ G_DBUS_CALL_FLAGS_NONE, -1,
+ NULL,
+ (GAsyncReadyCallback)__bt_list_folders_cb,
+ (void*)param);
+
}
}
int result = BLUETOOTH_ERROR_NONE;
int request_id;
- char* session_id = NULL;
char** fields = NULL;
int size = 0;
in_param = (GVariant*) user_data;
- g_variant_get(in_param, "(is)", &request_id, &session_id);
+ g_variant_get(in_param, "(i)", &request_id);
value = g_dbus_proxy_call_finish(proxy, res, &error);
result = BLUETOOTH_ERROR_INTERNAL;
}
- param = g_variant_new("(ivsi)", result, value, session_id, request_id);
+ param = g_variant_new("(ivi)", result, value, request_id);
_bt_send_event(BT_MAP_CLIENT_EVENT, BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE,
param);
retv_if(message_proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
- GVariant *param = g_variant_new("(is)",
- request_id, session_id);
+ GVariant *param = g_variant_new("(i)", request_id);
g_dbus_proxy_call(message_proxy,
"ListFilterFields", g_variant_new("()"),
(GAsyncReadyCallback)__bt_list_filter_fields_cb,
(void*)param);
+ g_object_unref(message_proxy);
+
BT_DBG("-");
return BLUETOOTH_ERROR_NONE;