Loading system/device/include/controller.h +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ typedef struct controller_t { uint8_t (*get_ble_resolving_list_max_size)(void); void (*set_ble_resolving_list_max_size)(int resolving_list_max_size); uint8_t *(*get_local_supported_codecs)(uint8_t *number_of_codecs); } controller_t; const controller_t *controller_get_interface(); Loading system/device/src/controller.c +22 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ const uint8_t SCO_HOST_BUFFER_SIZE = 0xff; #define MAX_FEATURES_CLASSIC_PAGE_COUNT 3 #define BLE_SUPPORTED_STATES_SIZE 8 #define BLE_SUPPORTED_FEATURES_SIZE 8 #define MAX_LOCAL_SUPPORTED_CODECS_SIZE 8 static const hci_t *hci; static const hci_packet_factory_t *packet_factory; Loading @@ -67,6 +68,8 @@ static uint8_t ble_resolving_list_max_size; static uint8_t ble_supported_states[BLE_SUPPORTED_STATES_SIZE]; static bt_device_features_t features_ble; static uint16_t ble_suggested_default_data_length; static uint8_t local_supported_codecs[MAX_LOCAL_SUPPORTED_CODECS_SIZE]; static uint8_t number_of_local_supported_codecs = 0; static bool readable; static bool ble_supported; Loading Loading @@ -241,6 +244,14 @@ static future_t *start_up(void) { packet_parser->parse_generic_command_complete(response); } // read local supported codecs if(HCI_READ_LOCAL_CODECS_SUPPORTED(supported_commands)) { response = AWAIT_COMMAND(packet_factory->make_read_local_supported_codecs()); packet_parser->parse_read_local_supported_codecs_response( response, &number_of_local_supported_codecs, local_supported_codecs); } readable = true; return future_new_immediate(FUTURE_SUCCESS); } Loading Loading @@ -290,6 +301,15 @@ static uint8_t get_last_features_classic_index(void) { return last_features_classic_page_index; } static uint8_t *get_local_supported_codecs(uint8_t *number_of_codecs) { assert(readable); if(number_of_local_supported_codecs) { *number_of_codecs = number_of_local_supported_codecs; return local_supported_codecs; } return NULL; } static const bt_device_features_t *get_features_ble(void) { assert(readable); assert(ble_supported); Loading Loading @@ -460,7 +480,8 @@ static const controller_t interface = { get_ble_white_list_size, get_ble_resolving_list_max_size, set_ble_resolving_list_max_size set_ble_resolving_list_max_size, get_local_supported_codecs }; const controller_t *controller_get_interface() { Loading system/hci/include/hci_packet_factory.h +1 −0 Original line number Diff line number Diff line Loading @@ -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(); system/hci/include/hci_packet_parser.h +5 −0 Original line number Diff line number Diff line Loading @@ -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 *number_of_local_supported_codecs, uint8_t *local_supported_codecs); } hci_packet_parser_t; const hci_packet_parser_t *hci_packet_parser_get_interface(); Loading system/hci/src/hci_packet_factory.c +6 −1 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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() { Loading Loading
system/device/include/controller.h +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ typedef struct controller_t { uint8_t (*get_ble_resolving_list_max_size)(void); void (*set_ble_resolving_list_max_size)(int resolving_list_max_size); uint8_t *(*get_local_supported_codecs)(uint8_t *number_of_codecs); } controller_t; const controller_t *controller_get_interface(); Loading
system/device/src/controller.c +22 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ const uint8_t SCO_HOST_BUFFER_SIZE = 0xff; #define MAX_FEATURES_CLASSIC_PAGE_COUNT 3 #define BLE_SUPPORTED_STATES_SIZE 8 #define BLE_SUPPORTED_FEATURES_SIZE 8 #define MAX_LOCAL_SUPPORTED_CODECS_SIZE 8 static const hci_t *hci; static const hci_packet_factory_t *packet_factory; Loading @@ -67,6 +68,8 @@ static uint8_t ble_resolving_list_max_size; static uint8_t ble_supported_states[BLE_SUPPORTED_STATES_SIZE]; static bt_device_features_t features_ble; static uint16_t ble_suggested_default_data_length; static uint8_t local_supported_codecs[MAX_LOCAL_SUPPORTED_CODECS_SIZE]; static uint8_t number_of_local_supported_codecs = 0; static bool readable; static bool ble_supported; Loading Loading @@ -241,6 +244,14 @@ static future_t *start_up(void) { packet_parser->parse_generic_command_complete(response); } // read local supported codecs if(HCI_READ_LOCAL_CODECS_SUPPORTED(supported_commands)) { response = AWAIT_COMMAND(packet_factory->make_read_local_supported_codecs()); packet_parser->parse_read_local_supported_codecs_response( response, &number_of_local_supported_codecs, local_supported_codecs); } readable = true; return future_new_immediate(FUTURE_SUCCESS); } Loading Loading @@ -290,6 +301,15 @@ static uint8_t get_last_features_classic_index(void) { return last_features_classic_page_index; } static uint8_t *get_local_supported_codecs(uint8_t *number_of_codecs) { assert(readable); if(number_of_local_supported_codecs) { *number_of_codecs = number_of_local_supported_codecs; return local_supported_codecs; } return NULL; } static const bt_device_features_t *get_features_ble(void) { assert(readable); assert(ble_supported); Loading Loading @@ -460,7 +480,8 @@ static const controller_t interface = { get_ble_white_list_size, get_ble_resolving_list_max_size, set_ble_resolving_list_max_size set_ble_resolving_list_max_size, get_local_supported_codecs }; const controller_t *controller_get_interface() { Loading
system/hci/include/hci_packet_factory.h +1 −0 Original line number Diff line number Diff line Loading @@ -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();
system/hci/include/hci_packet_parser.h +5 −0 Original line number Diff line number Diff line Loading @@ -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 *number_of_local_supported_codecs, uint8_t *local_supported_codecs); } hci_packet_parser_t; const hci_packet_parser_t *hci_packet_parser_get_interface(); Loading
system/hci/src/hci_packet_factory.c +6 −1 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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() { Loading