15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 31025687c6679608fe9df918f37011414ffc72b62Hemant Gupta * Copyright (c) 2014 The Android Open Source Project 4a408eb7227b7060aaa84b2dada7ddd9b6a955761Avish Shah * Copyright (C) 2009-2016 Broadcom Corporation 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 20ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Filename: btif_util.c 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Description: Miscellaneous helper functions 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 27ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2949a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#define LOG_TAG "bt_btif_util" 3049a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen 3149a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "btif_util.h" 3249a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen 33f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He#include <base/logging.h> 3449a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include <ctype.h> 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <netinet/in.h> 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <stdio.h> 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <stdlib.h> 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <string.h> 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4049a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include <hardware/bt_av.h> 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4249a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "avrc_defs.h" 436bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson#include "bt_common.h" 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_ag_api.h" 4549a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "bta_api.h" 469adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan#include "bta_av_api.h" 478843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#include "bta_hd_api.h" 481025687c6679608fe9df918f37011414ffc72b62Hemant Gupta#include "bta_hf_client_api.h" 4949a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "bta_hh_api.h" 5049a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "bte.h" 5149a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "btif_common.h" 5249a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "btif_dm.h" 5349a86709488e5cfd5e23759da18bf9613e15b04dMarie Janssen#include "btu.h" 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 55ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 566bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Constants & Macros 57ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 586bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson#define ISDIGIT(a) (((a) >= '0') && ((a) <= '9')) 596bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson#define ISXDIGIT(a) \ 606bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ((((a) >= '0') && ((a) <= '9')) || (((a) >= 'A') && ((a) <= 'F')) || \ 616bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson (((a) >= 'a') && ((a) <= 'f'))) 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 63ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 646bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Local type definitions 65ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 67ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 686bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Static variables 69ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 71ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 726bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Static functions 73ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 75ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 766bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Externs 77ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 79ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 806bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Functions 81ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 846bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Logging helper functions 856bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ****************************************************************************/ 866bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 876bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonuint32_t devclass2uint(DEV_CLASS dev_class) { 886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uint32_t cod = 0; 896bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 906bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson if (dev_class != NULL) { 916bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson /* if COD is 0, irrespective of the device type set it to Unclassified 926bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * device */ 936bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson cod = (dev_class[2]) | (dev_class[1] << 8) | (dev_class[0] << 16); 946bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 956bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return cod; 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 976bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonvoid uint2devclass(uint32_t cod, DEV_CLASS dev_class) { 986bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson dev_class[2] = (uint8_t)cod; 996bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson dev_class[1] = (uint8_t)(cod >> 8); 1006bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson dev_class[0] = (uint8_t)(cod >> 16); 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1036bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonstatic const uint8_t sdp_base_uuid[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1046bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 0x10, 0x00, 0x80, 0x00, 0x00, 0x80, 1056bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 0x5F, 0x9B, 0x34, 0xFB}; 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1076bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonvoid uuid16_to_uuid128(uint16_t uuid16, bt_uuid_t* uuid128) { 1086bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uint16_t uuid16_bo; 1096bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memset(uuid128, 0, sizeof(bt_uuid_t)); 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1116bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(uuid128->uu, sdp_base_uuid, MAX_UUID_SIZE); 1126bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uuid16_bo = ntohs(uuid16); 1136bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(uuid128->uu + 2, &uuid16_bo, sizeof(uint16_t)); 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1166bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonbool string_to_uuid(const char* str, bt_uuid_t* p_uuid) { 117f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He CHECK(p_uuid); 1186bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson if (str == NULL) return false; 1196bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1206bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uint32_t uuid0, uuid4; 1216bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uint16_t uuid1, uuid2, uuid3, uuid5; 1226bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1236bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson int rc = sscanf(str, "%08x-%04hx-%04hx-%04hx-%08x%04hx", &uuid0, &uuid1, 1246bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson &uuid2, &uuid3, &uuid4, &uuid5); 1256bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson if (rc != 6) return false; 1266bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1276bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uuid0 = htonl(uuid0); 1286bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uuid1 = htons(uuid1); 1296bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uuid2 = htons(uuid2); 1306bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uuid3 = htons(uuid3); 1316bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uuid4 = htonl(uuid4); 1326bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uuid5 = htons(uuid5); 1336bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1346bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&(p_uuid->uu[0]), &uuid0, 4); 1356bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&(p_uuid->uu[4]), &uuid1, 2); 1366bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&(p_uuid->uu[6]), &uuid2, 2); 1376bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&(p_uuid->uu[8]), &uuid3, 2); 1386bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&(p_uuid->uu[10]), &uuid4, 4); 1396bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&(p_uuid->uu[14]), &uuid5, 2); 1406bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1416bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return true; 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1446bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonvoid uuid_to_string_legacy(bt_uuid_t* p_uuid, char* str, size_t str_len) { 1456bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uint32_t uuid0, uuid4; 1466bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uint16_t uuid1, uuid2, uuid3, uuid5; 1476bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1486bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&uuid0, &(p_uuid->uu[0]), 4); 1496bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&uuid1, &(p_uuid->uu[4]), 2); 1506bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&uuid2, &(p_uuid->uu[6]), 2); 1516bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&uuid3, &(p_uuid->uu[8]), 2); 1526bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&uuid4, &(p_uuid->uu[10]), 4); 1536bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson memcpy(&uuid5, &(p_uuid->uu[14]), 2); 1546bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1556bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson snprintf(str, str_len, "%.8x-%.4x-%.4x-%.4x-%.8x%.4x", ntohl(uuid0), 1566bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ntohs(uuid1), ntohs(uuid2), ntohs(uuid3), ntohl(uuid4), 1576bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson ntohs(uuid5)); 1586bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return; 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 1626bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Function ascii_2_hex 1636bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * 1646bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Description This function converts an ASCII string into HEX 1656bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * 1666bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson * Returns the number of hex bytes filled. 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1686bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonint ascii_2_hex(const char* p_ascii, int len, uint8_t* p_hex) { 1696bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson int x; 1706bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson uint8_t c; 1716bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1726bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson for (x = 0; (x < len) && (*p_ascii); x++) { 1736bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson if (ISDIGIT(*p_ascii)) 1746bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson c = (*p_ascii - '0') << 4; 1756bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson else 1766bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson c = (toupper(*p_ascii) - 'A' + 10) << 4; 1776bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1786bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson p_ascii++; 1796bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson if (*p_ascii) { 1806bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson if (ISDIGIT(*p_ascii)) 1816bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson c |= (*p_ascii - '0'); 1826bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson else 1836bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson c |= (toupper(*p_ascii) - 'A' + 10); 1846bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 1856bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson p_ascii++; 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project } 1876bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson *p_hex++ = c; 1886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1906bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return (x); 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1936bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_dm_search_event(uint16_t event) { 1946bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 1956bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_INQ_RES_EVT) 1966bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_INQ_CMPL_EVT) 1976bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_DISC_RES_EVT) 1986bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_DISC_BLE_RES_EVT) 1996bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_DISC_CMPL_EVT) 2006bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_DI_DISC_CMPL_EVT) 2016bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_SEARCH_CANCEL_CMPL_EVT) 2026bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 2036bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 2046bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 2056bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2086bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_property_type(bt_property_type_t type) { 2096bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (type) { 2106bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_BDNAME) 2116bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_BDADDR) 2126bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_UUIDS) 2136bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_CLASS_OF_DEVICE) 2146bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_TYPE_OF_DEVICE) 2156bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_REMOTE_RSSI) 2166bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT) 2176bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_ADAPTER_BONDED_DEVICES) 2186bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_ADAPTER_SCAN_MODE) 2196bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_PROPERTY_REMOTE_FRIENDLY_NAME) 2206bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 2216bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 2226bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN PROPERTY ID"; 2236bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2266bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_dm_event(uint16_t event) { 2276bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 2286bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_ENABLE_EVT) 2296bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_DISABLE_EVT) 2306bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_PIN_REQ_EVT) 2316bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_AUTH_CMPL_EVT) 2326bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_AUTHORIZE_EVT) 2336bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_LINK_UP_EVT) 2346bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_LINK_DOWN_EVT) 2356bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_SIG_STRENGTH_EVT) 2366bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BUSY_LEVEL_EVT) 2376bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BOND_CANCEL_CMPL_EVT) 2386bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_SP_CFM_REQ_EVT) 2396bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_SP_KEY_NOTIF_EVT) 2406bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_SP_RMT_OOB_EVT) 2416bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_SP_KEYPRESS_EVT) 2426bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_ROLE_CHG_EVT) 2436bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_KEY_EVT) 2446bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_SEC_REQ_EVT) 2456bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_PASSKEY_NOTIF_EVT) 2466bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_PASSKEY_REQ_EVT) 2476bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_OOB_REQ_EVT) 2486bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_LOCAL_IR_EVT) 2496bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_LOCAL_ER_EVT) 2506bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_BLE_AUTH_CMPL_EVT) 2516bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_DEV_UNPAIRED_EVT) 2526bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_HW_ERROR_EVT) 2536bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_DM_ENER_INFO_READ) 2546bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 2556bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 2566bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN DM EVENT"; 2576bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2606bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_hf_event(uint16_t event) { 2616bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 2626bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_ENABLE_EVT) 2636bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_REGISTER_EVT) 2646bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_OPEN_EVT) 2656bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_CLOSE_EVT) 2666bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_CONN_EVT) 2676bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AUDIO_OPEN_EVT) 2686bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AUDIO_CLOSE_EVT) 2696bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_SPK_EVT) 2706bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_MIC_EVT) 2716bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_CKPD_EVT) 2726bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_DISABLE_EVT) 2736bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_WBS_EVT) 2746bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_A_EVT) 2756bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_D_EVT) 2766bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_CHLD_EVT) 2776bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_CHUP_EVT) 2786bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_CIND_EVT) 2796bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_VTS_EVT) 2806bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BINP_EVT) 2816bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BLDN_EVT) 2826bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BVRA_EVT) 2836bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_NREC_EVT) 2846bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_CNUM_EVT) 2856bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BTRH_EVT) 2866bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_CLCC_EVT) 2876bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_COPS_EVT) 2886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_UNAT_EVT) 2896bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_CBC_EVT) 2906bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BAC_EVT) 2916bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BCS_EVT) 2926bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BIND_EVT) 2936bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AG_AT_BIEV_EVT) 2946bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 2956bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 2966bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 2976bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3006bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_hf_client_event(uint16_t event) { 3016bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 3026bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_ENABLE_EVT) 3036bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_REGISTER_EVT) 3046bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_OPEN_EVT) 3056bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_CLOSE_EVT) 3066bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_CONN_EVT) 3076bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_AUDIO_OPEN_EVT) 3086bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_AUDIO_MSBC_OPEN_EVT) 3096bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_AUDIO_CLOSE_EVT) 3106bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_SPK_EVT) 3116bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_MIC_EVT) 3126bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_DISABLE_EVT) 3136bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_IND_EVT) 3146bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_VOICE_REC_EVT) 3156bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_OPERATOR_NAME_EVT) 3166bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_CLIP_EVT) 3176bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_CCWA_EVT) 3186bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_AT_RESULT_EVT) 3196bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_CLCC_EVT) 3206bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_CNUM_EVT) 3216bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_BTRH_EVT) 3226bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_BSIR_EVT) 3236bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_BINP_EVT) 3246bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HF_CLIENT_RING_INDICATION) 3256bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 3266bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 3276bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 3281025687c6679608fe9df918f37011414ffc72b62Hemant Gupta} 3291025687c6679608fe9df918f37011414ffc72b62Hemant Gupta 3306bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_hh_event(uint16_t event) { 3316bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 3326bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_ENABLE_EVT) 3336bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_DISABLE_EVT) 3346bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_OPEN_EVT) 3356bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_CLOSE_EVT) 3366bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_GET_DSCP_EVT) 3376bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_GET_PROTO_EVT) 3386bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_GET_RPT_EVT) 3396bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_GET_IDLE_EVT) 3406bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_SET_PROTO_EVT) 3416bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_SET_RPT_EVT) 3426bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_SET_IDLE_EVT) 3436bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_VC_UNPLUG_EVT) 3446bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_ADD_DEV_EVT) 3456bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_RMV_DEV_EVT) 3466bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_HH_API_ERR_EVT) 3476bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 3486bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 3496bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3526bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_hf_conn_state(uint16_t event) { 3536bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 3546bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CONNECTION_STATE_DISCONNECTED) 3556bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CONNECTION_STATE_CONNECTING) 3566bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CONNECTION_STATE_CONNECTED) 3576bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CONNECTION_STATE_SLC_CONNECTED) 3586bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CONNECTION_STATE_DISCONNECTING) 3596bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 3606bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 3616bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3648843cc830b522cfe6f1e361297fc28fd331a1378Hemant Guptaconst char* dump_hd_event(uint16_t event) { 3658843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta switch (event) { 3668843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_ENABLE_EVT) 3678843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_DISABLE_EVT) 3688843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_REGISTER_APP_EVT) 3698843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_UNREGISTER_APP_EVT) 3708843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_OPEN_EVT) 3718843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_CLOSE_EVT) 3728843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_GET_REPORT_EVT) 3738843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_SET_REPORT_EVT) 3748843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_SET_PROTOCOL_EVT) 3758843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_INTR_DATA_EVT) 3768843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_VC_UNPLUG_EVT) 377844daca6a8cae4a263dcc9c30e065e5c2c74da2fIvan Podogov CASE_RETURN_STR(BTA_HD_CONN_STATE_EVT) 3788843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta CASE_RETURN_STR(BTA_HD_API_ERR_EVT) 3798843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta default: 3808843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta return "UNKNOWN MSG ID"; 3818843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta } 3828843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta} 3838843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta 3846bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_hf_call_state(bthf_call_state_t call_state) { 3856bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (call_state) { 3866bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CALL_STATE_IDLE) 3876bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CALL_STATE_HELD) 3886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CALL_STATE_DIALING) 3896bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CALL_STATE_ALERTING) 3906bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CALL_STATE_INCOMING) 3916bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CALL_STATE_WAITING) 3926bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_CALL_STATE_ACTIVE) 3936bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 3946bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN CALL STATE"; 3956bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3986bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_thread_evt(bt_cb_thread_evt evt) { 3996bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (evt) { 4006bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(ASSOCIATE_JVM) 4016bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(DISASSOCIATE_JVM) 4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4036bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4046bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "unknown thread evt"; 4056bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4086bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_hf_audio_state(uint16_t event) { 4096bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 4106bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_AUDIO_STATE_DISCONNECTED) 4116bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_AUDIO_STATE_CONNECTING) 4126bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_AUDIO_STATE_CONNECTED) 4136bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTHF_AUDIO_STATE_DISCONNECTING) 4146bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4156bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 4166bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4196bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_av_conn_state(uint16_t event) { 4206bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 4216bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTAV_CONNECTION_STATE_DISCONNECTED) 4226bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTAV_CONNECTION_STATE_CONNECTING) 4236bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTAV_CONNECTION_STATE_CONNECTED) 4246bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTAV_CONNECTION_STATE_DISCONNECTING) 4256bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4266bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 4276bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4306bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_av_audio_state(uint16_t event) { 4316bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 4326bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTAV_AUDIO_STATE_REMOTE_SUSPEND) 4336bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTAV_AUDIO_STATE_STOPPED) 4346bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTAV_AUDIO_STATE_STARTED) 4356bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4366bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN MSG ID"; 4376bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4406bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_adapter_scan_mode(bt_scan_mode_t mode) { 4416bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (mode) { 4426bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_SCAN_MODE_NONE) 4436bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_SCAN_MODE_CONNECTABLE) 4446bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE) 4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4466bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4476bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "unknown scan mode"; 4486bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4516bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_bt_status(bt_status_t status) { 4526bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (status) { 4536bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_STATUS_SUCCESS) 4546bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_STATUS_FAIL) 4556bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_STATUS_NOT_READY) 4566bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_STATUS_NOMEM) 4576bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_STATUS_BUSY) 4586bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BT_STATUS_UNSUPPORTED) 4596bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 4606bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4616bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "unknown scan mode"; 4626bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4656bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_rc_event(uint8_t event) { 4666bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event) { 4676bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_RC_OPEN_EVT) 4686bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_RC_CLOSE_EVT) 4696bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_RC_BROWSE_OPEN_EVT) 4706bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_RC_BROWSE_CLOSE_EVT) 4716bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_REMOTE_CMD_EVT) 4726bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_REMOTE_RSP_EVT) 4736bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_VENDOR_CMD_EVT) 4746bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_VENDOR_RSP_EVT) 4756bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_META_MSG_EVT) 4766bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(BTA_AV_RC_FEAT_EVT) 4776bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4786bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "UNKNOWN_EVENT"; 4796bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 4809adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan} 4819adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan 4826bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_rc_notification_event_id(uint8_t event_id) { 4836bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (event_id) { 4846bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_PLAY_STATUS_CHANGE) 4856bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_TRACK_CHANGE) 4866bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_TRACK_REACHED_END) 4876bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_TRACK_REACHED_START) 4886bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_PLAY_POS_CHANGED) 4896bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_BATTERY_STATUS_CHANGE) 4906bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_SYSTEM_STATUS_CHANGE) 4916bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_APP_SETTING_CHANGE) 4926bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_VOLUME_CHANGE) 4936bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_ADDR_PLAYER_CHANGE) 4946bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_AVAL_PLAYERS_CHANGE) 4956bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_NOW_PLAYING_CHANGE) 4966bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_EVT_UIDS_CHANGE) 4976bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 4986bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 4996bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "Unhandled Event ID"; 5006bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 5019adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan} 5029adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan 5036bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watsonconst char* dump_rc_pdu(uint8_t pdu) { 5046bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson switch (pdu) { 5056bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_LIST_PLAYER_APP_ATTR) 5066bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_LIST_PLAYER_APP_VALUES) 5076bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_CUR_PLAYER_APP_VALUE) 5086bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_SET_PLAYER_APP_VALUE) 5096bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_PLAYER_APP_ATTR_TEXT) 5106bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_PLAYER_APP_VALUE_TEXT) 5116bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_INFORM_DISPLAY_CHARSET) 5126bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_INFORM_BATTERY_STAT_OF_CT) 5136bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_ELEMENT_ATTR) 5146bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_PLAY_STATUS) 5156bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_REGISTER_NOTIFICATION) 5166bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_REQUEST_CONTINUATION_RSP) 5176bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_ABORT_CONTINUATION_RSP) 5186bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_SET_ABSOLUTE_VOLUME) 5196bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_SET_ADDRESSED_PLAYER) 5206bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_CHANGE_PATH) 5216bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_CAPABILITIES) 5226bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_SET_BROWSED_PLAYER) 5236bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_FOLDER_ITEMS) 5246bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_ITEM_ATTRIBUTES) 5256bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_PLAY_ITEM) 5266bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_SEARCH) 5276bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_ADD_TO_NOW_PLAYING) 5286bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GET_TOTAL_NUM_OF_ITEMS) 5296bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson CASE_RETURN_STR(AVRC_PDU_GENERAL_REJECT) 5306bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson 5316bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson default: 5326bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson return "Unknown PDU"; 5336bd442f543972b072ef2cbbcf2f7c91202de1045Myles Watson } 5349adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan} 535