OSDN Git Service

A2DP Offload: Handle init/deinit as part of start/end session
authorSatish kumar sugasi <ssugas@codeaurora.org>
Tue, 3 Apr 2018 19:09:41 +0000 (12:09 -0700)
committerPavlin Radoslavov <pavlin@google.com>
Mon, 16 Apr 2018 23:04:42 +0000 (16:04 -0700)
Bug: 77289942
Test: Manual
Change-Id: I5b7ca6e485788d69f574bb74d2ef423507b183ff
Merged-In: I5b7ca6e485788d69f574bb74d2ef423507b183ff
(cherry picked from commit 86c58a09b82420967998a3f78ed7c770b0331c91)

btif/include/btif_a2dp_audio_interface.h
btif/src/btif_a2dp_audio_interface.cc
btif/src/btif_a2dp_source.cc

index 6b4a793..d9babaa 100644 (file)
@@ -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);
 
index 53b11c5..9fa92b2 100644 (file)
@@ -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) {
index 446b411..f81834c 100644 (file)
@@ -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;