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

Commit 3330ca69 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge changes I60ac5864,If37b0519,Ia9a24377 into tm-qpr-dev am: 25adcaa1

parents 910d6f42 25adcaa1
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -605,6 +605,7 @@ cc_test {
        "le_audio/le_audio_types_test.cc",
        "le_audio/le_audio_types_test.cc",
        "le_audio/metrics_collector_linux.cc",
        "le_audio/metrics_collector_linux.cc",
        "le_audio/mock_iso_manager.cc",
        "le_audio/mock_iso_manager.cc",
        "test/common/btif_storage_mock.cc",
        "test/common/mock_controller.cc",
        "test/common/mock_controller.cc",
        "test/common/mock_csis_client.cc",
        "test/common/mock_csis_client.cc",
        "le_audio/state_machine.cc",
        "le_audio/state_machine.cc",
+6 −6
Original line number Original line Diff line number Diff line
@@ -1208,12 +1208,12 @@ class LeAudioClientImpl : public LeAudioClient {
      LOG_WARN("Could not load ases");
      LOG_WARN("Could not load ases");
    }
    }


    if (autoconnect) {
    leAudioDevice->autoconnect_flag_ = autoconnect;
      leAudioDevice->SetConnectionState(
    /* When adding from storage, make sure that autoconnect is used
          DeviceConnectState::CONNECTING_AUTOCONNECT);
     * by all the devices in the group.
      leAudioDevice->autoconnect_flag_ = true;
     */
      BTA_GATTC_Open(gatt_if_, address, reconnection_mode_, false);
    leAudioDevices_.SetInitialGroupAutoconnectState(
    }
        group_id, gatt_if_, reconnection_mode_, autoconnect);
  }
  }


  bool GetHandlesForStorage(const RawAddress& addr, std::vector<uint8_t>& out) {
  bool GetHandlesForStorage(const RawAddress& addr, std::vector<uint8_t>& out) {
+37 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@
#include "bta_gatt_queue.h"
#include "bta_gatt_queue.h"
#include "bta_groups.h"
#include "bta_groups.h"
#include "bta_le_audio_api.h"
#include "bta_le_audio_api.h"
#include "btif_storage.h"
#include "btm_iso_api.h"
#include "btm_iso_api.h"
#include "btm_iso_api_types.h"
#include "btm_iso_api_types.h"
#include "device/include/controller.h"
#include "device/include/controller.h"
@@ -2726,6 +2727,42 @@ LeAudioDevice* LeAudioDevices::FindByCisConnHdl(uint8_t cig_id,
  return iter->get();
  return iter->get();
}
}


void LeAudioDevices::SetInitialGroupAutoconnectState(
    int group_id, int gatt_if, tBTM_BLE_CONN_TYPE reconnection_mode,
    bool current_dev_autoconnect_flag) {
  if (!current_dev_autoconnect_flag) {
    /* If current device autoconnect flag is false, check if there is other
     * device in the group which is in autoconnect mode.
     * If yes, assume whole group is in autoconnect.
     */
    auto iter = std::find_if(leAudioDevices_.begin(), leAudioDevices_.end(),
                             [&group_id](auto& d) {
                               LeAudioDevice* dev;
                               dev = d.get();
                               if (dev->group_id_ != group_id) {
                                 return false;
                               }
                               return dev->autoconnect_flag_;
                             });

    current_dev_autoconnect_flag = !(iter == leAudioDevices_.end());
  }

  if (!current_dev_autoconnect_flag) {
    return;
  }

  for (auto dev : leAudioDevices_) {
    if ((dev->group_id_ == group_id) &&
        (dev->GetConnectionState() == DeviceConnectState::DISCONNECTED)) {
      dev->SetConnectionState(DeviceConnectState::CONNECTING_AUTOCONNECT);
      dev->autoconnect_flag_ = true;
      btif_storage_set_leaudio_autoconnect(dev->address_, true);
      BTA_GATTC_Open(gatt_if, dev->address_, reconnection_mode, false);
    }
  }
}

size_t LeAudioDevices::Size() { return (leAudioDevices_.size()); }
size_t LeAudioDevices::Size() { return (leAudioDevices_.size()); }


void LeAudioDevices::Dump(int fd, int group_id) {
void LeAudioDevices::Dump(int fd, int group_id) {
+3 −0
Original line number Original line Diff line number Diff line
@@ -204,6 +204,9 @@ class LeAudioDevices {
  std::shared_ptr<LeAudioDevice> GetByAddress(const RawAddress& address);
  std::shared_ptr<LeAudioDevice> GetByAddress(const RawAddress& address);
  LeAudioDevice* FindByConnId(uint16_t conn_id);
  LeAudioDevice* FindByConnId(uint16_t conn_id);
  LeAudioDevice* FindByCisConnHdl(uint8_t cig_id, uint16_t conn_hdl);
  LeAudioDevice* FindByCisConnHdl(uint8_t cig_id, uint16_t conn_hdl);
  void SetInitialGroupAutoconnectState(int group_id, int gatt_if,
                                       tBTM_BLE_CONN_TYPE reconnection_mode,
                                       bool current_dev_autoconnect_flag);
  size_t Size(void);
  size_t Size(void);
  void Dump(int fd, int group_id);
  void Dump(int fd, int group_id);
  void Cleanup(tGATT_IF client_if);
  void Cleanup(tGATT_IF client_if);