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

Commit 01e90bd3 authored by Jakub Tyszkowski's avatar Jakub Tyszkowski
Browse files

LeAudio: Split unicast and broadcast offload capabilities

Instead of using a single list for unicast and broadcast capabilities
in the bt stack, apply the device count criteria a bit earlier on the AIDL
data types and prepare a separate list for broadcast capabilities only.
We eventually want to remove the dependency to the device count from the
configuration struct in the stack and depend on the ASE count requirements
instead (like the AIDL config provider does).

Bug: 308428860
Test: atest bluetooth_le_audio_test bluetooth_le_audio_client_test  bluetooth_test_broadcaster bluetooth_test_broadcaster_state_machine bluetooth_le_audio_codec_manager_test
Flag: EXEMPT; non-functional refactor; container split verified by the unit tests
Change-Id: Id7e0ba5f39402b568798cff02689cb4e4541f195
parent e5e2b602
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -726,9 +726,10 @@ bool hal_bcast_capability_to_stack_format(
  return true;
}

std::vector<AudioSetConfiguration> get_offload_capabilities() {
bluetooth::audio::le_audio::OffloadCapabilities get_offload_capabilities() {
  log::info("");
  std::vector<AudioSetConfiguration> offload_capabilities;
  std::vector<AudioSetConfiguration> broadcast_offload_capabilities;
  std::vector<AudioCapabilities> le_audio_hal_capabilities =
      BluetoothAudioSinkClientInterface::GetAudioCapabilities(
          SessionType::LE_AUDIO_HARDWARE_OFFLOAD_ENCODING_DATAPATH);
@@ -774,6 +775,7 @@ std::vector<AudioSetConfiguration> get_offload_capabilities() {
      // Set device_cnt, ase_cnt to zero to ignore these fields for broadcast
      audio_set_config.topology_info = {{{0, 0}}};
      audio_set_config.confs.sink.push_back(AseConfiguration(bcast_cap));
      broadcast_offload_capabilities.push_back(audio_set_config);
      str_capability_log +=
          " Broadcast Capability: " + hal_bcast_cap.toString();
    }
@@ -788,7 +790,7 @@ std::vector<AudioSetConfiguration> get_offload_capabilities() {
    }
  }

  return offload_capabilities;
  return {offload_capabilities, broadcast_offload_capabilities};
}

AudioConfiguration offload_config_to_hal_audio_config(
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ bool hal_ucast_capability_to_stack_format(
AudioConfiguration offload_config_to_hal_audio_config(
    const ::bluetooth::le_audio::offload_config& offload_config);

std::vector<AudioSetConfiguration> get_offload_capabilities();
bluetooth::audio::le_audio::OffloadCapabilities get_offload_capabilities();

class LeAudioTransport {
 public:
+3 −2
Original line number Diff line number Diff line
@@ -51,10 +51,11 @@ using ::bluetooth::le_audio::set_configurations::AudioSetConfiguration;
using ::bluetooth::le_audio::types::CodecLocation;
}  // namespace

std::vector<AudioSetConfiguration> get_offload_capabilities() {
OffloadCapabilities get_offload_capabilities() {
  if (HalVersionManager::GetHalTransport() ==
      BluetoothAudioHalTransport::HIDL) {
    return std::vector<AudioSetConfiguration>(0);
    return {std::vector<AudioSetConfiguration>(0),
            std::vector<AudioSetConfiguration>(0)};
  }
  return aidl::le_audio::get_offload_capabilities();
}
+8 −2
Original line number Diff line number Diff line
@@ -66,8 +66,14 @@ struct StreamCallbacks {
  std::function<bool(const sink_metadata_v7_t&)> on_sink_metadata_update_;
};

std::vector<::bluetooth::le_audio::set_configurations::AudioSetConfiguration>
get_offload_capabilities();
struct OffloadCapabilities {
  std::vector<bluetooth::le_audio::set_configurations::AudioSetConfiguration>
      unicast_offload_capabilities;
  std::vector<bluetooth::le_audio::set_configurations::AudioSetConfiguration>
      broadcast_offload_capabilities;
};

OffloadCapabilities get_offload_capabilities();

class LeAudioClientInterface {
 public:
+6 −4
Original line number Diff line number Diff line
@@ -23,10 +23,12 @@ namespace audio {

namespace le_audio {

std::vector<::bluetooth::le_audio::set_configurations::AudioSetConfiguration>
get_offload_capabilities() {
  return std::vector<
      ::bluetooth::le_audio::set_configurations::AudioSetConfiguration>(0);
OffloadCapabilities get_offload_capabilities() {
  return {
      std::vector<
          bluetooth::le_audio::set_configurations::AudioSetConfiguration>(0),
      std::vector<
          bluetooth::le_audio::set_configurations::AudioSetConfiguration>(0)};
}

LeAudioClientInterface* LeAudioClientInterface::Get() { return nullptr; }
Loading