15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
31025687c6679608fe9df918f37011414ffc72b62Hemant Gupta *  Copyright (c) 2014 The Android Open Source Project
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2009-2012 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
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************
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 *
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ***********************************************************************************/
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <hardware/bluetooth.h>
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <hardware/bt_hf.h>
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <hardware/bt_av.h>
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <netinet/in.h>
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <stdio.h>
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <stdlib.h>
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <string.h>
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <ctype.h>
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LOG_TAG "BTIF_UTIL"
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btif_common.h"
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_api.h"
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "gki.h"
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btu.h"
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bte.h"
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bd.h"
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btif_dm.h"
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btif_util.h"
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_ag_api.h"
499adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan#include "bta_av_api.h"
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_hh_api.h"
511025687c6679608fe9df918f37011414ffc72b62Hemant Gupta#include "bta_hf_client_api.h"
529adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan#include "avrc_defs.h"
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Constants & Macros
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project************************************************************************************/
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define ISDIGIT(a)  ((a>='0') && (a<='9'))
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define ISXDIGIT(a) (((a>='0') && (a<='9'))||((a>='A') && (a<='F'))||((a>='a') && (a<='f')))
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Local type definitions
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project************************************************************************************/
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Static variables
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project************************************************************************************/
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Static functions
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project************************************************************************************/
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Externs
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project************************************************************************************/
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/************************************************************************************
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Functions
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project************************************************************************************/
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**   Logging helper functions
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectint str2bd(char *str, bt_bdaddr_t *addr)
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    int32_t i = 0;
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    for (i = 0; i < 6; i++) {
889b4676076ba984de33984276694347797f240a9dGanesh Ganapathi Batta       addr->address[i] = (uint8_t)strtoul(str, &str, 16);
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project       str++;
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return 0;
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
94ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Battachar *bd2str(const bt_bdaddr_t *bdaddr, bdstr_t *bdstr)
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
96f2fc54d237a24dc4db307cb56a513a8720809f95Chris Dearman    const uint8_t *addr = bdaddr->address;
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
989b4676076ba984de33984276694347797f240a9dGanesh Ganapathi Batta    sprintf(*bdstr, "%02x:%02x:%02x:%02x:%02x:%02x",
99f2fc54d237a24dc4db307cb56a513a8720809f95Chris Dearman             addr[0], addr[1], addr[2],
100f2fc54d237a24dc4db307cb56a513a8720809f95Chris Dearman             addr[3], addr[4], addr[5]);
1019b4676076ba984de33984276694347797f240a9dGanesh Ganapathi Batta    return *bdstr;
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectUINT32 devclass2uint(DEV_CLASS dev_class)
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32 cod = 0;
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
108ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    if(dev_class != NULL)
109ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    {
110ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta        /* if COD is 0, irrespective of the device type set it to Unclassified device */
111ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta        cod = (dev_class[2]) | (dev_class[1] << 8) | (dev_class[0] << 16);
112ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta    }
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return cod;
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid uint2devclass(UINT32 cod, DEV_CLASS dev_class)
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    dev_class[2] = (UINT8)cod;
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    dev_class[1] = (UINT8)(cod >> 8);
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    dev_class[0] = (UINT8)(cod >> 16);
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectstatic const UINT8  sdp_base_uuid[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                       0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB};
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid uuid16_to_uuid128(uint16_t uuid16, bt_uuid_t* uuid128)
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uint16_t uuid16_bo;
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memset(uuid128, 0, sizeof(bt_uuid_t));
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(uuid128->uu, sdp_base_uuid, MAX_UUID_SIZE);
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uuid16_bo = ntohs(uuid16);
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(uuid128->uu + 2, &uuid16_bo, sizeof(uint16_t));
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid string_to_uuid(char *str, bt_uuid_t *p_uuid)
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uint32_t uuid0, uuid4;
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uint16_t uuid1, uuid2, uuid3, uuid5;
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    sscanf(str, "%08x-%04hx-%04hx-%04hx-%08x%04hx",
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                &uuid0, &uuid1, &uuid2, &uuid3, &uuid4, &uuid5);
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uuid0 = htonl(uuid0);
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uuid1 = htons(uuid1);
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uuid2 = htons(uuid2);
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uuid3 = htons(uuid3);
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uuid4 = htonl(uuid4);
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uuid5 = htons(uuid5);
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&(p_uuid->uu[0]), &uuid0, 4);
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&(p_uuid->uu[4]), &uuid1, 2);
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&(p_uuid->uu[6]), &uuid2, 2);
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&(p_uuid->uu[8]), &uuid3, 2);
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&(p_uuid->uu[10]), &uuid4, 4);
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&(p_uuid->uu[14]), &uuid5, 2);
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return;
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid uuid_to_string(bt_uuid_t *p_uuid, char *str)
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uint32_t uuid0, uuid4;
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    uint16_t uuid1, uuid2, uuid3, uuid5;
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&uuid0, &(p_uuid->uu[0]), 4);
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&uuid1, &(p_uuid->uu[4]), 2);
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&uuid2, &(p_uuid->uu[6]), 2);
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&uuid3, &(p_uuid->uu[8]), 2);
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&uuid4, &(p_uuid->uu[10]), 4);
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    memcpy(&uuid5, &(p_uuid->uu[14]), 2);
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    sprintf((char *)str, "%.8x-%.4x-%.4x-%.4x-%.8x%.4x",
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            ntohl(uuid0), ntohs(uuid1),
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            ntohs(uuid2), ntohs(uuid3),
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            ntohl(uuid4), ntohs(uuid5));
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return;
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Function        ascii_2_hex
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Description     This function converts an ASCII string into HEX
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Returns         the number of hex bytes filled.
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectint ascii_2_hex (char *p_ascii, int len, UINT8 *p_hex)
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    int     x;
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8   c;
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    for (x = 0; (x < len) && (*p_ascii); x++)
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        if (ISDIGIT (*p_ascii))
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            c = (*p_ascii - '0') << 4;
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        else
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            c = (toupper(*p_ascii) - 'A' + 10) << 4;
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        p_ascii++;
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        if (*p_ascii)
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        {
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            if (ISDIGIT (*p_ascii))
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                c |= (*p_ascii - '0');
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            else
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                c |= (toupper(*p_ascii) - 'A' + 10);
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            p_ascii++;
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        }
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        *p_hex++ = c;
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return (x);
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_dm_search_event(UINT16 event)
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_INQ_RES_EVT)
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_INQ_CMPL_EVT)
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_DISC_RES_EVT)
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_DISC_BLE_RES_EVT)
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_DISC_CMPL_EVT)
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_DI_DISC_CMPL_EVT)
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_SEARCH_CANCEL_CMPL_EVT)
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN MSG ID";
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project     }
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_property_type(bt_property_type_t type)
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(type)
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_BDNAME)
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_BDADDR)
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_UUIDS)
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_CLASS_OF_DEVICE)
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_TYPE_OF_DEVICE)
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_REMOTE_RSSI)
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT)
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_ADAPTER_BONDED_DEVICES)
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_ADAPTER_SCAN_MODE)
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_PROPERTY_REMOTE_FRIENDLY_NAME)
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN PROPERTY ID";
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_dm_event(UINT16 event)
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_ENABLE_EVT)
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_DISABLE_EVT)
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_PIN_REQ_EVT)
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_AUTH_CMPL_EVT)
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_AUTHORIZE_EVT)
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_LINK_UP_EVT)
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_LINK_DOWN_EVT)
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_SIG_STRENGTH_EVT)
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BUSY_LEVEL_EVT)
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BOND_CANCEL_CMPL_EVT)
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_SP_CFM_REQ_EVT)
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_SP_KEY_NOTIF_EVT)
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_SP_RMT_OOB_EVT)
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_SP_KEYPRESS_EVT)
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_ROLE_CHG_EVT)
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_KEY_EVT)
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_SEC_REQ_EVT)
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_PASSKEY_NOTIF_EVT)
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_PASSKEY_REQ_EVT)
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_OOB_REQ_EVT)
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_LOCAL_IR_EVT)
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_LOCAL_ER_EVT)
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_BLE_AUTH_CMPL_EVT)
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_DEV_UNPAIRED_EVT)
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_DM_HW_ERROR_EVT)
283e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji        CASE_RETURN_STR(BTA_DM_ENER_INFO_READ)
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN DM EVENT";
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_hf_event(UINT16 event)
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_ENABLE_EVT)
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_REGISTER_EVT)
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_OPEN_EVT)
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_CLOSE_EVT)
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_CONN_EVT)
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AUDIO_OPEN_EVT)
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AUDIO_CLOSE_EVT)
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_SPK_EVT)
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_MIC_EVT)
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_CKPD_EVT)
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_DISABLE_EVT)
30566432dcffe211e317d35978283a04a96d5620bdfMatthew Xie#if (BTM_WBS_INCLUDED == TRUE )
30666432dcffe211e317d35978283a04a96d5620bdfMatthew Xie        CASE_RETURN_STR(BTA_AG_WBS_EVT)
30766432dcffe211e317d35978283a04a96d5620bdfMatthew Xie#endif
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_A_EVT)
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_D_EVT)
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_CHLD_EVT)
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_CHUP_EVT)
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_CIND_EVT)
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_VTS_EVT)
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_BINP_EVT)
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_BLDN_EVT)
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_BVRA_EVT)
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_NREC_EVT)
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_CNUM_EVT)
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_BTRH_EVT)
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_CLCC_EVT)
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_COPS_EVT)
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_UNAT_EVT)
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_CBC_EVT)
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_BAC_EVT)
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_AG_AT_BCS_EVT)
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN MSG ID";
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project     }
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3321025687c6679608fe9df918f37011414ffc72b62Hemant Guptaconst char* dump_hf_client_event(UINT16 event)
3331025687c6679608fe9df918f37011414ffc72b62Hemant Gupta{
3341025687c6679608fe9df918f37011414ffc72b62Hemant Gupta    switch(event)
3351025687c6679608fe9df918f37011414ffc72b62Hemant Gupta    {
3361025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_ENABLE_EVT)
3371025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_REGISTER_EVT)
3381025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_OPEN_EVT)
3391025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_CLOSE_EVT)
3401025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_CONN_EVT)
3411025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_AUDIO_OPEN_EVT)
3421025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_AUDIO_MSBC_OPEN_EVT)
3431025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_AUDIO_CLOSE_EVT)
3441025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_SPK_EVT)
3451025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_MIC_EVT)
3461025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_DISABLE_EVT)
3471025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_IND_EVT)
3481025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_VOICE_REC_EVT)
3491025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_OPERATOR_NAME_EVT)
3501025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_CLIP_EVT)
3511025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_CCWA_EVT)
3521025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_AT_RESULT_EVT)
3531025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_CLCC_EVT)
3541025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_CNUM_EVT)
3551025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_BTRH_EVT)
3561025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_BSIR_EVT)
3571025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_BINP_EVT)
3581025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        CASE_RETURN_STR(BTA_HF_CLIENT_RING_INDICATION)
3591025687c6679608fe9df918f37011414ffc72b62Hemant Gupta        default:
3601025687c6679608fe9df918f37011414ffc72b62Hemant Gupta            return "UNKNOWN MSG ID";
3611025687c6679608fe9df918f37011414ffc72b62Hemant Gupta     }
3621025687c6679608fe9df918f37011414ffc72b62Hemant Gupta}
3631025687c6679608fe9df918f37011414ffc72b62Hemant Gupta
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_hh_event(UINT16 event)
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_ENABLE_EVT)
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_DISABLE_EVT)
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_OPEN_EVT)
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_CLOSE_EVT)
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_GET_DSCP_EVT)
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_GET_PROTO_EVT)
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_GET_RPT_EVT)
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_GET_IDLE_EVT)
3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_SET_PROTO_EVT)
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_SET_RPT_EVT)
3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_SET_IDLE_EVT)
3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_VC_UNPLUG_EVT)
3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_ADD_DEV_EVT)
3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_RMV_DEV_EVT)
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTA_HH_API_ERR_EVT)
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN MSG ID";
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project     }
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_hf_conn_state(UINT16 event)
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CONNECTION_STATE_DISCONNECTED)
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CONNECTION_STATE_CONNECTING)
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CONNECTION_STATE_CONNECTED)
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CONNECTION_STATE_SLC_CONNECTED)
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CONNECTION_STATE_DISCONNECTING)
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN MSG ID";
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_hf_call_state(bthf_call_state_t call_state)
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(call_state)
4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CALL_STATE_IDLE)
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CALL_STATE_HELD)
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CALL_STATE_DIALING)
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CALL_STATE_ALERTING)
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CALL_STATE_INCOMING)
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CALL_STATE_WAITING)
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_CALL_STATE_ACTIVE)
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN CALL STATE";
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_thread_evt(bt_cb_thread_evt evt)
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(evt)
4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(ASSOCIATE_JVM)
4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(DISASSOCIATE_JVM)
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "unknown thread evt";
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_hf_audio_state(UINT16 event)
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_AUDIO_STATE_DISCONNECTED)
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_AUDIO_STATE_CONNECTING)
4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_AUDIO_STATE_CONNECTED)
4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTHF_AUDIO_STATE_DISCONNECTING)
4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project           return "UNKNOWN MSG ID";
4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_av_conn_state(UINT16 event)
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTAV_CONNECTION_STATE_DISCONNECTED)
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTAV_CONNECTION_STATE_CONNECTING)
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTAV_CONNECTION_STATE_CONNECTED)
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTAV_CONNECTION_STATE_DISCONNECTING)
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN MSG ID";
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_av_audio_state(UINT16 event)
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(event)
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTAV_AUDIO_STATE_REMOTE_SUSPEND)
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTAV_AUDIO_STATE_STOPPED)
4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BTAV_AUDIO_STATE_STARTED)
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "UNKNOWN MSG ID";
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_adapter_scan_mode(bt_scan_mode_t mode)
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(mode)
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_SCAN_MODE_NONE)
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_SCAN_MODE_CONNECTABLE)
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE)
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "unknown scan mode";
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectconst char* dump_bt_status(bt_status_t status)
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    switch(status)
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    {
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_STATUS_SUCCESS)
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_STATUS_FAIL)
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_STATUS_NOT_READY)
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_STATUS_NOMEM)
4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_STATUS_BUSY)
4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        CASE_RETURN_STR(BT_STATUS_UNSUPPORTED)
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        default:
4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project            return "unknown scan mode";
4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    }
4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5009adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajanconst char *dump_rc_event(UINT8 event)
5019adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan{
5029adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan   switch(event) {
5039adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(BTA_AV_RC_OPEN_EVT)
5049adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(BTA_AV_RC_CLOSE_EVT)
5059adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(BTA_AV_REMOTE_CMD_EVT)
5069adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(BTA_AV_REMOTE_RSP_EVT)
5079adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(BTA_AV_VENDOR_CMD_EVT)
5089adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(BTA_AV_VENDOR_RSP_EVT)
5099adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(BTA_AV_META_MSG_EVT)
510247c68fe6eee3660cbdcf4509195fe735ae25573Satya Calloji        CASE_RETURN_STR(BTA_AV_RC_FEAT_EVT)
5119adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        default:
5129adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan            return "UNKNOWN_EVENT";
5139adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan   }
5149adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan}
5159adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan
5169adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajanconst char * dump_rc_notification_event_id(UINT8 event_id)
5179adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan{
5189adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan    switch(event_id)
5199adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan    {
5209adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_PLAY_STATUS_CHANGE)
5219adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_TRACK_CHANGE)
5229adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_TRACK_REACHED_END)
5239adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_TRACK_REACHED_START)
5249adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_PLAY_POS_CHANGED)
5259adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_BATTERY_STATUS_CHANGE)
5269adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_SYSTEM_STATUS_CHANGE)
5279adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_EVT_APP_SETTING_CHANGE)
528247c68fe6eee3660cbdcf4509195fe735ae25573Satya Calloji        CASE_RETURN_STR(AVRC_EVT_VOLUME_CHANGE)
5299adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan
5309adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        default:
5319adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan            return "Unhandled Event ID";
5329adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan    }
5339adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan}
5349adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan
5359adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajanconst char*  dump_rc_pdu(UINT8 pdu)
5369adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan{
5379adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan    switch(pdu)
5389adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan    {
5399adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_LIST_PLAYER_APP_ATTR)
5409adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_LIST_PLAYER_APP_VALUES)
5419adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_GET_CUR_PLAYER_APP_VALUE)
5429adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_SET_PLAYER_APP_VALUE)
5439adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_GET_PLAYER_APP_ATTR_TEXT)
5449adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_GET_PLAYER_APP_VALUE_TEXT)
5459adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_INFORM_DISPLAY_CHARSET)
5469adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_INFORM_BATTERY_STAT_OF_CT)
5479adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_GET_ELEMENT_ATTR)
5489adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_GET_PLAY_STATUS)
5499adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_REGISTER_NOTIFICATION)
5509adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_REQUEST_CONTINUATION_RSP)
5519adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        CASE_RETURN_STR(AVRC_PDU_ABORT_CONTINUATION_RSP)
552247c68fe6eee3660cbdcf4509195fe735ae25573Satya Calloji        CASE_RETURN_STR(AVRC_PDU_SET_ABSOLUTE_VOLUME)
5539adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan        default:
5549adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan            return "Unknown PDU";
5559adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan    }
5569adddf4965e9ddb01e339b934c343fcbd842a977Ravi Nagarajan}
557