From d54db1eed167780129faa35ab878a03ce6622e7a Mon Sep 17 00:00:00 2001 From: DoHyun Pyun Date: Thu, 13 Sep 2018 09:23:55 +0900 Subject: [PATCH] Reduce the cyclomatic complexity 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 --- src/bluetooth-common.c | 738 ++++++++++++++++++------------------------------- src/bluetooth-device.c | 209 ++++---------- 2 files changed, 334 insertions(+), 613 deletions(-) diff --git a/src/bluetooth-common.c b/src/bluetooth-common.c index b149d1d..a9dfb15 100644 --- a/src/bluetooth-common.c +++ b/src/bluetooth-common.c @@ -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) { diff --git a/src/bluetooth-device.c b/src/bluetooth-device.c index 2c4c874..9c33d09 100644 --- a/src/bluetooth-device.c +++ b/src/bluetooth-device.c @@ -23,6 +23,52 @@ #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; -- 2.7.4