[bluetooth] Added listFilterFields implementation 62/102862/2
authorLukasz Bardeli <l.bardeli@samsung.com>
Fri, 4 Nov 2016 09:15:35 +0000 (10:15 +0100)
committerPyun DoHyun <dh79.pyun@samsung.com>
Thu, 8 Dec 2016 00:15:46 +0000 (16:15 -0800)
[Feature] added implementation for listFilterFields method

[Verification] function checked with simple C program
 - listing filter fields is possible

Change-Id: Ic9829f6486ab939355a19f3d8426bc63df8504b8
Signed-off-by: Lukasz Bardeli <l.bardeli@samsung.com>
include/bluetooth_private.h
include/mobile/bluetooth_internal.h
include/wearable/bluetooth_internal.h
src/bluetooth-common.c
src/bluetooth-map-client.c

index 0f4352fa8fd4a888d70d8bb30ed04d6d8e7ec6a2..75dc3e599d3f89d7f328426c2b389dc7e9ea1b9d 100644 (file)
@@ -156,7 +156,7 @@ typedef enum {
        BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED, /**< Audio - HF : device state changed callback */
 #endif
        BT_EVENT_MAP_CLIENT_LIST_FOLDERS, /**< MAP client - listFolders event*/
-       BT_EVENT_MAP_CLIENT_111, /**< MAP client 111 */
+       BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS, /**< MAP - get filter field list callback */
        BT_EVENT_MAP_CLIENT_222, /**< MAP client 222 */
        BT_EVENT_MAP_CLIENT_333, /**< MAP client 333 */
        BT_EVENT_MAP_CLIENT_444, /**< MAP client 444 */
index 4205289ea2b663032d507f73efa46668929822eb..91fa02e2a4db8634173c19fcac161f9bc03a3cae 100644 (file)
@@ -1646,7 +1646,8 @@ int bt_map_client_list_folders(
  */
 int bt_map_client_list_filter_fields(
     bt_map_client_session_info_h handle,
-    bt_map_client_list_filter_fields_cb callback
+    bt_map_client_list_filter_fields_cb callback,
+    void *user_data
 );
 
 /**
index c39622b6a2570495deb34d1d42e54737c9682b51..71935a1332c43f3e7f3746e903241c7f0597e27f 100644 (file)
@@ -1616,7 +1616,8 @@ int bt_map_client_list_folders(
  */
 int bt_map_client_list_filter_fields(
     bt_map_client_session_info_h handle,
-    bt_map_client_list_filter_fields_cb callback
+    bt_map_client_list_filter_fields_cb callback,
+    void *user_data
 );
 
 /**
index a87f225328e4797094e8e7b56611479f9288cb00..7f0958d9526ff67ad31d497c04da4754284822cf 100644 (file)
@@ -1472,7 +1472,21 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                if (device_addr != NULL)
                        free(device_addr);
                break;
-       /// TODO MAP place for your case 1
+
+       case BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE:
+               {
+                       BT_INFO(" BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE event");
+                       bt_map_list_filter_fields_info_t* fields_info = (bt_map_list_filter_fields_info_t*)(param->param_data);
+
+                       ((bt_map_client_list_filter_fields_cb)bt_event_slot_container[event_index].callback)
+                                                       (param->result, fields_info->fields, fields_info->size,
+                                                       bt_event_slot_container[event_index].user_data);
+
+                       if (device_addr != NULL)
+                               free(device_addr);
+               }
+               break;
+
        /// TODO MAP place for your case 2
        /// TODO MAP place for your case 3
        /// TODO MAP place for your case 4
@@ -3054,7 +3068,8 @@ static int __bt_get_cb_index(int event)
                return BT_EVENT_OPP_CLIENT_PUSH_FINISHED;
        case BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE:
                return BT_EVENT_MAP_CLIENT_LIST_FOLDERS;
-       /// TODO MAP place for your case 1
+       case BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE:
+               return BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS;
        /// TODO MAP place for your case 2
        /// TODO MAP place for your case 3
        /// TODO MAP place for your case 4
index 8fdb08bb16d296f74548b54348c48ad933a0a8b1..db426cee1838d4f37761433a26329a4c5d9e684c 100644 (file)
@@ -202,10 +202,27 @@ int bt_map_client_list_folders(
 
 int bt_map_client_list_filter_fields(
     bt_map_client_session_info_h handle,
-    bt_map_client_list_filter_fields_cb callback)
+    bt_map_client_list_filter_fields_cb callback,
+    void *user_data)
 {
-       /* TODO: MAP */
-       return BT_ERROR_NONE;
+       int error_code = BT_ERROR_NONE;
+
+       //BT_CHECK_MAP_CLIENT_SUPPORT();
+       BT_CHECK_INIT_STATUS();
+       BT_CHECK_MAP_CLIENT_INIT_STATUS();
+       BT_CHECK_INPUT_PARAMETER(handle);
+
+       bt_map_client_session_info_s* session = (bt_map_client_session_info_s*) handle;
+
+       error_code = _bt_get_error_code(bluetooth_map_client_list_filter_fields(session));
+       if (error_code != BT_ERROR_NONE) {
+               BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+                               error_code);
+       } else {
+               _bt_set_cb(BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS, callback, user_data);
+       }
+
+       return error_code;
 }
 
 int bt_map_client_list_messages(