Reduce the cyclomatic complexity 25/189025/4 accepted/tizen/unified/20180914.073134 submit/tizen/20180913.053639
authorDoHyun Pyun <dh79.pyun@samsung.com>
Thu, 13 Sep 2018 00:23:55 +0000 (09:23 +0900)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Thu, 13 Sep 2018 04:40:13 +0000 (13:40 +0900)
The profile check logic is redundent, because the event callback
will not be invoked in those profiles. And replace some functions to
the mapping table.

Change-Id: I8c347ec66ffac6c4c749bebce54eb6d36a57145b
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>
src/bluetooth-common.c
src/bluetooth-device.c

index b149d1d..a9dfb15 100644 (file)
@@ -36,6 +36,247 @@ static bool is_le_initialized = false;
 
 static bt_event_sig_event_slot_s bt_event_slot_container[BT_EVENT_MAX] = { {NULL, NULL}, };
 
+typedef struct {
+       int err;
+       char *str;
+} bt_err2str_table_t;
+
+static bt_err2str_table_t err2str[] = {
+       { BT_ERROR_CANCELLED, "CANCELLED" },
+       { BT_ERROR_INVALID_PARAMETER, "INVALID_PARAMETER" },
+       { BT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY" },
+       { BT_ERROR_RESOURCE_BUSY, "RESOURCE_BUSY" },
+       { BT_ERROR_TIMED_OUT, "TIMED_OUT" },
+       { BT_ERROR_NOW_IN_PROGRESS, "NOW_IN_PROGRESS" },
+       { BT_ERROR_NOT_INITIALIZED, "NOT_INITIALIZED" },
+       { BT_ERROR_NOT_ENABLED, "DEVICE_NOT_ENABLED" },
+       { BT_ERROR_ALREADY_DONE, "ALREADY_DONE" },
+       { BT_ERROR_OPERATION_FAILED, "OPERATION_FAILED" },
+       { BT_ERROR_NOT_IN_PROGRESS, "NOT_IN_PROGRESS" },
+       { BT_ERROR_REMOTE_DEVICE_NOT_BONDED, "REMOTE_DEVICE_NOT_BONDED" },
+       { BT_ERROR_AUTH_REJECTED, "AUTH_REJECTED" },
+       { BT_ERROR_AUTH_FAILED, "AUTH_FAILED" },
+       { BT_ERROR_REMOTE_DEVICE_NOT_FOUND, "REMOTE_DEVICE_NOT_FOUND" },
+       { BT_ERROR_SERVICE_SEARCH_FAILED, "SERVICE_SEARCH_FAILED" },
+       { BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED, "REMOTE_DEVICE_NOT_CONNECTED" },
+       { BT_ERROR_PERMISSION_DENIED, "PERMISSION_DENIED" },
+       { BT_ERROR_SERVICE_NOT_FOUND, "SERVICE_NOT_FOUND" },
+       { BT_ERROR_NOT_SUPPORTED, "NOT_SUPPORTD" },
+       { BT_ERROR_NO_DATA, "NO_DATA" },
+       { BT_ERROR_QUOTA_EXCEEDED, "QUOTA EXCEEDED" },
+       { BT_ERROR_AGAIN, "AGAIN" },
+       { BT_ERROR_DEVICE_POLICY_RESTRICTION, "DEVICE_POLICY_RESTRICTION" },
+       { 0, "UNKNOWN" }
+};
+
+typedef struct {
+       int origin_err;
+       int public_err;
+} bt_err2pub_table_t;
+
+static bt_err2pub_table_t err2pub[] = {
+       { BLUETOOTH_ERROR_NONE, BT_ERROR_NONE },
+       { BLUETOOTH_ERROR_INVALID_DATA, BT_ERROR_INVALID_PARAMETER },
+       { BLUETOOTH_ERROR_INVALID_PARAM, BT_ERROR_INVALID_PARAMETER },
+       { BLUETOOTH_ERROR_NOT_CONNECTED, BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED },
+       { BLUETOOTH_ERROR_NOT_SUPPORT, BT_ERROR_NOT_SUPPORTED },
+       { BLUETOOTH_ERROR_MEMORY_ALLOCATION, BT_ERROR_OUT_OF_MEMORY },
+       { BLUETOOTH_ERROR_OUT_OF_MEMORY, BT_ERROR_OUT_OF_MEMORY },
+       { BLUETOOTH_ERROR_TIMEOUT, BT_ERROR_TIMED_OUT },
+       { BLUETOOTH_ERROR_DEVICE_NOT_ENABLED, BT_ERROR_NOT_ENABLED },
+       { BLUETOOTH_ERROR_DEVICE_ALREADY_ENABLED, BT_ERROR_ALREADY_DONE },
+       { BLUETOOTH_ERROR_ALREADY_INITIALIZED, BT_ERROR_ALREADY_DONE },
+       { BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST, BT_ERROR_ALREADY_DONE },
+       { BLUETOOTH_ERROR_ALREADY_DEACTIVATED, BT_ERROR_ALREADY_DONE },
+       { BLUETOOTH_ERROR_ALREADY_CONNECT, BT_ERROR_ALREADY_DONE },
+       { BLUETOOTH_ERROR_NOT_PAIRED, BT_ERROR_REMOTE_DEVICE_NOT_BONDED },
+       { BLUETOOTH_ERROR_NOT_IN_OPERATION, BT_ERROR_NOT_IN_PROGRESS },
+       { BLUETOOTH_ERROR_IN_PROGRESS, BT_ERROR_NOT_IN_PROGRESS },
+       { BLUETOOTH_ERROR_DEVICE_BUSY, BT_ERROR_RESOURCE_BUSY },
+       { BLUETOOTH_ERROR_CANCEL, BT_ERROR_CANCELLED },
+       { BLUETOOTH_ERROR_CANCEL_BY_USER, BT_ERROR_CANCELLED },
+       { BLUETOOTH_ERROR_AUTHENTICATION_FAILED, BT_ERROR_AUTH_FAILED },
+       { BLUETOOTH_ERROR_HOST_DOWN, BT_ERROR_REMOTE_DEVICE_NOT_FOUND },
+       { BLUETOOTH_ERROR_SERVICE_SEARCH_ERROR, BT_ERROR_SERVICE_SEARCH_FAILED },
+       { BLUETOOTH_ERROR_PERMISSION_DEINED, BT_ERROR_PERMISSION_DENIED },
+       { BLUETOOTH_ERROR_SERVICE_NOT_FOUND, BT_ERROR_SERVICE_NOT_FOUND },
+       { BLUETOOTH_ERROR_NOT_INITIALIZED, BT_ERROR_NOT_INITIALIZED },
+       { BLUETOOTH_ERROR_NO_RESOURCES, BT_ERROR_QUOTA_EXCEEDED },
+       { BLUETOOTH_ERROR_AUTHENTICATION_REJECTED, BT_ERROR_AUTH_REJECTED },
+       { BLUETOOTH_ERROR_AUTHORIZATION_REJECTED, BT_ERROR_AUTHORIZATION_REJECTED },
+       { BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION, BT_ERROR_DEVICE_POLICY_RESTRICTION },
+       { BLUETOOTH_ERROR_NO_DATA, BT_ERROR_NO_DATA },
+       { BLUETOOTH_ERROR_PARING_FAILED, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_MAX_CONNECTION, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_REGISTRATION_FAILED, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_CONNECTION_BUSY, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_MAX_CLIENT, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_INVALID_CALLBACK, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_NOT_FOUND, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_INTERNAL, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_CONNECTION_ERROR, BT_ERROR_OPERATION_FAILED },
+       { BLUETOOTH_ERROR_ACCESS_DENIED, BT_ERROR_OPERATION_FAILED },
+       { 0xFF, BT_ERROR_OPERATION_FAILED }
+};
+
+typedef struct {
+       int event;
+       int index;
+} bt_event2index_table_t;
+
+static bt_event2index_table_t event2index[] = {
+       { BLUETOOTH_EVENT_ENABLED, BT_EVENT_STATE_CHANGED },
+       { BLUETOOTH_EVENT_DISABLED, BT_EVENT_STATE_CHANGED },
+       { BLUETOOTH_EVENT_LE_ENABLED, BT_EVENT_LE_STATE_CHANGED },
+       { BLUETOOTH_EVENT_LE_DISABLED, BT_EVENT_LE_STATE_CHANGED },
+       { BLUETOOTH_EVENT_LOCAL_NAME_CHANGED, BT_EVENT_NAME_CHANGED },
+       { BLUETOOTH_EVENT_DISCOVERABLE_MODE_CHANGED, BT_EVENT_VISIBILITY_MODE_CHANGED },
+       { BLUETOOTH_EVENT_DISCOVERABLE_TIMEOUT_CHANGED, BT_EVENT_VISIBILITY_DURATION_CHANGED },
+       { BLUETOOTH_EVENT_DISCOVERY_STARTED, BT_EVENT_DEVICE_DISCOVERY_STATE_CHANGED },
+       { BLUETOOTH_EVENT_DISCOVERY_FINISHED, BT_EVENT_DEVICE_DISCOVERY_STATE_CHANGED },
+       { BLUETOOTH_EVENT_REMOTE_DEVICE_NAME_UPDATED, BT_EVENT_DEVICE_DISCOVERY_STATE_CHANGED },
+       { BLUETOOTH_EVENT_BONDING_FINISHED, BT_EVENT_BOND_CREATED },
+       { BLUETOOTH_EVENT_BONDED_DEVICE_REMOVED, BT_EVENT_BOND_DESTROYED },
+       { BLUETOOTH_EVENT_KEYBOARD_PASSKEY_DISPLAY, BT_EVENT_AUTHENTICATION_REQUEST },
+       { BLUETOOTH_EVENT_PASSKEY_REQUEST,  BT_EVENT_AUTHENTICATION_REQUEST},
+       { BLUETOOTH_EVENT_PIN_REQUEST, BT_EVENT_AUTHENTICATION_REQUEST },
+       { BLUETOOTH_EVENT_PASSKEY_CONFIRM_REQUEST, BT_EVENT_AUTHENTICATION_REQUEST },
+       { BLUETOOTH_EVENT_DEVICE_AUTHORIZED, BT_EVENT_AUTHORIZATION_CHANGED },
+       { BLUETOOTH_EVENT_DEVICE_UNAUTHORIZED, BT_EVENT_AUTHORIZATION_CHANGED },
+       { BLUETOOTH_EVENT_DEVICE_CONNECTED, BT_EVENT_DEVICE_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_DEVICE_DISCONNECTED, BT_EVENT_DEVICE_CONNECTION_STATUS },
+#ifdef TIZEN_GATT_CLIENT
+       { BLUETOOTH_EVENT_GATT_CLIENT_CONNECTED, BT_EVENT_GATT_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_GATT_CLIENT_DISCONNECTED, BT_EVENT_GATT_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_GATT_SERVER_CONNECTED, BT_EVENT_GATT_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_GATT_SERVER_DISCONNECTED, BT_EVENT_GATT_CONNECTION_STATUS },
+#else
+       { BLUETOOTH_EVENT_GATT_CONNECTED, BT_EVENT_GATT_CONNECTION_STATUS; },
+       { BLUETOOTH_EVENT_GATT_DISCONNECTED, BT_EVENT_GATT_CONNECTION_STATUS; },
+#endif
+       { BLUETOOTH_EVENT_SERVICE_SEARCHED, BT_EVENT_SERVICE_SEARCHED },
+       { BLUETOOTH_EVENT_RFCOMM_DATA_RECEIVED, BT_EVENT_DATA_RECEIVED },
+       { BLUETOOTH_EVENT_RFCOMM_CONNECTED, BT_EVENT_CONNECTION_STATE_CHANGED },
+       { BLUETOOTH_EVENT_RFCOMM_DISCONNECTED, BT_EVENT_CONNECTION_STATE_CHANGED },
+       { BLUETOOTH_EVENT_RFCOMM_AUTHORIZE, BT_EVENT_RFCOMM_CONNECTION_REQUESTED },
+       { BLUETOOTH_EVENT_OBEX_SERVER_CONNECTION_AUTHORIZE, BT_EVENT_OPP_CONNECTION_REQUESTED },
+       { BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_AUTHORIZE, BT_EVENT_OPP_PUSH_REQUESTED },
+       { BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_STARTED, BT_EVENT_OPP_SERVER_TRANSFER_PROGRESS },
+       { BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_PROGRESS, BT_EVENT_OPP_SERVER_TRANSFER_PROGRESS },
+       { BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_COMPLETED, BT_EVENT_OPP_SERVER_TRANSFER_FINISHED },
+       { BLUETOOTH_EVENT_OPC_CONNECTED, BT_EVENT_OPP_CLIENT_PUSH_RESPONSED },
+       { BLUETOOTH_EVENT_OPC_TRANSFER_STARTED, BT_EVENT_OPP_CLIENT_PUSH_PROGRESS },
+       { BLUETOOTH_EVENT_OPC_TRANSFER_PROGRESS, BT_EVENT_OPP_CLIENT_PUSH_PROGRESS },
+       { BLUETOOTH_EVENT_OPC_TRANSFER_COMPLETE, BT_EVENT_OPP_CLIENT_PUSH_PROGRESS },
+       { BLUETOOTH_EVENT_OPC_DISCONNECTED, BT_EVENT_OPP_CLIENT_PUSH_FINISHED },
+       { BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE, BT_EVENT_MAP_CLIENT_LIST_FOLDERS },
+       { BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE, BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS },
+       { BLUETOOTH_EVENT_MAP_LIST_MESSAGES_COMPLETE, BT_EVENT_MAP_CLIENT_LIST_MESSAGES },
+       { BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE, BT_EVENT_MAP_CLIENT_GET_MESSAGE },
+       { BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE, BT_EVENT_MAP_CLIENT_PUSH_MESSAGE },
+       { BLUETOOTH_EVENT_NETWORK_SERVER_CONNECTED, BT_EVENT_NAP_CONNECTION_STATE_CHANGED },
+       { BLUETOOTH_EVENT_NETWORK_SERVER_DISCONNECTED, BT_EVENT_NAP_CONNECTION_STATE_CHANGED },
+       { BLUETOOTH_EVENT_NETWORK_CONNECTED, BT_EVENT_PAN_CONNECTION_STATE_CHANGED },
+       { BLUETOOTH_EVENT_NETWORK_DISCONNECTED, BT_EVENT_PAN_CONNECTION_STATE_CHANGED },
+       { BLUETOOTH_EVENT_HDP_DATA_RECEIVED, BT_EVENT_HDP_DATA_RECEIVED },
+       { BLUETOOTH_EVENT_HDP_CONNECTED, BT_EVENT_HDP_CONNECTED },
+       { BLUETOOTH_EVENT_HDP_DISCONNECTED, BT_EVENT_HDP_DISCONNECTED },
+       { BLUETOOTH_EVENT_AG_CONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AG_DISCONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AG_SPEAKER_GAIN, BT_EVENT_AG_SPEAKER_GAIN_CHANGE },
+       { BLUETOOTH_EVENT_AG_MIC_GAIN, BT_EVENT_AG_MICROPHONE_GAIN_CHANGE },
+       { BLUETOOTH_EVENT_AG_AUDIO_CONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AG_AUDIO_DISCONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_TELEPHONY_AUDIO_CONNECTED, BT_EVENT_AG_SCO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_TELEPHONY_AUDIO_DISCONNECTED, BT_EVENT_AG_SCO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_TELEPHONY_ANSWER_CALL, BT_EVENT_AG_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_RELEASE_CALL, BT_EVENT_AG_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_REJECT_CALL, BT_EVENT_AG_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_CHLD_0_RELEASE_ALL_HELD_CALL, BT_EVENT_AG_MULTI_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_CHLD_1_RELEASE_ALL_ACTIVE_CALL, BT_EVENT_AG_MULTI_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_CHLD_2_ACTIVE_HELD_CALL, BT_EVENT_AG_MULTI_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_CHLD_3_MERGE_CALL, BT_EVENT_AG_MULTI_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_CHLD_4_EXPLICIT_CALL_TRANSFER, BT_EVENT_AG_MULTI_CALL_HANDLING_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_SEND_DTMF, BT_EVENT_AG_DTMF_TRANSMITTED },
+       { BLUETOOTH_EVENT_AV_CONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AV_DISCONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AV_SOURCE_CONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AV_SOURCE_DISCONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AVRCP_CONNECTED, BT_EVENT_AVRCP_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AVRCP_DISCONNECTED, BT_EVENT_AVRCP_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AVRCP_CONTROL_CONNECTED, BT_EVENT_AVRCP_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AVRCP_CONTROL_DISCONNECTED, BT_EVENT_AVRCP_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_AVRCP_SETTING_SHUFFLE_STATUS, BT_EVENT_AVRCP_SHUFFLE_MODE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_CONTROL_SHUFFLE_STATUS, BT_EVENT_AVRCP_SHUFFLE_MODE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_SETTING_EQUALIZER_STATUS, BT_EVENT_AVRCP_EQUALIZER_STATE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_CONTROL_EQUALIZER_STATUS, BT_EVENT_AVRCP_EQUALIZER_STATE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_SETTING_REPEAT_STATUS, BT_EVENT_AVRCP_REPEAT_MODE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_CONTROL_REPEAT_STATUS, BT_EVENT_AVRCP_REPEAT_MODE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_SETTING_SCAN_STATUS, BT_EVENT_AVRCP_SCAN_MODE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_CONTROL_SCAN_STATUS, BT_EVENT_AVRCP_SCAN_MODE_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_SONG_POSITION_STATUS, BT_EVENT_AVRCP_SONG_POSITION_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_PLAY_STATUS_CHANGED, BT_EVENT_AVRCP_PLAY_STATUS_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_TRACK_CHANGED, BT_EVENT_AVRCP_TRACK_INFO_CHANGED },
+       { BLUETOOTH_EVENT_AVRCP_DELAY_CHANGED, BT_EVENT_AVRCP_DELAY_CHANGED },
+       { BLUETOOTH_HID_CONNECTED, BT_EVENT_HID_CONNECTION_STATUS },
+       { BLUETOOTH_HID_DISCONNECTED, BT_EVENT_HID_CONNECTION_STATUS },
+       { BLUETOOTH_HID_DEVICE_CONNECTED, BT_EVENT_HID_DEVICE_CONNECTION_STATUS },
+       { BLUETOOTH_HID_DEVICE_DISCONNECTED, BT_EVENT_HID_DEVICE_CONNECTION_STATUS },
+       { BLUETOOTH_HID_DEVICE_DATA_RECEIVED, BT_EVENT_HID_DEVICE_DATA_RECEIVED },
+       { BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED, BT_EVENT_GATT_CLIENT_VALUE_CHANGED },
+       { BLUETOOTH_EVENT_GATT_READ_CHAR, BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC },
+       { BLUETOOTH_EVENT_GATT_WRITE_CHAR, BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC },
+       { BLUETOOTH_EVENT_GATT_READ_DESC, BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR },
+       { BLUETOOTH_EVENT_GATT_WRITE_DESC, BT_EVENT_GATT_CLIENT_WRITE_DESCRIPTOR },
+       { BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED, BT_EVENT_GATT_ATT_MTU_CHANGE_STATUS },
+       { BLUETOOTH_EVENT_MANUFACTURER_DATA_CHANGED, BT_EVENT_MANUFACTURER_DATA_CHANGED },
+       { BLUETOOTH_EVENT_PASSKEY_NOTIFICATION, BT_EVENT_PASSKEY_NOTIFICATION_EVENT },
+       { BLUETOOTH_EVENT_CONNECTABLE_CHANGED, BT_EVENT_CONNECTABLE_CHANGED_EVENT },
+       { BLUETOOTH_EVENT_TELEPHONY_VENDOR_AT_CMD, BT_EVENT_AG_VENDOR_CMD },
+       { BLUETOOTH_EVENT_RSSI_ENABLED, BT_EVENT_RSSI_ENABLED_EVENT },
+       { BLUETOOTH_EVENT_RSSI_ALERT, BT_EVENT_RSSI_ALERT_EVENT },
+       { BLUETOOTH_EVENT_RAW_RSSI, BT_EVENT_GET_RSSI_EVENT },
+       { BLUETOOTH_EVENT_IPSP_CONNECTED, BT_EVENT_IPSP_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_IPSP_DISCONNECTED, BT_EVENT_IPSP_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_SUPPORTED_PROFILE_TRUSTED, BT_EVENT_SUPPORTED_TRUSTED_PROFILE_EVENT },
+       { BLUETOOTH_EVENT_LE_DATA_LENGTH_CHANGED, BT_EVENT_LE_DATA_LENGTH_CHANGED },
+       { BLUETOOTH_PBAP_CONNECTED, BT_EVENT_PBAP_CONNECTION_STATUS },
+       { BLUETOOTH_PBAP_DISCONNECTED, BT_EVENT_PBAP_CONNECTION_STATUS },
+       { BLUETOOTH_PBAP_PHONEBOOK_SIZE, BT_EVENT_PBAP_PHONEBOOK_SIZE },
+       { BLUETOOTH_PBAP_PHONEBOOK_PULL, BT_EVENT_PBAP_PHONEBOOK_PULL },
+       { BLUETOOTH_PBAP_VCARD_LIST, BT_EVENT_PBAP_VCARD_LIST },
+       { BLUETOOTH_PBAP_VCARD_PULL, BT_EVENT_PBAP_VCARD_PULL },
+       { BLUETOOTH_PBAP_PHONEBOOK_SEARCH, BT_EVENT_PBAP_PHONEBOOK_SEARCH },
+       { BLUETOOTH_EVENT_HF_CONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_HF_DISCONNECTED, BT_EVENT_AUDIO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_HF_AUDIO_CONNECTED, BT_EVENT_HF_SCO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_HF_AUDIO_DISCONNECTED, BT_EVENT_HF_SCO_CONNECTION_STATUS },
+       { BLUETOOTH_EVENT_HF_RING_INDICATOR, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_TERMINATED, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_STARTED, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_ENDED, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_WAITING, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_ON_HOLD, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_UNHOLD, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_SWAPPED, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_FAILED_TO_DIAL, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALL_IDLE, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALLSETUP_DIALING, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING, BT_EVENT_HF_REMOTE_CALL_EVENT },
+       { BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD, BT_EVENT_HF_VENDOR_DEP_CMD_EVENT },
+       { BLUETOOTH_EVENT_HF_VOLUME_SPEAKER, BT_EVENT_HF_SPEAKER_GAIN_CHANGE },
+       { BLUETOOTH_EVENT_HF_CALL_STATUS, BT_EVENT_HF_CALL_STATUS_UPDATED_EVENT },
+       { BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED, BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED },
+       { BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_ENABLED, BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED },
+       { BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED, BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED },
+       { BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED, BT_EVENT_IPSP_INIT_STATE_CHANGED },
+       { BLUETOOTH_EVENT_PXP_PROPERTY_CHANGED, BT_EVENT_PROXIMITY_REPORTER_PROPERTY_CHANGED },
+       { BLUETOOTH_EVENT_TDS_ACTIVATION_REQUESTED, BT_EVENT_TDS_ACTIVATION_REQUESTED },
+       { BLUETOOTH_EVENT_OTP_SERVER_STATE_CHANGED, BT_EVENT_OTP_SERVER_STATE_CHANGED },
+       { 0, -1 }
+};
+
 /*
  *  Internal Functions
  */
@@ -173,76 +414,14 @@ int _bt_le_adapter_deinit(void)
 
 int _bt_get_error_code(int origin_error)
 {
-       switch (origin_error) {
-       case BLUETOOTH_ERROR_NONE:
-               return BT_ERROR_NONE;
-       case BLUETOOTH_ERROR_INVALID_DATA:
-       case BLUETOOTH_ERROR_INVALID_PARAM:
-               return BT_ERROR_INVALID_PARAMETER;
-       case BLUETOOTH_ERROR_NOT_CONNECTED:
-               return BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED;
-       case BLUETOOTH_ERROR_NOT_SUPPORT:
-               return BT_ERROR_NOT_SUPPORTED;
-       case BLUETOOTH_ERROR_MEMORY_ALLOCATION:
-       case BLUETOOTH_ERROR_OUT_OF_MEMORY:
-               return BT_ERROR_OUT_OF_MEMORY;
-       case BLUETOOTH_ERROR_TIMEOUT:
-               return BT_ERROR_TIMED_OUT;
-       case BLUETOOTH_ERROR_DEVICE_NOT_ENABLED:
-               return BT_ERROR_NOT_ENABLED;
-       case BLUETOOTH_ERROR_DEVICE_ALREADY_ENABLED:
-       case BLUETOOTH_ERROR_ALREADY_INITIALIZED:
-       case BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST:
-       case BLUETOOTH_ERROR_ALREADY_DEACTIVATED:
-       case BLUETOOTH_ERROR_ALREADY_CONNECT:
-               return BT_ERROR_ALREADY_DONE;
-       case BLUETOOTH_ERROR_NOT_PAIRED:
-               return BT_ERROR_REMOTE_DEVICE_NOT_BONDED;
-       case BLUETOOTH_ERROR_NOT_IN_OPERATION:
-               return BT_ERROR_NOT_IN_PROGRESS;
-       case BLUETOOTH_ERROR_IN_PROGRESS:
-               return BT_ERROR_NOW_IN_PROGRESS;
-       case BLUETOOTH_ERROR_DEVICE_BUSY:
-               return BT_ERROR_RESOURCE_BUSY;
-       case BLUETOOTH_ERROR_CANCEL:
-       case BLUETOOTH_ERROR_CANCEL_BY_USER:
-               return BT_ERROR_CANCELLED;
-       case BLUETOOTH_ERROR_AUTHENTICATION_FAILED:
-               return BT_ERROR_AUTH_FAILED;
-       case BLUETOOTH_ERROR_HOST_DOWN:
-               return BT_ERROR_REMOTE_DEVICE_NOT_FOUND;
-       case BLUETOOTH_ERROR_SERVICE_SEARCH_ERROR:
-               return BT_ERROR_SERVICE_SEARCH_FAILED;
-       case BLUETOOTH_ERROR_PERMISSION_DEINED:
-               return BT_ERROR_PERMISSION_DENIED;
-       case BLUETOOTH_ERROR_SERVICE_NOT_FOUND:
-               return BT_ERROR_SERVICE_NOT_FOUND;
-       case BLUETOOTH_ERROR_NOT_INITIALIZED:
-               return BT_ERROR_NOT_INITIALIZED;
-       case BLUETOOTH_ERROR_NO_RESOURCES:
-               return BT_ERROR_QUOTA_EXCEEDED;
-       case BLUETOOTH_ERROR_AUTHENTICATION_REJECTED:
-               return BT_ERROR_AUTH_REJECTED;
-       case BLUETOOTH_ERROR_AUTHORIZATION_REJECTED:
-               return BT_ERROR_AUTHORIZATION_REJECTED;
-       case BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION:
-               return BT_ERROR_DEVICE_POLICY_RESTRICTION;
-       case BLUETOOTH_ERROR_NO_DATA:
-               return BT_ERROR_NO_DATA;
-       case BLUETOOTH_ERROR_PARING_FAILED:
-       case BLUETOOTH_ERROR_MAX_CONNECTION:
-       case BLUETOOTH_ERROR_REGISTRATION_FAILED:
-       case BLUETOOTH_ERROR_CONNECTION_BUSY:
-       case BLUETOOTH_ERROR_MAX_CLIENT:
-       case BLUETOOTH_ERROR_INVALID_CALLBACK:
-       case BLUETOOTH_ERROR_NOT_FOUND:
-       case BLUETOOTH_ERROR_INTERNAL:
-       case BLUETOOTH_ERROR_CONNECTION_ERROR:
-       case BLUETOOTH_ERROR_ACCESS_DENIED:
-       default:
-               return BT_ERROR_OPERATION_FAILED;
+       int i;
+
+       for (i = 0; err2pub[i].origin_err != 0xFF; i++) {
+               if (err2pub[i].origin_err == origin_error)
+                       return err2pub[i].public_err;
        }
 
+       return BT_ERROR_OPERATION_FAILED; /* LCOV_EXCL_LINE */
 }
 
 /* LCOV_EXCL_START */
@@ -414,58 +593,14 @@ void _bt_convert_address_to_hex(bluetooth_device_address_t *addr_hex, const char
 
 char *_bt_convert_error_to_string(int error)
 {
-       switch (error) {
-       case BT_ERROR_CANCELLED:
-               return "CANCELLED";
-       case BT_ERROR_INVALID_PARAMETER:
-               return "INVALID_PARAMETER"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_OUT_OF_MEMORY:
-               return "OUT_OF_MEMORY"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_RESOURCE_BUSY:
-               return "RESOURCE_BUSY"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_TIMED_OUT:
-               return "TIMED_OUT"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_NOW_IN_PROGRESS:
-               return "NOW_IN_PROGRESS"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_NOT_INITIALIZED:
-               return "NOT_INITIALIZED";
-       case BT_ERROR_NOT_ENABLED:
-               return "DEVICE_NOT_ENABLED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_ALREADY_DONE:
-               return "ALREADY_DONE"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_OPERATION_FAILED:
-               return "OPERATION_FAILED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_NOT_IN_PROGRESS:
-               return "NOT_IN_PROGRESS";
-       case BT_ERROR_REMOTE_DEVICE_NOT_BONDED:
-               return "REMOTE_DEVICE_NOT_BONDED";
-       case BT_ERROR_AUTH_REJECTED:
-               return "AUTH_REJECTED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_AUTH_FAILED:
-               return "AUTH_FAILED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_REMOTE_DEVICE_NOT_FOUND:
-               return "REMOTE_DEVICE_NOT_FOUND"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_SERVICE_SEARCH_FAILED:
-               return "SERVICE_SEARCH_FAILED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED:
-               return "REMOTE_DEVICE_NOT_CONNECTED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_PERMISSION_DENIED:
-               return "PERMISSION_DENIED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_SERVICE_NOT_FOUND:
-               return "SERVICE_NOT_FOUND"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_NOT_SUPPORTED:
-               return "NOT_SUPPORTD"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_NO_DATA:
-               return "NO_DATA"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_QUOTA_EXCEEDED:
-               return "QUOTA EXCEEDED"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_AGAIN:
-               return "AGAIN"; /* LCOV_EXCL_LINE */
-       case BT_ERROR_DEVICE_POLICY_RESTRICTION:
-               return "DEVICE_POLICY_RESTRICTION"; /* LCOV_EXCL_LINE */
-       default:
-               return "UNKNOWN"; /* LCOV_EXCL_LINE */
+       int i;
+
+       for (i = 0; err2str[i].err != 0; i++) {
+               if (err2str[i].err == error)
+                       return err2str[i].str;
        }
+
+       return "UNKNOWN"; /* LCOV_EXCL_LINE */
 }
 
 char *_bt_convert_uuid_to_uuid128(const char *uuid)
@@ -2731,8 +2866,7 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                if (device_addr != NULL)
                        free(device_addr);
                break;
-       case BLUETOOTH_PBAP_CONNECTED:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_PBAP_CONNECTED: {
                bt_pbap_connection_state_changed_cb cb = bt_event_slot_container[event_index].callback;
                void *user_data_pbap = bt_event_slot_container[event_index].user_data;
                bt_pbap_connected_t *connected = (bt_pbap_connected_t *)param->param_data;
@@ -2746,11 +2880,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                        free(device_addr);
 
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_PBAP_DISCONNECTED:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_PBAP_DISCONNECTED: {
                bt_pbap_connection_state_changed_cb cb = bt_event_slot_container[event_index].callback;
                void *user_data_pbap = bt_event_slot_container[event_index].user_data;
                bt_pbap_connected_t *connected = (bt_pbap_connected_t *)param->param_data;
@@ -2764,11 +2895,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                        free(device_addr);
 
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_PBAP_PHONEBOOK_SIZE:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_PBAP_PHONEBOOK_SIZE: {
                bt_pbap_phone_book_size_cb cb = bt_event_slot_container[event_index].callback;
                void *user_data_pbap = bt_event_slot_container[event_index].user_data;
                bt_pbap_phonebook_size_t *pb_size = (bt_pbap_phonebook_size_t *)param->param_data;
@@ -2783,11 +2911,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                        free(device_addr);
 
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_PBAP_PHONEBOOK_PULL:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_PBAP_PHONEBOOK_PULL: {
                bt_pbap_phone_book_received_cb cb = bt_event_slot_container[event_index].callback;
                void *user_data_pbap = bt_event_slot_container[event_index].user_data;
                bt_pbap_phonebook_pull_t *pb_pull = (bt_pbap_phonebook_pull_t *)(param->param_data);
@@ -2803,11 +2928,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                        free(device_addr);
 
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_PBAP_VCARD_LIST:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_PBAP_VCARD_LIST: {
                int i;
                bt_pbap_list_vcards_cb cb = bt_event_slot_container[event_index].callback;
                void *user_data_pbap = bt_event_slot_container[event_index].user_data;
@@ -2837,11 +2959,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                        free(vcard_info);
                }
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_PBAP_VCARD_PULL:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_PBAP_VCARD_PULL: {
                bt_pbap_phone_book_received_cb cb = bt_event_slot_container[event_index].callback;
                void *user_data_pbap = bt_event_slot_container[event_index].user_data;
                bt_pbap_vcard_pull_t *vc_pull = (bt_pbap_vcard_pull_t *)(param->param_data);
@@ -2857,11 +2976,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                        free(device_addr);
 
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_PBAP_PHONEBOOK_SEARCH:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_PBAP_PHONEBOOK_SEARCH: {
                bt_pbap_list_vcards_cb cb = bt_event_slot_container[event_index].callback;
                void *local_user_data = bt_event_slot_container[event_index].user_data;
                bt_pbap_phonebook_search_list_t *vc_list = (bt_pbap_phonebook_search_list_t *)(param->param_data);
@@ -2884,11 +3000,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                g_free(vcard_info);
 
                break;
-       } else {
-               break; /* goto default; */
        }
        case BLUETOOTH_EVENT_HF_CONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CONNECTED");
                device_addr = (char *)(param->param_data);
                ((bt_audio_connection_state_changed_cb)bt_event_slot_container[event_index].callback)
@@ -2896,7 +3009,6 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_DISCONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_DISCONNECTED");
                device_addr = (char *)(param->param_data);
                ((bt_audio_connection_state_changed_cb)bt_event_slot_container[event_index].callback)
@@ -2904,7 +3016,6 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_AUDIO_CONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_AUDIO_CONNECTED");
                device_addr = (char *)(param->param_data);
                ((bt_hf_sco_state_changed_cb)bt_event_slot_container[event_index].callback)
@@ -2912,7 +3023,6 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_AUDIO_DISCONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_AUDIO_DISCONNECTED");
                device_addr = (char *)(param->param_data);
                ((bt_hf_sco_state_changed_cb)bt_event_slot_container[event_index].callback)
@@ -2920,7 +3030,6 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_RING_INDICATOR:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_RING_INDICATOR");
                phone_number = (char *)(param->param_data);
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
@@ -2928,77 +3037,66 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_TERMINATED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_TERMINATED");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_CALL_TERMINATED, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_FAILED_TO_DIAL:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_FAILED_TO_DIAL");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_FAILED_TO_DIALING, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_IDLE:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_IDLE");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_IDLE, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_INCOMING, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALLSETUP_DIALING:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALLSETUP_DIALING");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_DIALING, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_ALERTING, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_STARTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_STARTED");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_CALL_STARTED, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_ENDED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_ENDED");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_CALL_ENDED, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_ENABLED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_ENABLED");
                ((bt_hf_remote_device_state_changed_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_DEVICE_STATE_VOICE_RECOGNITON, TRUE,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED");
                ((bt_hf_remote_device_state_changed_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_DEVICE_STATE_VOICE_RECOGNITON, FALSE,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_WAITING:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_WAITING");
                phone_number = (char *)(param->param_data);
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
@@ -3006,28 +3104,24 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_ON_HOLD:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_ON_HOLD");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_HELD, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_UNHOLD:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_UNHOLD");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_UNHELD, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
        case BLUETOOTH_EVENT_HF_CALL_SWAPPED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_SWAPPED");
                ((bt_hf_remote_call_event_cb)bt_event_slot_container[event_index].callback)
                (BT_HF_REMOTE_CALL_EVENT_SWAPPED, NULL,
                bt_event_slot_container[event_index].user_data);
                break;
-       case BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) break;
+       case BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD: {
                BT_INFO("BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD");
                bluetooth_vendor_dep_at_cmd_t *cmd = (bluetooth_vendor_dep_at_cmd_t *)(param->param_data);
                bt_hf_vendor_dep_at_cmd_s command = {0, };
@@ -3036,18 +3130,15 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                ((bt_hf_vendor_dep_cmd_event_cb)bt_event_slot_container[event_index].callback)
                (command, bt_event_slot_container[event_index].user_data);
                break;
-       case BLUETOOTH_EVENT_HF_VOLUME_SPEAKER:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       }
+       case BLUETOOTH_EVENT_HF_VOLUME_SPEAKER: {
                BT_INFO("BLUETOOTH_EVENT_HF_VOLUME_SPEAKER");
                int *spk_gain = (int *)(param->param_data);
                ((bt_hf_speaker_gain_changed_cb)bt_event_slot_container[event_index].callback)
                (*spk_gain, bt_event_slot_container[event_index].user_data);
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_EVENT_HF_CALL_STATUS:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_EVENT_HF_CALL_STATUS: {
                BT_INFO("BLUETOOTH_EVENT_HF_CALL_STATUS");
                bt_hf_call_list_s *handle = (bt_hf_call_list_s *)(param->param_data);
                GList *l = NULL;
@@ -3069,11 +3160,8 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                ((bt_hf_call_status_updated_event_cb)bt_event_slot_container[event_index].callback)
                (call_list, bt_event_slot_container[event_index].user_data);
                break;
-       } else {
-               break; /* goto default; */
        }
-       case BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED:
-       if (TIZEN_PROFILE_WEARABLE_IVI) {
+       case BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED: {
                bluetooth_hf_ciev_device_event_t *device_event = (bluetooth_hf_ciev_device_event_t *)(param->param_data);
 
                BT_INFO("BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED (status %d)(value %d)",
@@ -3083,8 +3171,6 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
                ((bt_hf_remote_device_state_e) device_event->event, device_event->value,
                bt_event_slot_container[event_index].user_data);
                break;
-       } else {
-               break; /* goto default; */
        }
        case BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED: {
                BT_DBG("BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED"); /* LCOV_EXCL_LINE */
@@ -3469,292 +3555,16 @@ static void __bt_free_tds_scan_result_info_s(bt_tds_transport_block_list_s *disc
 /* LCOV_EXCL_STOP */
 static int __bt_get_cb_index(int event)
 {
-       switch (event) {
-       case BLUETOOTH_EVENT_ENABLED:
-       case BLUETOOTH_EVENT_DISABLED:
-               return BT_EVENT_STATE_CHANGED;
-       case BLUETOOTH_EVENT_LE_ENABLED:
-       case BLUETOOTH_EVENT_LE_DISABLED:
-               return BT_EVENT_LE_STATE_CHANGED; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_EVENT_LOCAL_NAME_CHANGED:
-               return BT_EVENT_NAME_CHANGED; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_EVENT_DISCOVERABLE_MODE_CHANGED:
-               return BT_EVENT_VISIBILITY_MODE_CHANGED; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_EVENT_DISCOVERABLE_TIMEOUT_CHANGED:
-               return BT_EVENT_VISIBILITY_DURATION_CHANGED; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_EVENT_DISCOVERY_STARTED:
-       case BLUETOOTH_EVENT_DISCOVERY_FINISHED:
-       case BLUETOOTH_EVENT_REMOTE_DEVICE_NAME_UPDATED:
-               return BT_EVENT_DEVICE_DISCOVERY_STATE_CHANGED;
-       case BLUETOOTH_EVENT_BONDING_FINISHED:
-               return BT_EVENT_BOND_CREATED; /* LCOV_EXCL_LINE */
-               /* LCOV_EXCL_START */
-       case BLUETOOTH_EVENT_BONDED_DEVICE_REMOVED:
-               return BT_EVENT_BOND_DESTROYED;
-       case BLUETOOTH_EVENT_KEYBOARD_PASSKEY_DISPLAY:
-       case BLUETOOTH_EVENT_PASSKEY_REQUEST:
-       case BLUETOOTH_EVENT_PIN_REQUEST:
-       case BLUETOOTH_EVENT_PASSKEY_CONFIRM_REQUEST:
-               return BT_EVENT_AUTHENTICATION_REQUEST;
-       case BLUETOOTH_EVENT_DEVICE_AUTHORIZED:
-       case BLUETOOTH_EVENT_DEVICE_UNAUTHORIZED:
-               return BT_EVENT_AUTHORIZATION_CHANGED;
-       case BLUETOOTH_EVENT_DEVICE_CONNECTED:
-       case BLUETOOTH_EVENT_DEVICE_DISCONNECTED:
-               return BT_EVENT_DEVICE_CONNECTION_STATUS;
-#ifdef TIZEN_GATT_CLIENT
-       case BLUETOOTH_EVENT_GATT_CLIENT_CONNECTED:
-       case BLUETOOTH_EVENT_GATT_CLIENT_DISCONNECTED:
-       case BLUETOOTH_EVENT_GATT_SERVER_CONNECTED:
-       case BLUETOOTH_EVENT_GATT_SERVER_DISCONNECTED:
-               return BT_EVENT_GATT_CONNECTION_STATUS;
-#else
-       case BLUETOOTH_EVENT_GATT_CONNECTED:
-       case BLUETOOTH_EVENT_GATT_DISCONNECTED:
-               return BT_EVENT_GATT_CONNECTION_STATUS;
-#endif
-       case BLUETOOTH_EVENT_SERVICE_SEARCHED:
-               return BT_EVENT_SERVICE_SEARCHED;
-       case BLUETOOTH_EVENT_RFCOMM_DATA_RECEIVED:
-               return BT_EVENT_DATA_RECEIVED;
-       case BLUETOOTH_EVENT_RFCOMM_CONNECTED:
-       case BLUETOOTH_EVENT_RFCOMM_DISCONNECTED:
-               return BT_EVENT_CONNECTION_STATE_CHANGED;
-       case BLUETOOTH_EVENT_RFCOMM_AUTHORIZE:
-               return BT_EVENT_RFCOMM_CONNECTION_REQUESTED;
-       case BLUETOOTH_EVENT_OBEX_SERVER_CONNECTION_AUTHORIZE:
-               return BT_EVENT_OPP_CONNECTION_REQUESTED;
-       case BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_AUTHORIZE:
-               return BT_EVENT_OPP_PUSH_REQUESTED;
-       case BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_STARTED:
-               return BT_EVENT_OPP_SERVER_TRANSFER_PROGRESS;
-       case BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_PROGRESS:
-               return BT_EVENT_OPP_SERVER_TRANSFER_PROGRESS;
-       case BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_COMPLETED:
-               return BT_EVENT_OPP_SERVER_TRANSFER_FINISHED;
-       case BLUETOOTH_EVENT_OPC_CONNECTED:
-               return BT_EVENT_OPP_CLIENT_PUSH_RESPONSED;
-       case BLUETOOTH_EVENT_OPC_TRANSFER_STARTED:
-               return BT_EVENT_OPP_CLIENT_PUSH_PROGRESS;
-       case BLUETOOTH_EVENT_OPC_TRANSFER_PROGRESS:
-       case BLUETOOTH_EVENT_OPC_TRANSFER_COMPLETE:
-               return BT_EVENT_OPP_CLIENT_PUSH_PROGRESS;
-       case BLUETOOTH_EVENT_OPC_DISCONNECTED:
-               return BT_EVENT_OPP_CLIENT_PUSH_FINISHED;
-       case BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE:
-               return BT_EVENT_MAP_CLIENT_LIST_FOLDERS;
-       case BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE:
-               return BT_EVENT_MAP_CLIENT_LIST_FILTER_FIELDS;
-       case BLUETOOTH_EVENT_MAP_LIST_MESSAGES_COMPLETE:
-               return BT_EVENT_MAP_CLIENT_LIST_MESSAGES;
-       case BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE:
-                       return BT_EVENT_MAP_CLIENT_GET_MESSAGE;
-       case BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE:
-                       return BT_EVENT_MAP_CLIENT_PUSH_MESSAGE;
-       case BLUETOOTH_EVENT_NETWORK_SERVER_CONNECTED:
-       case BLUETOOTH_EVENT_NETWORK_SERVER_DISCONNECTED:
-               return BT_EVENT_NAP_CONNECTION_STATE_CHANGED;
-       case BLUETOOTH_EVENT_NETWORK_CONNECTED:
-       case BLUETOOTH_EVENT_NETWORK_DISCONNECTED:
-               return BT_EVENT_PAN_CONNECTION_STATE_CHANGED;
-       case BLUETOOTH_EVENT_HDP_DATA_RECEIVED:
-               return BT_EVENT_HDP_DATA_RECEIVED;
-       case BLUETOOTH_EVENT_HDP_CONNECTED:
-               return BT_EVENT_HDP_CONNECTED;
-       case BLUETOOTH_EVENT_HDP_DISCONNECTED:
-               return BT_EVENT_HDP_DISCONNECTED;
-       case BLUETOOTH_EVENT_AG_CONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_AG_DISCONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_AG_SPEAKER_GAIN:
-               return BT_EVENT_AG_SPEAKER_GAIN_CHANGE;
-       case BLUETOOTH_EVENT_AG_MIC_GAIN:
-               return BT_EVENT_AG_MICROPHONE_GAIN_CHANGE;
-       case BLUETOOTH_EVENT_AG_AUDIO_CONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_AG_AUDIO_DISCONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_TELEPHONY_AUDIO_CONNECTED:
-               return BT_EVENT_AG_SCO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_TELEPHONY_AUDIO_DISCONNECTED:
-               return BT_EVENT_AG_SCO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_TELEPHONY_ANSWER_CALL:
-       case BLUETOOTH_EVENT_TELEPHONY_RELEASE_CALL:
-       case BLUETOOTH_EVENT_TELEPHONY_REJECT_CALL:
-               return BT_EVENT_AG_CALL_HANDLING_EVENT;
-       case BLUETOOTH_EVENT_TELEPHONY_CHLD_0_RELEASE_ALL_HELD_CALL:
-       case BLUETOOTH_EVENT_TELEPHONY_CHLD_1_RELEASE_ALL_ACTIVE_CALL:
-       case BLUETOOTH_EVENT_TELEPHONY_CHLD_2_ACTIVE_HELD_CALL:
-       case BLUETOOTH_EVENT_TELEPHONY_CHLD_3_MERGE_CALL:
-       case BLUETOOTH_EVENT_TELEPHONY_CHLD_4_EXPLICIT_CALL_TRANSFER:
-               return BT_EVENT_AG_MULTI_CALL_HANDLING_EVENT;
-       case BLUETOOTH_EVENT_TELEPHONY_SEND_DTMF:
-               return BT_EVENT_AG_DTMF_TRANSMITTED;
-       case BLUETOOTH_EVENT_AV_CONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_AV_DISCONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_AV_SOURCE_CONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_AV_SOURCE_DISCONNECTED:
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case  BLUETOOTH_EVENT_AVRCP_CONNECTED:
-       case  BLUETOOTH_EVENT_AVRCP_DISCONNECTED:
-       case  BLUETOOTH_EVENT_AVRCP_CONTROL_CONNECTED:
-       case  BLUETOOTH_EVENT_AVRCP_CONTROL_DISCONNECTED:
-               return BT_EVENT_AVRCP_CONNECTION_STATUS;
-       case  BLUETOOTH_EVENT_AVRCP_SETTING_SHUFFLE_STATUS:
-       case  BLUETOOTH_EVENT_AVRCP_CONTROL_SHUFFLE_STATUS:
-               return BT_EVENT_AVRCP_SHUFFLE_MODE_CHANGED;
-       case  BLUETOOTH_EVENT_AVRCP_SETTING_EQUALIZER_STATUS:
-       case  BLUETOOTH_EVENT_AVRCP_CONTROL_EQUALIZER_STATUS:
-               return BT_EVENT_AVRCP_EQUALIZER_STATE_CHANGED;
-       case  BLUETOOTH_EVENT_AVRCP_SETTING_REPEAT_STATUS:
-       case  BLUETOOTH_EVENT_AVRCP_CONTROL_REPEAT_STATUS:
-               return BT_EVENT_AVRCP_REPEAT_MODE_CHANGED;
-       case  BLUETOOTH_EVENT_AVRCP_SETTING_SCAN_STATUS:
-       case  BLUETOOTH_EVENT_AVRCP_CONTROL_SCAN_STATUS:
-               return BT_EVENT_AVRCP_SCAN_MODE_CHANGED;
-       case  BLUETOOTH_EVENT_AVRCP_SONG_POSITION_STATUS:
-               return BT_EVENT_AVRCP_SONG_POSITION_CHANGED;
-       case  BLUETOOTH_EVENT_AVRCP_PLAY_STATUS_CHANGED:
-               return BT_EVENT_AVRCP_PLAY_STATUS_CHANGED;
-       case  BLUETOOTH_EVENT_AVRCP_TRACK_CHANGED:
-               return BT_EVENT_AVRCP_TRACK_INFO_CHANGED;
-       case  BLUETOOTH_EVENT_AVRCP_DELAY_CHANGED:
-               return BT_EVENT_AVRCP_DELAY_CHANGED;
-       case BLUETOOTH_HID_CONNECTED:
-               return  BT_EVENT_HID_CONNECTION_STATUS;
-       case BLUETOOTH_HID_DISCONNECTED:
-               return  BT_EVENT_HID_CONNECTION_STATUS;
-       case BLUETOOTH_HID_DEVICE_CONNECTED:
-               return BT_EVENT_HID_DEVICE_CONNECTION_STATUS;
-       case BLUETOOTH_HID_DEVICE_DISCONNECTED:
-               return BT_EVENT_HID_DEVICE_CONNECTION_STATUS;
-       case BLUETOOTH_HID_DEVICE_DATA_RECEIVED:
-               return BT_EVENT_HID_DEVICE_DATA_RECEIVED;
-       case BLUETOOTH_EVENT_GATT_CHAR_VAL_CHANGED:
-               return BT_EVENT_GATT_CLIENT_VALUE_CHANGED;
-       case BLUETOOTH_EVENT_GATT_READ_CHAR:
-               return BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC;
-       case BLUETOOTH_EVENT_GATT_WRITE_CHAR:
-               return BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC;
-       case BLUETOOTH_EVENT_GATT_READ_DESC:
-               return BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR;
-       case BLUETOOTH_EVENT_GATT_WRITE_DESC:
-               return BT_EVENT_GATT_CLIENT_WRITE_DESCRIPTOR;
-               /* LCOV_EXCL_STOP */
-       case BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED:
-               return BT_EVENT_GATT_ATT_MTU_CHANGE_STATUS;
-       case BLUETOOTH_EVENT_MANUFACTURER_DATA_CHANGED:
-               return BT_EVENT_MANUFACTURER_DATA_CHANGED; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_EVENT_PASSKEY_NOTIFICATION:
-               return BT_EVENT_PASSKEY_NOTIFICATION_EVENT;
-       case BLUETOOTH_EVENT_CONNECTABLE_CHANGED:
-               return BT_EVENT_CONNECTABLE_CHANGED_EVENT; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_EVENT_TELEPHONY_VENDOR_AT_CMD:
-               return BT_EVENT_AG_VENDOR_CMD;
-       case BLUETOOTH_EVENT_RSSI_ENABLED:
-               return BT_EVENT_RSSI_ENABLED_EVENT;
-       case BLUETOOTH_EVENT_RSSI_ALERT:
-               return BT_EVENT_RSSI_ALERT_EVENT;
-       case BLUETOOTH_EVENT_RAW_RSSI:
-               return BT_EVENT_GET_RSSI_EVENT;
-       case BLUETOOTH_EVENT_IPSP_CONNECTED:
-       case BLUETOOTH_EVENT_IPSP_DISCONNECTED:
-               return BT_EVENT_IPSP_CONNECTION_STATUS; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_EVENT_SUPPORTED_PROFILE_TRUSTED:
-               return BT_EVENT_SUPPORTED_TRUSTED_PROFILE_EVENT;
-       case BLUETOOTH_EVENT_LE_DATA_LENGTH_CHANGED:
-               return BT_EVENT_LE_DATA_LENGTH_CHANGED; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_PBAP_CONNECTED:
-       case BLUETOOTH_PBAP_DISCONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
-                       return -1;
-               return BT_EVENT_PBAP_CONNECTION_STATUS; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_PBAP_PHONEBOOK_SIZE:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
-                       return -1;
-               return BT_EVENT_PBAP_PHONEBOOK_SIZE; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_PBAP_PHONEBOOK_PULL:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
-                       return -1;
-               return BT_EVENT_PBAP_PHONEBOOK_PULL; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_PBAP_VCARD_LIST:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
-                       return -1;
-               return BT_EVENT_PBAP_VCARD_LIST; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_PBAP_VCARD_PULL:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_LINE */
-                       return -1;
-               return BT_EVENT_PBAP_VCARD_PULL; /* LCOV_EXCL_LINE */
-       case BLUETOOTH_PBAP_PHONEBOOK_SEARCH:
-               if (!TIZEN_PROFILE_WEARABLE_IVI) /* LCOV_EXCL_START */
-                       return -1;
-               return BT_EVENT_PBAP_PHONEBOOK_SEARCH;
-       case BLUETOOTH_EVENT_HF_CONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_HF_DISCONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_AUDIO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_HF_AUDIO_CONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_HF_SCO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_HF_AUDIO_DISCONNECTED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_HF_SCO_CONNECTION_STATUS;
-       case BLUETOOTH_EVENT_HF_RING_INDICATOR:
-       case BLUETOOTH_EVENT_HF_CALL_TERMINATED:
-       case BLUETOOTH_EVENT_HF_CALL_STARTED:
-       case BLUETOOTH_EVENT_HF_CALL_ENDED:
-       case BLUETOOTH_EVENT_HF_CALL_WAITING:
-       case BLUETOOTH_EVENT_HF_CALL_ON_HOLD:
-       case BLUETOOTH_EVENT_HF_CALL_UNHOLD:
-       case BLUETOOTH_EVENT_HF_CALL_SWAPPED:
-       case BLUETOOTH_EVENT_HF_CALL_FAILED_TO_DIAL:
-       case BLUETOOTH_EVENT_HF_CALL_IDLE:
-       case BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING:
-       case BLUETOOTH_EVENT_HF_CALLSETUP_DIALING:
-       case BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_HF_REMOTE_CALL_EVENT;
-       case BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_HF_VENDOR_DEP_CMD_EVENT;
-       case BLUETOOTH_EVENT_HF_VOLUME_SPEAKER:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_HF_SPEAKER_GAIN_CHANGE;
-       case BLUETOOTH_EVENT_HF_CALL_STATUS:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_HF_CALL_STATUS_UPDATED_EVENT;
-       case BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED:
-       case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_ENABLED:
-       case BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED:
-               if (!TIZEN_PROFILE_WEARABLE_IVI)
-                       return -1;
-               return BT_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED;
-       case BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED:
-               return  BT_EVENT_IPSP_INIT_STATE_CHANGED;
-       case BLUETOOTH_EVENT_PXP_PROPERTY_CHANGED:
-               return BT_EVENT_PROXIMITY_REPORTER_PROPERTY_CHANGED;
-       case BLUETOOTH_EVENT_TDS_ACTIVATION_REQUESTED:
-               return BT_EVENT_TDS_ACTIVATION_REQUESTED;
-       case BLUETOOTH_EVENT_OTP_SERVER_STATE_CHANGED:
-               return BT_EVENT_OTP_SERVER_STATE_CHANGED;
-       default:
-               return -1; /* LCOV_EXCL_STOP */
+       int i;
+
+       for (i = 0; event2index[i].event != 0; i++) {
+               if (event2index[i].event == event)
+                       return event2index[i].index;
        }
+
+       return -1; /* LCOV_EXCL_LINE */
 }
+
 /* LCOV_EXCL_START */
 static void __bt_convert_lower_to_upper(char *origin)
 {
index 2c4c874..9c33d09 100644 (file)
 #include "bluetooth_internal.h"
 #include "bluetooth_private.h"
 
+typedef struct {
+       unsigned int uuid;
+       bt_service_class_t service_mask;
+} bt_uuid2svc_table_t;
+
+static bt_uuid2svc_table_t uuid2svc_mask[] = {
+       { BLUETOOTH_SPP_PROFILE_UUID, BT_SC_SPP_SERVICE_MASK },
+       { BLUETOOTH_LAP_PROFILE_UUID, BT_SC_LAP_SERVICE_MASK },
+       { BLUETOOTH_DUN_PROFILE_UUID, BT_SC_DUN_SERVICE_MASK },
+       { BLUETOOTH_OBEX_IR_MC_SYNC_SERVICE_UUID, BT_SC_SYNC_SERVICE_MASK },
+       { BLUETOOTH_OBEX_OBJECT_PUSH_SERVICE_UUID, BT_SC_OPP_SERVICE_MASK },
+       { BLUETOOTH_OBEX_MESSAGE_ACCESS_SERVICE_UUID, BT_SC_MAP_SERVICE_MASK },
+       { BLUETOOTH_OBEX_FILE_TRANSFER_UUID, BT_SC_FTP_SERVICE_MASK },
+       { BLUETOOTH_HS_PROFILE_UUID, BT_SC_HSP_SERVICE_MASK },
+       { BLUETOOTH_CTP_PROFILE_UUID, BT_SC_CTP_SERVICE_MASK  },
+       { BLUETOOTH_AUDIO_SOURCE_UUID, BT_SC_A2DP_SOURCE_SERVICE_MASK },
+       { BLUETOOTH_AUDIO_SINK_UUID, BT_SC_A2DP_SERVICE_MASK },
+       { BLUETOOTH_AV_REMOTE_CONTROL_UUID, BT_SC_AVRCP_SERVICE_MASK },
+       { BLUETOOTH_ICP_PROFILE_UUID, BT_SC_ICP_SERVICE_MASK },
+       { BLUETOOTH_FAX_PROFILE_UUID, BT_SC_FAX_SERVICE_MASK },
+       { BLUETOOTH_PAN_PANU_PROFILE_UUID, BT_SC_PANU_SERVICE_MASK },
+       { BLUETOOTH_PAN_NAP_PROFILE_UUID, BT_SC_NAP_SERVICE_MASK },
+       { BLUETOOTH_PAN_GN_PROFILE_UUID, BT_SC_GN_SERVICE_MASK },
+       { BLUETOOTH_OBEX_IMAGING_RESPONDER_UUID, BT_SC_BIP_SERVICE_MASK },
+       { BLUETOOTH_HF_PROFILE_UUID, BT_SC_HFP_SERVICE_MASK },
+       { BLUETOOTH_HID_PROFILE_UUID, BT_SC_HID_SERVICE_MASK },
+       { BLUETOOTH_SIM_ACCESS_PROFILE_UUID, BT_SC_SAP_SERVICE_MASK },
+       { BLUETOOTH_OBEX_PBA_PROFILE_UUID, BT_SC_PBAP_SERVICE_MASK },
+       { BLUETOOTH_OBEX_BPPS_PROFILE_UUID, BT_SC_BPP_SERVICE_MASK },
+       { BLUETOOTH_OBEX_PRINTING_STATUS_UUID, BT_SC_BPP_SERVICE_MASK },
+       { BLUETOOTH_PNP_INFORMATION_UUID, BT_SC_NONE },
+       { BLUETOOTH_AV_REMOTE_CONTROL_TARGET_UUID, BT_SC_NONE },
+       { BLUETOOTH_VIDEO_SINK_UUID, BT_SC_NONE },
+       { BLUETOOTH_VIDEO_SOURCE_UUID, BT_SC_NONE },
+       { BLUETOOTH_HEADSET_AG_SERVICE_UUID, BT_SC_NONE },
+       { BLUETOOTH_REFERENCE_PRINTING, BT_SC_NONE },
+       { BLUETOOTH_OBEX_IMAGING_UUID, BT_SC_NONE },
+       { BLUETOOTH_HFG_PROFILE_UUID, BT_SC_NONE },
+       { BLUETOOTH_DIRECT_PRINTING_REFERENCE_OBJ_UUID, BT_SC_NONE },
+       { BLUETOOTH_BASIC_PRINTING, BT_SC_NONE },
+       { BLUETOOTH_HCR_PROFILE_UUID, BT_SC_NONE },
+       { BLUETOOTH_OBEX_SYNCML_TRANSFER_UUID, BT_SC_NONE },
+       { 0, BT_SC_NONE }
+};
+
+
 int bt_device_create_bond(const char *device_address)
 {
        bluetooth_device_address_t addr_hex = { {0,} };
@@ -514,6 +560,19 @@ int bt_device_le_conn_update(const char *device_address,
        return ret;
 }
 /* LCOV_EXCL_STOP */
+
+static bt_service_class_t __bt_device_get_service_mask_value(unsigned int service)
+{
+       int i;
+
+       for (i = 0; uuid2svc_mask[i].uuid != 0; i++) {
+               if (uuid2svc_mask[i].uuid == service)
+                       return uuid2svc_mask[i].service_mask;
+       }
+
+       return BT_SC_NONE; /* LCOV_EXCL_LINE */
+}
+
 int bt_device_get_service_mask_from_uuid_list(char **uuids,
                                      int no_of_service,
                                      bt_service_class_t *service_mask_list)
@@ -542,155 +601,7 @@ int bt_device_get_service_mask_from_uuid_list(char **uuids,
                service = g_ascii_strtoull(parts[0], NULL, 16);
                g_strfreev(parts);
 
-               switch (service) {
-               case BLUETOOTH_SPP_PROFILE_UUID:
-                       service_mask |= BT_SC_SPP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_LAP_PROFILE_UUID:
-                       service_mask |= BT_SC_LAP_SERVICE_MASK; /* LCOV_EXCL_LINE */
-                       break; /* LCOV_EXCL_LINE */
-/* LCOV_EXCL_START */
-               case BLUETOOTH_DUN_PROFILE_UUID:
-                       service_mask |= BT_SC_DUN_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_OBEX_IR_MC_SYNC_SERVICE_UUID:
-                       service_mask |= BT_SC_SYNC_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_OBEX_OBJECT_PUSH_SERVICE_UUID:
-                       service_mask |= BT_SC_OPP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_OBEX_MESSAGE_ACCESS_SERVICE_UUID:
-                       service_mask |= BT_SC_MAP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_OBEX_FILE_TRANSFER_UUID:
-                       service_mask |= BT_SC_FTP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_HS_PROFILE_UUID:
-                       service_mask |= BT_SC_HSP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_CTP_PROFILE_UUID:
-                       service_mask |= BT_SC_CTP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_AUDIO_SOURCE_UUID:
-                       service_mask |= BT_SC_A2DP_SOURCE_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_AUDIO_SINK_UUID:
-                       service_mask |= BT_SC_A2DP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_VIDEO_SOURCE_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_VIDEO_SINK_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_AV_REMOTE_CONTROL_TARGET_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_AV_REMOTE_CONTROL_UUID:
-                       service_mask |= BT_SC_AVRCP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_ICP_PROFILE_UUID:
-                       service_mask |= BT_SC_ICP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_FAX_PROFILE_UUID:
-                       service_mask |= BT_SC_FAX_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_HEADSET_AG_SERVICE_UUID:
-                       service_mask |= BT_SC_NONE; /* BT_SC_HSP_SERVICE_MASK */
-                       break;
-
-               case BLUETOOTH_PAN_PANU_PROFILE_UUID:
-                       service_mask |= BT_SC_PANU_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_PAN_NAP_PROFILE_UUID:
-                       service_mask |= BT_SC_NAP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_PAN_GN_PROFILE_UUID:
-                       service_mask |= BT_SC_GN_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_REFERENCE_PRINTING:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_OBEX_IMAGING_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_OBEX_IMAGING_RESPONDER_UUID:
-                       service_mask |= BT_SC_BIP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_HF_PROFILE_UUID:
-                       service_mask |= BT_SC_HFP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_HFG_PROFILE_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_DIRECT_PRINTING_REFERENCE_OBJ_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_BASIC_PRINTING:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_HID_PROFILE_UUID:
-                       service_mask |= BT_SC_HID_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_SIM_ACCESS_PROFILE_UUID:
-                       service_mask |= BT_SC_SAP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_OBEX_PBA_PROFILE_UUID:
-                       service_mask |= BT_SC_PBAP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_OBEX_BPPS_PROFILE_UUID:
-                       service_mask |= BT_SC_BPP_SERVICE_MASK;
-                       break;
-
-               case BLUETOOTH_PNP_INFORMATION_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_OBEX_PRINTING_STATUS_UUID:
-                       service_mask |= BT_SC_BPP_SERVICE_MASK;
-                       break;
-/* LCOV_EXCL_STOP */
-               case BLUETOOTH_HCR_PROFILE_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               case BLUETOOTH_OBEX_SYNCML_TRANSFER_UUID:
-                       service_mask |= BT_SC_NONE;
-                       break;
-
-               default:
-                       break;
-               }
-
+               service_mask |= __bt_device_get_service_mask_value(service);
        }
 
        *service_mask_list = service_mask;