Loading system/btif/src/btif_core.cc +38 −52 Original line number Diff line number Diff line Loading @@ -268,55 +268,6 @@ static bool btif_is_a2dp_offload_enabled() { return a2dp_offload_enabled_; } void btif_dynamic_audio_buffer_init() { LOG_INFO("%s entered", __func__); char buf[512]; bt_property_t prop; prop.type = BT_PROPERTY_DYNAMIC_AUDIO_BUFFER; prop.val = (void*)buf; bt_dynamic_audio_buffer_item_t dynamic_audio_buffer_item; prop.len = sizeof(bt_dynamic_audio_buffer_item_t); LOG_DEBUG("%s prop.len = %d", __func__, prop.len); tBTM_BLE_VSC_CB cmn_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_vsc_cb); if (btif_is_a2dp_offload_enabled() == false) { BTIF_TRACE_DEBUG("%s Get buffer time for A2DP software encoding", __func__); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = DEFAULT_BUFFER_TIME, .maximum_buffer_time = MAXIMUM_BUFFER_TIME, .minimum_buffer_time = MINIMUM_BUFFER_TIME}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); invoke_adapter_properties_cb(BT_STATUS_SUCCESS, 1, &prop); } else { if (cmn_vsc_cb.dynamic_audio_buffer_support != 0) { BTIF_TRACE_DEBUG("%s Get buffer time for A2DP Offload", __func__); tBTM_BT_DYNAMIC_AUDIO_BUFFER_CB bt_dynamic_audio_buffer_cb[CODEC_TYPE_NUMBER]; BTM_BleGetDynamicAudioBuffer(bt_dynamic_audio_buffer_cb); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = bt_dynamic_audio_buffer_cb[i].default_buffer_time, .maximum_buffer_time = bt_dynamic_audio_buffer_cb[i].maximum_buffer_time, .minimum_buffer_time = bt_dynamic_audio_buffer_cb[i].minimum_buffer_time}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); invoke_adapter_properties_cb(BT_STATUS_SUCCESS, 1, &prop); } else { BTIF_TRACE_DEBUG("%s Don't support Dynamic Audio Buffer", __func__); } } } /******************************************************************************* * * Function btif_enable_bluetooth_evt Loading Loading @@ -363,9 +314,6 @@ void btif_enable_bluetooth_evt() { /* init pan */ btif_pan_init(); /* init dynamic audio buffer */ btif_dynamic_audio_buffer_init(); /* load did configuration */ bte_load_did_conf(BTE_DID_CONF_FILE); Loading Loading @@ -653,6 +601,44 @@ void btif_get_adapter_property(bt_property_type_t type) { local_le_features.debug_logging_supported = cmn_vsc_cb.debug_logging_supported > 0; memcpy(prop.val, &local_le_features, prop.len); } else if (prop.type == BT_PROPERTY_DYNAMIC_AUDIO_BUFFER) { tBTM_BLE_VSC_CB cmn_vsc_cb; bt_dynamic_audio_buffer_item_t dynamic_audio_buffer_item; BTM_BleGetVendorCapabilities(&cmn_vsc_cb); prop.len = sizeof(bt_dynamic_audio_buffer_item_t); if (btif_is_a2dp_offload_enabled() == false) { BTIF_TRACE_DEBUG("%s Get buffer millis for A2DP software encoding", __func__); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = DEFAULT_BUFFER_TIME, .maximum_buffer_time = MAXIMUM_BUFFER_TIME, .minimum_buffer_time = MINIMUM_BUFFER_TIME}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); } else { if (cmn_vsc_cb.dynamic_audio_buffer_support != 0) { BTIF_TRACE_DEBUG("%s Get buffer millis for A2DP Offload", __func__); tBTM_BT_DYNAMIC_AUDIO_BUFFER_CB bt_dynamic_audio_buffer_cb[CODEC_TYPE_NUMBER]; BTM_BleGetDynamicAudioBuffer(bt_dynamic_audio_buffer_cb); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = bt_dynamic_audio_buffer_cb[i].default_buffer_time, .maximum_buffer_time = bt_dynamic_audio_buffer_cb[i].maximum_buffer_time, .minimum_buffer_time = bt_dynamic_audio_buffer_cb[i].minimum_buffer_time}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); } else { BTIF_TRACE_DEBUG("%s Don't support Dynamic Audio Buffer", __func__); } } } else { status = btif_storage_get_adapter_property(&prop); } Loading Loading
system/btif/src/btif_core.cc +38 −52 Original line number Diff line number Diff line Loading @@ -268,55 +268,6 @@ static bool btif_is_a2dp_offload_enabled() { return a2dp_offload_enabled_; } void btif_dynamic_audio_buffer_init() { LOG_INFO("%s entered", __func__); char buf[512]; bt_property_t prop; prop.type = BT_PROPERTY_DYNAMIC_AUDIO_BUFFER; prop.val = (void*)buf; bt_dynamic_audio_buffer_item_t dynamic_audio_buffer_item; prop.len = sizeof(bt_dynamic_audio_buffer_item_t); LOG_DEBUG("%s prop.len = %d", __func__, prop.len); tBTM_BLE_VSC_CB cmn_vsc_cb; BTM_BleGetVendorCapabilities(&cmn_vsc_cb); if (btif_is_a2dp_offload_enabled() == false) { BTIF_TRACE_DEBUG("%s Get buffer time for A2DP software encoding", __func__); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = DEFAULT_BUFFER_TIME, .maximum_buffer_time = MAXIMUM_BUFFER_TIME, .minimum_buffer_time = MINIMUM_BUFFER_TIME}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); invoke_adapter_properties_cb(BT_STATUS_SUCCESS, 1, &prop); } else { if (cmn_vsc_cb.dynamic_audio_buffer_support != 0) { BTIF_TRACE_DEBUG("%s Get buffer time for A2DP Offload", __func__); tBTM_BT_DYNAMIC_AUDIO_BUFFER_CB bt_dynamic_audio_buffer_cb[CODEC_TYPE_NUMBER]; BTM_BleGetDynamicAudioBuffer(bt_dynamic_audio_buffer_cb); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = bt_dynamic_audio_buffer_cb[i].default_buffer_time, .maximum_buffer_time = bt_dynamic_audio_buffer_cb[i].maximum_buffer_time, .minimum_buffer_time = bt_dynamic_audio_buffer_cb[i].minimum_buffer_time}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); invoke_adapter_properties_cb(BT_STATUS_SUCCESS, 1, &prop); } else { BTIF_TRACE_DEBUG("%s Don't support Dynamic Audio Buffer", __func__); } } } /******************************************************************************* * * Function btif_enable_bluetooth_evt Loading Loading @@ -363,9 +314,6 @@ void btif_enable_bluetooth_evt() { /* init pan */ btif_pan_init(); /* init dynamic audio buffer */ btif_dynamic_audio_buffer_init(); /* load did configuration */ bte_load_did_conf(BTE_DID_CONF_FILE); Loading Loading @@ -653,6 +601,44 @@ void btif_get_adapter_property(bt_property_type_t type) { local_le_features.debug_logging_supported = cmn_vsc_cb.debug_logging_supported > 0; memcpy(prop.val, &local_le_features, prop.len); } else if (prop.type == BT_PROPERTY_DYNAMIC_AUDIO_BUFFER) { tBTM_BLE_VSC_CB cmn_vsc_cb; bt_dynamic_audio_buffer_item_t dynamic_audio_buffer_item; BTM_BleGetVendorCapabilities(&cmn_vsc_cb); prop.len = sizeof(bt_dynamic_audio_buffer_item_t); if (btif_is_a2dp_offload_enabled() == false) { BTIF_TRACE_DEBUG("%s Get buffer millis for A2DP software encoding", __func__); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = DEFAULT_BUFFER_TIME, .maximum_buffer_time = MAXIMUM_BUFFER_TIME, .minimum_buffer_time = MINIMUM_BUFFER_TIME}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); } else { if (cmn_vsc_cb.dynamic_audio_buffer_support != 0) { BTIF_TRACE_DEBUG("%s Get buffer millis for A2DP Offload", __func__); tBTM_BT_DYNAMIC_AUDIO_BUFFER_CB bt_dynamic_audio_buffer_cb[CODEC_TYPE_NUMBER]; BTM_BleGetDynamicAudioBuffer(bt_dynamic_audio_buffer_cb); for (int i = 0; i < CODEC_TYPE_NUMBER; i++) { dynamic_audio_buffer_item.dab_item[i] = { .default_buffer_time = bt_dynamic_audio_buffer_cb[i].default_buffer_time, .maximum_buffer_time = bt_dynamic_audio_buffer_cb[i].maximum_buffer_time, .minimum_buffer_time = bt_dynamic_audio_buffer_cb[i].minimum_buffer_time}; } memcpy(prop.val, &dynamic_audio_buffer_item, prop.len); } else { BTIF_TRACE_DEBUG("%s Don't support Dynamic Audio Buffer", __func__); } } } else { status = btif_storage_get_adapter_property(&prop); } Loading