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

Commit cb33d99d authored by Himanshu Rawat's avatar Himanshu Rawat Committed by Automerger Merge Worker
Browse files

Merge "Update Android Headtracker data size" into main am: 9d9b02e0 am: 2f41b7fb

parents 2bc87c33 2f41b7fb
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,9 @@
#include "stack/include/bt_hdr.h"
#include "stack/include/bt_hdr.h"
#include "types/raw_address.h"
#include "types/raw_address.h"


#define ANDROID_HEADTRACKER_DATA_SIZE 13
#define ANDROID_HEADTRACKER_REPORT_ID 1

/* state machine events, these events are handled by the state machine */
/* state machine events, these events are handled by the state machine */
enum tBTA_HH_INT_EVT : uint16_t {
enum tBTA_HH_INT_EVT : uint16_t {
  BTA_HH_API_OPEN_EVT = BTA_SYS_EVT_START(BTA_ID_HH),
  BTA_HH_API_OPEN_EVT = BTA_SYS_EVT_START(BTA_ID_HH),
+18 −1
Original line number Original line Diff line number Diff line
@@ -2364,6 +2364,23 @@ static bool bta_hh_le_iso_data_callback(const RawAddress& addr,
    return false;
    return false;
  }
  }


  bta_hh_co_data(p_dev_cb->hid_handle, data, size);
  uint8_t* report = data;
  uint8_t len = size;
  if (com::android::bluetooth::flags::headtracker_sdu_size()) {
    if (size == ANDROID_HEADTRACKER_DATA_SIZE) {
      report = (uint8_t*)osi_malloc(size + 1);
      report[0] = ANDROID_HEADTRACKER_REPORT_ID;
      mempcpy(&report[1], data, size);
      len = size + 1;
    } else if (size != ANDROID_HEADTRACKER_DATA_SIZE + 1) {
      log::warn("Unexpected headtracker data size {} from {}", size, addr);
    }
  }

  bta_hh_co_data(p_dev_cb->hid_handle, report, len);

  if (report != data) {
    osi_free(report);
  }
  return true;
  return true;
}
}
+6 −0
Original line number Original line Diff line number Diff line
@@ -315,6 +315,12 @@ constexpr uint8_t kLeAudioMetadataHeadtrackerTransportVal = 1;
constexpr uint8_t kLeAudioMetadataHeadtrackerTransportLeAcl = 1;
constexpr uint8_t kLeAudioMetadataHeadtrackerTransportLeAcl = 1;
constexpr uint8_t kLeAudioMetadataHeadtrackerTransportLeIso = 2;
constexpr uint8_t kLeAudioMetadataHeadtrackerTransportLeIso = 2;


/* Android Headtracker config parameters */
constexpr uint32_t kLeAudioHeadtrackerSduItv = 20000;
constexpr uint16_t kLeAudioHeadtrackerMaxTransLat = 20;
constexpr uint16_t kLeAudioHeadtrackerMaxSduSize = 13;
constexpr uint8_t kLeAudioHeadtrackerRtn = 2;

/* CSIS Types */
/* CSIS Types */
constexpr uint8_t kDefaultScanDurationS = 5;
constexpr uint8_t kDefaultScanDurationS = 5;
constexpr uint8_t kDefaultCsisSetSize = 2;
constexpr uint8_t kDefaultCsisSetSize = 2;
+8 −5
Original line number Original line Diff line number Diff line
@@ -1485,11 +1485,14 @@ class LeAudioGroupStateMachineImpl : public LeAudioGroupStateMachine {


                group->dsa_.active = true;
                group->dsa_.active = true;


                /* Todo: Replace literal values */
                param.sdu_itv_stom = bluetooth::le_audio::types::kLeAudioHeadtrackerSduItv;
                param.sdu_itv_stom = 20000;
                param.max_trans_lat_stom =
                param.max_trans_lat_stom = 20;
                        bluetooth::le_audio::types::kLeAudioHeadtrackerMaxTransLat;
                it->max_sdu_size_stom = bluetooth::le_audio::types::kLeAudioHeadtrackerMaxSduSize;
                if (!com::android::bluetooth::flags::headtracker_sdu_size()) {
                  it->max_sdu_size_stom = 15;
                  it->max_sdu_size_stom = 15;
                it->rtn_stom = 2;
                }
                it->rtn_stom = bluetooth::le_audio::types::kLeAudioHeadtrackerRtn;


                it++;
                it++;
              }
              }