diff options
author | Srinu Jella <sjella@codeaurora.org> | 2015-07-22 17:30:32 +0530 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2015-10-06 03:21:36 -0600 |
commit | a1bff6f9b63b5d95a9e5e0f3d5f13c1d0aff02fd (patch) | |
tree | 59df00589e2f00207b30975db5af144e71bcc1be /hci | |
parent | 68e394d1d6dd96885b3102a24e21d9ce397fb133 (diff) | |
download | android_system_bt-a1bff6f9b63b5d95a9e5e0f3d5f13c1d0aff02fd.tar.gz android_system_bt-a1bff6f9b63b5d95a9e5e0f3d5f13c1d0aff02fd.tar.bz2 android_system_bt-a1bff6f9b63b5d95a9e5e0f3d5f13c1d0aff02fd.zip |
Bluetooth: Read local supported codecs part of boot sequence
- Read local supported codecs as part of controller boot
up sequence.
- API provided from controller interface to get the
local supported codecs.
CRs-Fixed: 878963
Change-Id: I37a4ab9e6a20ed057ca794dbdd4f99c2a8c65a6e
Diffstat (limited to 'hci')
-rwxr-xr-x[-rw-r--r--] | hci/include/hci_packet_factory.h | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | hci/include/hci_packet_parser.h | 5 | ||||
-rwxr-xr-x[-rw-r--r--] | hci/src/hci_packet_factory.c | 7 | ||||
-rwxr-xr-x[-rw-r--r--] | hci/src/hci_packet_parser.c | 19 |
4 files changed, 30 insertions, 2 deletions
diff --git a/hci/include/hci_packet_factory.h b/hci/include/hci_packet_factory.h index 79110e178..ac6f12a04 100644..100755 --- a/hci/include/hci_packet_factory.h +++ b/hci/include/hci_packet_factory.h @@ -40,6 +40,7 @@ typedef struct { BT_HDR *(*make_ble_read_resolving_list_size)(void); BT_HDR *(*make_ble_read_suggested_default_data_length)(void); BT_HDR *(*make_ble_set_event_mask)(const bt_event_mask_t *event_mask); + BT_HDR *(*make_read_local_supported_codecs)(void); } hci_packet_factory_t; const hci_packet_factory_t *hci_packet_factory_get_interface(); diff --git a/hci/include/hci_packet_parser.h b/hci/include/hci_packet_parser.h index 57e5d1c25..51d00eaec 100644..100755 --- a/hci/include/hci_packet_parser.h +++ b/hci/include/hci_packet_parser.h @@ -91,6 +91,11 @@ typedef struct { BT_HDR *response, uint16_t *ble_default_packet_length_ptr ); + + void (*parse_read_local_supported_codecs_response)( + BT_HDR *response, + uint8_t *no_of_local_supported_codecs, uint8_t *local_supported_codecs); + } hci_packet_parser_t; const hci_packet_parser_t *hci_packet_parser_get_interface(); diff --git a/hci/src/hci_packet_factory.c b/hci/src/hci_packet_factory.c index bc8fca51d..96f578a70 100644..100755 --- a/hci/src/hci_packet_factory.c +++ b/hci/src/hci_packet_factory.c @@ -137,6 +137,10 @@ static BT_HDR *make_ble_read_suggested_default_data_length(void) { return make_command_no_params(HCI_BLE_READ_DEFAULT_DATA_LENGTH); } +static BT_HDR *make_read_local_supported_codecs(void) { + return make_command_no_params(HCI_READ_LOCAL_SUPPORTED_CODECS); +} + static BT_HDR *make_ble_set_event_mask(const bt_event_mask_t *event_mask) { uint8_t *stream; uint8_t parameter_size = sizeof(bt_event_mask_t); @@ -193,7 +197,8 @@ static const hci_packet_factory_t interface = { make_ble_read_local_supported_features, make_ble_read_resolving_list_size, make_ble_read_suggested_default_data_length, - make_ble_set_event_mask + make_ble_set_event_mask, + make_read_local_supported_codecs }; const hci_packet_factory_t *hci_packet_factory_get_interface() { diff --git a/hci/src/hci_packet_parser.c b/hci/src/hci_packet_parser.c index b9f4080cd..58633d12e 100644..100755 --- a/hci/src/hci_packet_parser.c +++ b/hci/src/hci_packet_parser.c @@ -71,6 +71,22 @@ static void parse_read_local_version_info_response( buffer_allocator->free(response); } +static void parse_read_local_supported_codecs_response( + BT_HDR *response, + uint8_t *no_of_local_supported_codecs, uint8_t *local_supported_codecs) { + uint8_t i = 0; + + uint8_t *stream = read_command_complete_header(response, HCI_READ_LOCAL_SUPPORTED_CODECS, 1 /* bytes after */); + assert(stream != NULL); + STREAM_TO_UINT8(*no_of_local_supported_codecs, stream); + for ( i = 0; i < *no_of_local_supported_codecs; i++) + { + STREAM_TO_UINT8(*local_supported_codecs, stream); + local_supported_codecs++; + } + buffer_allocator->free(response); +} + static void parse_read_bd_addr_response( BT_HDR *response, bt_bdaddr_t *address_ptr) { @@ -236,7 +252,8 @@ static const hci_packet_parser_t interface = { parse_ble_read_supported_states_response, parse_ble_read_local_supported_features_response, parse_ble_read_resolving_list_size_response, - parse_ble_read_suggested_default_data_length_response + parse_ble_read_suggested_default_data_length_response, + parse_read_local_supported_codecs_response }; const hci_packet_parser_t *hci_packet_parser_get_interface() { |