From b7d96cc489c732ba3b7e439fd7f97a7f4f523d19 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 29 Dec 2013 17:28:45 -0800 Subject: [PATCH] monitor: Decode voice setting bit values --- monitor/packet.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/monitor/packet.c b/monitor/packet.c index 2657e5731..d5bbe0611 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -853,7 +853,76 @@ static void print_host_flow_control(uint8_t enable) static void print_voice_setting(uint16_t setting) { + uint8_t input_coding = (btohs(setting) & 0x0300) >> 8; + uint8_t input_data_format = (btohs(setting) & 0xc0) >> 6; + uint8_t air_coding_format = btohs(setting) & 0x0003; + const char *str; + print_field("Setting: 0x%4.4x", btohs(setting)); + + switch (input_coding) { + case 0x00: + str = "Linear"; + break; + case 0x01: + str ="u-law"; + break; + case 0x02: + str = "A-law"; + break; + default: + str = "Reserved"; + break; + } + + print_field(" Input Coding: %s", str); + + switch (input_data_format) { + case 0x00: + str = "1's complement"; + break; + case 0x01: + str = "2's complement"; + break; + case 0x02: + str = "Sign-Magnitude"; + break; + case 0x03: + str = "Unsigned"; + break; + default: + str = "Reserved"; + break; + } + + print_field(" Input Data Format: %s", str); + + if (input_coding == 0x00) { + print_field(" Input Sample Size: %s", + btohs(setting) & 0x20 ? "16-bit" : "8-bit"); + print_field(" # of bits padding at MSB: %d", + (btohs(setting) & 0x1c) >> 2); + } + + switch (air_coding_format) { + case 0x00: + str = "CVSD"; + break; + case 0x01: + str ="u-law"; + break; + case 0x02: + str = "A-law"; + break; + case 0x03: + str = "Transparent Data"; + break; + default: + str = "Reserved"; + break; + } + + print_field(" Air Coding Format: %s", str); } static void print_retransmission_effort(uint8_t effort) -- 2.47.3