#define BT_CHECK_MAP_CLIENT_SUPPORT() \
{ \
BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_COMMON); \
- BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_MAP); \
+ BT_CHECK_SUPPORTED_FEATURE(BT_FEATURE_MAP); \
}
#define BT_CHECK_MAP_CLIENT_INIT_STATUS() \
int bt_map_client_initialize(void)
{
- /* TODO: MAP */
+ LOGE("bt_map_client_initialize");
+ int error_code = BT_ERROR_NONE;
+
+ //TODO it is not supported on TM1
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+
+ error_code = _bt_get_error_code(bluetooth_map_init());
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), /* LCOV_EXCL_LINE */
+ error_code); /* LCOV_EXCL_LINE */
+ return error_code; /* LCOV_EXCL_LINE */
+ }
+
+ is_map_client_initialized = true;
return BT_ERROR_NONE;
}
int bt_map_client_deinitialize(void)
{
- /* TODO: MAP */
+ int error_code = BT_ERROR_NONE;
+
+ //BT_CHECK_MAP_CLIENT_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_MAP_CLIENT_INIT_STATUS();
+
+ error_code = _bt_get_error_code(bluetooth_map_deinit());
+
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code), /* LCOV_EXCL_LINE */
+ error_code); /* LCOV_EXCL_LINE */
+ return error_code; /* LCOV_EXCL_LINE */
+ }
+
+ is_map_client_initialized = false;
return BT_ERROR_NONE;
}
+
+int bt_map_client_create_session(const char* remote_address, bt_map_session_info_h* out_h)
+{
+ BT_DBG("bt_map_client_create_session");
+ 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(remote_address);
+
+ bt_map_session_info_s* session = malloc(sizeof(bt_map_session_info_s));
+ session->remote_address = strdup(remote_address);
+
+ error_code = _bt_get_error_code(bluetooth_map_create_session(session));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ free(session->remote_address);
+ free(session);
+ } else {
+ BT_DBG("Successfully created session");
+ *out_h = session;
+ }
+ return error_code;
+
+}
+
+int bt_map_client_destroy_session(bt_map_session_info_h s)
+{
+ BT_DBG("bt_map_client_destroy_session");
+ 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(s);
+
+ bt_map_session_info_s* session = (bt_map_session_info_s*) s;
+
+ error_code = _bt_get_error_code(bluetooth_map_destroy_session(session));
+ if (error_code != BT_ERROR_NONE) {
+ BT_ERR("%s(0x%08x)", _bt_convert_error_to_string(error_code),
+ error_code);
+ } else {
+ BT_DBG("Successfully destroyed session");
+ }
+ return error_code;
+}
+
int bt_map_client_set_folder(const char *name)
{
/* TODO: MAP */