Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9a9a380 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "A2DP Offload: Handle init/deinit as part of start/end session" into pi-dev

parents 8f62a681 1362a018
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -29,8 +29,6 @@
void btif_a2dp_audio_on_started(tBTA_AV_STATUS status);
void btif_a2dp_audio_on_started(tBTA_AV_STATUS status);
void btif_a2dp_audio_on_stopped(tBTA_AV_STATUS status);
void btif_a2dp_audio_on_stopped(tBTA_AV_STATUS status);
void btif_a2dp_audio_on_suspended(tBTA_AV_STATUS status);
void btif_a2dp_audio_on_suspended(tBTA_AV_STATUS status);
void btif_a2dp_audio_interface_init(void);
void btif_a2dp_audio_interface_deinit(void);
void btif_a2dp_audio_interface_start_session(void);
void btif_a2dp_audio_interface_start_session(void);
void btif_a2dp_audio_interface_end_session(void);
void btif_a2dp_audio_interface_end_session(void);


+7 −4
Original line number Original line Diff line number Diff line
@@ -63,6 +63,8 @@ uint8_t btif_a2dp_audio_process_request(uint8_t cmd);


static void btif_a2dp_audio_send_start_req();
static void btif_a2dp_audio_send_start_req();
static void btif_a2dp_audio_send_suspend_req();
static void btif_a2dp_audio_send_suspend_req();
static void btif_a2dp_audio_interface_init();
static void btif_a2dp_audio_interface_deinit();
// Delay reporting
// Delay reporting
// static void btif_a2dp_audio_send_sink_latency();
// static void btif_a2dp_audio_send_sink_latency();


@@ -172,7 +174,7 @@ static void btif_a2dp_get_codec_configuration(
  p_codec_info->encodedAudioBitrate = CodecConfig->getTrackBitRate();
  p_codec_info->encodedAudioBitrate = CodecConfig->getTrackBitRate();
}
}


void btif_a2dp_audio_interface_init() {
static void btif_a2dp_audio_interface_init() {
  LOG_INFO(LOG_TAG, "%s", __func__);
  LOG_INFO(LOG_TAG, "%s", __func__);


  btAudio = IBluetoothAudioOffload::getService();
  btAudio = IBluetoothAudioOffload::getService();
@@ -181,19 +183,19 @@ void btif_a2dp_audio_interface_init() {
  LOG_DEBUG(
  LOG_DEBUG(
      LOG_TAG, "%s: IBluetoothAudioOffload::getService() returned %p (%s)",
      LOG_TAG, "%s: IBluetoothAudioOffload::getService() returned %p (%s)",
      __func__, btAudio.get(), (btAudio->isRemote() ? "remote" : "local"));
      __func__, btAudio.get(), (btAudio->isRemote() ? "remote" : "local"));

  LOG_INFO(LOG_TAG, "%s:Init returned", __func__);
  LOG_INFO(LOG_TAG, "%s:Init returned", __func__);
}
}


void btif_a2dp_audio_interface_deinit() {
static void btif_a2dp_audio_interface_deinit() {
  LOG_INFO(LOG_TAG, "%s: start", __func__);
  LOG_INFO(LOG_TAG, "%s: start", __func__);
  btAudio = nullptr;
  btAudio = nullptr;
  LOG_INFO(LOG_TAG, "%s: exit", __func__);
}
}


void btif_a2dp_audio_interface_start_session() {
void btif_a2dp_audio_interface_start_session() {
  LOG_INFO(LOG_TAG, "%s", __func__);
  LOG_INFO(LOG_TAG, "%s", __func__);
  btif_a2dp_audio_interface_init();
  CHECK(btAudio != nullptr);
  CHECK(btAudio != nullptr);

  CodecConfiguration codec_info;
  CodecConfiguration codec_info;
  btif_a2dp_get_codec_configuration(&codec_info);
  btif_a2dp_get_codec_configuration(&codec_info);
  android::sp<IBluetoothAudioHost> host_if = new BluetoothAudioHost();
  android::sp<IBluetoothAudioHost> host_if = new BluetoothAudioHost();
@@ -207,6 +209,7 @@ void btif_a2dp_audio_interface_end_session() {
  if (!ret.isOk()) {
  if (!ret.isOk()) {
    LOG_ERROR(LOG_TAG, "HAL server is dead");
    LOG_ERROR(LOG_TAG, "HAL server is dead");
  }
  }
  btif_a2dp_audio_interface_deinit();
}
}


void btif_a2dp_audio_on_started(tBTA_AV_STATUS status) {
void btif_a2dp_audio_on_started(tBTA_AV_STATUS status) {
+2 −2
Original line number Original line Diff line number Diff line
@@ -419,7 +419,6 @@ static void btif_a2dp_source_startup_delayed(void) {


  raise_priority_a2dp(TASK_HIGH_MEDIA);
  raise_priority_a2dp(TASK_HIGH_MEDIA);
  btif_a2dp_control_init();
  btif_a2dp_control_init();
  if (btif_av_is_a2dp_offload_enabled()) btif_a2dp_audio_interface_init();
  btif_a2dp_source_cb.SetState(BtifA2dpSource::kStateRunning);
  btif_a2dp_source_cb.SetState(BtifA2dpSource::kStateRunning);
  BluetoothMetricsLogger::GetInstance()->LogBluetoothSessionStart(
  BluetoothMetricsLogger::GetInstance()->LogBluetoothSessionStart(
      system_bt_osi::CONNECTION_TECHNOLOGY_TYPE_BREDR, 0);
      system_bt_osi::CONNECTION_TECHNOLOGY_TYPE_BREDR, 0);
@@ -493,7 +492,8 @@ static void btif_a2dp_source_shutdown_delayed(void) {
  btif_a2dp_source_cb.media_alarm = nullptr;
  btif_a2dp_source_cb.media_alarm = nullptr;


  btif_a2dp_control_cleanup();
  btif_a2dp_control_cleanup();
  if (btif_av_is_a2dp_offload_enabled()) btif_a2dp_audio_interface_deinit();
  if (btif_av_is_a2dp_offload_enabled())
    btif_a2dp_audio_interface_end_session();
  fixed_queue_free(btif_a2dp_source_cb.tx_audio_queue, nullptr);
  fixed_queue_free(btif_a2dp_source_cb.tx_audio_queue, nullptr);
  btif_a2dp_source_cb.tx_audio_queue = nullptr;
  btif_a2dp_source_cb.tx_audio_queue = nullptr;