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

Commit 9d9b02e0 authored by Himanshu Rawat's avatar Himanshu Rawat Committed by Gerrit Code Review
Browse files

Merge "Update Android Headtracker data size" into main

parents 6265a3a4 0faf430a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@
#include "stack/include/bt_hdr.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 */
enum tBTA_HH_INT_EVT : uint16_t {
  BTA_HH_API_OPEN_EVT = BTA_SYS_EVT_START(BTA_ID_HH),
+18 −1
Original line number Diff line number Diff line
@@ -2364,6 +2364,23 @@ static bool bta_hh_le_iso_data_callback(const RawAddress& addr,
    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;
}
+6 −0
Original line number Diff line number Diff line
@@ -315,6 +315,12 @@ constexpr uint8_t kLeAudioMetadataHeadtrackerTransportVal = 1;
constexpr uint8_t kLeAudioMetadataHeadtrackerTransportLeAcl = 1;
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 */
constexpr uint8_t kDefaultScanDurationS = 5;
constexpr uint8_t kDefaultCsisSetSize = 2;
+8 −5
Original line number Diff line number Diff line
@@ -1485,11 +1485,14 @@ class LeAudioGroupStateMachineImpl : public LeAudioGroupStateMachine {

                group->dsa_.active = true;

                /* Todo: Replace literal values */
                param.sdu_itv_stom = 20000;
                param.max_trans_lat_stom = 20;
                param.sdu_itv_stom = bluetooth::le_audio::types::kLeAudioHeadtrackerSduItv;
                param.max_trans_lat_stom =
                        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->rtn_stom = 2;
                }
                it->rtn_stom = bluetooth::le_audio::types::kLeAudioHeadtrackerRtn;

                it++;
              }