Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f51905d3 authored by Zhihai Xu's avatar Zhihai Xu
Browse files

flounder64: bluetooth: Adjust volume level on BT HS and DUT side



MW600 Bluetooth address is "58:17:0c:e8:b0:7a". It is not included in
AVRCP profile white list. So it can't support absolute volume. We need
to  whitelist it by device name "MW600" instead device address method.

Signed-off-by: default avatarThomas.TT_Lin <Thomas.TT_Lin@htc.com>
Change-Id: I41b27fbab13dcf9d0005e8d5ae25ffb95eb546d4
parent 494d71d8
Loading
Loading
Loading
Loading
+23 −4
Original line number Diff line number Diff line
@@ -183,6 +183,11 @@ static const UINT8 rc_white_addr_prefix[][3] = {
    {0x30, 0x17, 0xC8} // Sony wm600
};

static const char* rc_white_name[] = {
    "SBH50",
    "MW600"
};

static void send_reject_response (UINT8 rc_handle, UINT8 label,
    UINT8 pdu, UINT8 status);
static UINT8 opcode_from_pdu(UINT8 pdu);
@@ -1661,7 +1666,9 @@ void lbl_destroy()
static BOOLEAN dev_blacklisted_for_absolute_volume(BD_ADDR peer_dev)
{
    int i;
    char *dev_name_str = NULL;
    int whitelist_size = sizeof(rc_white_addr_prefix)/sizeof(rc_white_addr_prefix[0]);

    for (i = 0; i < whitelist_size; i++) {
        if (rc_white_addr_prefix[i][0] == peer_dev[0] &&
            rc_white_addr_prefix[i][1] == peer_dev[1] &&
@@ -1671,7 +1678,19 @@ static BOOLEAN dev_blacklisted_for_absolute_volume(BD_ADDR peer_dev)
            return FALSE;
        }
    }
    BTIF_TRACE_WARNING3("blacklist absolute volume for %02x:%02x:%02x",
                        peer_dev[0], peer_dev[1], peer_dev[2]);

    dev_name_str = BTM_SecReadDevName(peer_dev);
    whitelist_size = sizeof(rc_white_name)/sizeof(char*);
    if (dev_name_str != NULL) {
        for (i = 0; i < whitelist_size; i++) {
            if (strcmp(dev_name_str, rc_white_name[i]) == 0) {
                BTIF_TRACE_DEBUG1("whitelist absolute volume for %s", dev_name_str);
                return FALSE;
            }
        }
    }

    BTIF_TRACE_WARNING4("blacklist absolute volume for %02x:%02x:%02x, name = %s",
                        peer_dev[0], peer_dev[1], peer_dev[2], dev_name_str);
    return TRUE;
}