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

Commit b48e277d authored by Cheney Ni's avatar Cheney Ni
Browse files

Don't require A2DP codec information when initialize audio_hal_interface

Before set active device, it is normal that can't get the current codec
information, and will be setup later. If we query the codec and break
the init, it will cause the stack can't use Bluetooth Audio HAL for
A2DP, so remove here.

Bug: 125245738
Test: Connect / disconnect multiple A2DP manually when playing
Change-Id: Ic5493141cfba60115783c03fac4faf56a7a64b07
parent 355f77b6
Loading
Loading
Loading
Loading
+3 −16
Original line number Diff line number Diff line
@@ -58,8 +58,8 @@ BluetoothAudioCtrlAck a2dp_ack_to_bt_audio_ctrl_ack(tA2DP_CTRL_ACK ack);
// Provide call-in APIs for the Bluetooth Audio HAL
class A2dpTransport : public ::bluetooth::audio::IBluetoothTransportInstance {
 public:
  A2dpTransport(SessionType sessionType, AudioConfiguration audioConfig)
      : IBluetoothTransportInstance(sessionType, std::move(audioConfig)),
  A2dpTransport(SessionType sessionType)
      : IBluetoothTransportInstance(sessionType, {}),
        a2dp_pending_cmd_(A2DP_CTRL_CMD_NONE),
        remote_delay_report_(0),
        total_bytes_read_(0),
@@ -571,25 +571,12 @@ bool init(bluetooth::common::MessageLoopThread* message_loop) {
    return false;
  }

  AudioConfiguration audio_config{};
  if (btif_av_is_a2dp_offload_enabled()) {
    CodecConfiguration codec_config{};
    if (!a2dp_get_selected_hal_codec_config(&codec_config)) {
      LOG(ERROR) << __func__ << ": Failed to get CodecConfiguration";
      return false;
    }
    audio_config.codecConfig(codec_config);
    session_type = SessionType::A2DP_HARDWARE_OFFLOAD_DATAPATH;
  } else {
    PcmParameters pcm_config{};
    if (!a2dp_get_selected_hal_pcm_config(&pcm_config)) {
      LOG(ERROR) << __func__ << ": Failed to get PcmConfiguration";
      return false;
    }
    audio_config.pcmConfig(pcm_config);
    session_type = SessionType::A2DP_SOFTWARE_ENCODING_DATAPATH;
  }
  a2dp_sink = new A2dpTransport(session_type, audio_config);
  a2dp_sink = new A2dpTransport(session_type);
  a2dp_hal_clientif = new bluetooth::audio::BluetoothAudioClientInterface(
      a2dp_sink, message_loop);
  if (remote_delay != 0) {