}
BT_EXPORT_API int bluetooth_map_destroy_session(bt_map_session_info_s* session) {
- LOGE("bluetooth_map_destroy_session");
+ BT_DBG("bluetooth_map_destroy_session");
int result = 0;
BT_CHECK_ENABLED(return);
+BT_EXPORT_API int bluetooth_map_update_inbox(bt_map_session_info_s* session)
+{
+ BT_DBG("bluetooth_map_update_inbox");
+ int result;
+
+ BT_CHECK_ENABLED(return);
+ BT_CHECK_PARAMETER(session->session_path, return);
+
+ BT_INIT_PARAMS();
+ BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+ g_array_append_vals(in_param1, session->session_path, strlen(session->session_path)+1);
+
+ result = _bt_send_request(BT_OBEX_SERVICE, BT_MAP_UPDATE_INBOX,
+ in_param1, in_param2, in_param3, in_param4, &out_param);
+
+ if (result != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("bluetooth_map_update_inbox failed");
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+ return result;
+}
+
/* TODO: MAP API */
request_id = g_array_index(out_param1, int, 0);
BT_DBG("request_id : %d", request_id);
_bt_add_push_request_id(request_id);
- } else if (cb_data->service_function == BT_MAP_444) {
+ } else if (cb_data->service_function == BT_MAP_555) {
/* TODO: MAP service functions */
}
break;
}
+ case BT_MAP_UPDATE_INBOX: {
+ BT_DBG("BT_MAP_UPDATE_INBOX");
+
+ char* session_id = (char *)g_variant_get_data(in_param1);
+
+ result = _bt_map_client_update_inbox(session_id);
+ free(session_id);
+ break;
+ }
+
case BT_MAP_LIST_FOLDERS: {
BT_DBG("BT_MAP_LIST_FOLDERS");
#include "bt-service-obex-agent.h"
#include "bt-service-adapter.h"
-#define DBUS_TIEMOUT 20 * 1000 /* 20 Seconds */
+#define DBUS_TIMEOUT 20 * 1000 /* 20 Seconds */
bt_session_info_t *session_info;
g_dbus_proxy_call(session_proxy, "RemoveSession",
g_variant_new("(o)", session_info->session_path),
G_DBUS_CALL_FLAGS_NONE,
- DBUS_TIEMOUT, NULL,
+ DBUS_TIMEOUT, NULL,
(GAsyncReadyCallback)__bt_session_release_cb,
NULL);
GVariant *param = g_variant_new("(o)", session_id);
- char* string = g_variant_print (param, true);
-
GVariant *value = g_dbus_proxy_call_sync(session_proxy, "RemoveSession", param,
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
if (err != NULL) {
return BLUETOOTH_ERROR_NONE;
}
+
+int _bt_map_client_update_inbox(char* session_id)
+{
+ BT_DBG("+");
+
+ GError *err = NULL;
+ GDBusConnection *g_conn;
+ GDBusProxy *message_proxy;
+ GVariantBuilder *builder;
+ GVariant *ret = NULL;
+
+ g_conn = _bt_gdbus_get_session_gconn();
+ ret_if(g_conn == NULL);
+
+ GVariant *param = g_variant_new("(o)", session_id);
+
+ message_proxy = g_dbus_proxy_new_sync(g_conn,
+ G_DBUS_PROXY_FLAGS_NONE, NULL,
+ BT_OBEX_SERVICE_NAME, session_id,
+ BT_OBEX_MESSAGE_INTERFACE, NULL, &err);
+
+ retv_if(message_proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
+
+ ret = g_dbus_proxy_call_sync(message_proxy,
+ "UpdateInbox", g_variant_new("()"),
+ G_DBUS_CALL_FLAGS_NONE, -1,
+ NULL, &err);
+
+ if (ret == NULL) {
+ if (err != NULL) {
+ BT_ERR("UpdateInbox Error: %s\n", err->message);
+ g_error_free(err);
+ }
+ } else {
+ g_variant_unref(ret);
+ }
+
+ g_object_unref(message_proxy);
+
+ BT_DBG("-");
+
+ return BLUETOOTH_ERROR_NONE;
+}
/* TODO: MAP */
#define BT_OBEX_CLIENT_PATH "/org/bluez/obex"
#define BT_OBEX_CLIENT_INTERFACE "org.bluez.obex.Client1"
-
+#define BT_OBEX_MESSAGE_INTERFACE "org.bluez.obex.MessageAccess1"
#define BT_OBEX_TRANSFER_INTERFACE "org.bluez.obex.Transfer1"
#define BT_OBEX_AGENT_INTERFACE "org.bluez.obex.Agent1"
int _bt_create_session_sync(char* address, char** session_id);
int _bt_destroy_session_sync(char* session_id);
+int _bt_map_client_update_inbox(char* session_id);
/* TODO: MAP */
#ifdef __cplusplus
int bluetooth_map_destroy_session(bt_map_session_info_s* session);
+/**
+ * @fn int bluetooth_map_update_inbox(void)
+ * @brief Request remote to update its inbox.
+ *
+ * This function is a synchronous call.
+ * No event corresponding to this api
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Update inbox failed \n
+ *
+ * @exception None
+ * @param[in] session Information about session.
+ * @remark None
+ */
+ int bluetooth_map_update_inbox(bt_map_session_info_s* session);
+
/* TODO: MAP, see above */
BT_OPP_GET_TRANSFER_PROGRESS,
BT_MAP_CREATE_SESSION = BT_FUNC_MAP_BASE,
BT_MAP_DESTROY_SESSION,
+ BT_MAP_UPDATE_INBOX,
BT_MAP_LIST_FOLDERS,
- BT_MAP_444,
BT_MAP_555,
BT_MAP_666,
BT_OBEX_SERVER_ALLOCATE,