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

Commit 11fd7114 authored by Satish kumar sugasi's avatar Satish kumar sugasi Committed by Pavlin Radoslavov
Browse files

A2DP Offload: Handle init/deinit as part of start/end session

Bug: 77289942
Test: Manual
Change-Id: I5b7ca6e485788d69f574bb74d2ef423507b183ff
parent 3a69b38e
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -29,8 +29,6 @@
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_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_end_session(void);

+7 −4
Original line number 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_suspend_req();
static void btif_a2dp_audio_interface_init();
static void btif_a2dp_audio_interface_deinit();
// Delay reporting
// 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();
}

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

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

  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__);
  btAudio = nullptr;
  LOG_INFO(LOG_TAG, "%s: exit", __func__);
}

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

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

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

  raise_priority_a2dp(TASK_HIGH_MEDIA);
  btif_a2dp_control_init();
  if (btif_av_is_a2dp_offload_enabled()) btif_a2dp_audio_interface_init();
  btif_a2dp_source_cb.SetState(BtifA2dpSource::kStateRunning);
  BluetoothMetricsLogger::GetInstance()->LogBluetoothSessionStart(
      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_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);
  btif_a2dp_source_cb.tx_audio_queue = nullptr;