summaryrefslogtreecommitdiff
path: root/monitor/broadcom.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2018-06-16 22:53:04 +0200
committerMarcel Holtmann <marcel@holtmann.org>2018-06-16 22:53:04 +0200
commit56618fa4e243da17ea9b3020b888697832f15a58 (patch)
tree3c3916e1e52e424d5abba6bb7badc2c2d6b5f84f /monitor/broadcom.c
parent3a28583216c6f9bd45b8850f6c1fa4004e3d2bb4 (diff)
downloadbluez-56618fa4e243da17ea9b3020b888697832f15a58.tar.gz
monitor: Add support for decoding Broadcom Enable WBS command
Diffstat (limited to 'monitor/broadcom.c')
-rw-r--r--monitor/broadcom.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/monitor/broadcom.c b/monitor/broadcom.c
index 475a2489f..fb96609eb 100644
--- a/monitor/broadcom.c
+++ b/monitor/broadcom.c
@@ -529,6 +529,44 @@ static void read_verbose_version_info_rsp(const void *data, uint8_t size)
print_field("Build number: %u (0x%4.4x)", build_num, build_num);
}
+static void enable_wbs_cmd(const void *data, uint8_t size)
+{
+ uint8_t mode = get_u8(data);
+ uint16_t codec = get_le16(data + 1);
+ const char *str;
+
+ switch (mode) {
+ case 0x00:
+ str = "Disable WBS";
+ break;
+ case 0x01:
+ str = "Enable WBS";
+ break;
+ default:
+ str = "Reserved";
+ break;
+ }
+
+ print_field("Mode: %s (0x%2.2x)", str, mode);
+
+ switch (codec) {
+ case 0x0000:
+ str = "None";
+ break;
+ case 0x0001:
+ str = "CVSD";
+ break;
+ case 0x0002:
+ str = "mSBC";
+ break;
+ default:
+ str = "Reserved";
+ break;
+ }
+
+ print_field("Codec: %s (0x%4.4x)", str, codec);
+}
+
static const struct vendor_ocf vendor_ocf_table[] = {
{ 0x001, "Write BD ADDR",
write_bd_addr_cmd, 6, true,
@@ -588,6 +626,9 @@ static const struct vendor_ocf vendor_ocf_table[] = {
{ 0x079, "Read Verbose Config Version Info",
null_cmd, 0, true,
read_verbose_version_info_rsp, 7, true },
+ { 0x07e, "Enable WBS",
+ enable_wbs_cmd, 3, true,
+ status_rsp, 1, true },
{ }
};