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

Commit 5a13cd1b authored by Sonny Sasaka's avatar Sonny Sasaka Committed by Automerger Merge Worker
Browse files

Merge "Floss: Define MSFT API in btif" am: d74dc32a

parents 54b76625 d74dc32a
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -129,6 +129,15 @@ class BleScannerInterface {
      base::Callback<void(uint8_t /* filt_type */, uint8_t /* avbl_space */,
                          uint8_t /* action */, uint8_t /* btm_status */)>;

  using MsftAdvMonitorAddCallback =
      base::Callback<void(uint8_t /* monitor_handle */, uint8_t /* status */)>;

  using MsftAdvMonitorRemoveCallback =
      base::Callback<void(uint8_t /* status */)>;

  using MsftAdvMonitorEnableCallback =
      base::Callback<void(uint8_t /* status */)>;

  /** Registers a scanner with the stack */
  virtual void RegisterScanner(const bluetooth::Uuid& app_uuid,
                               RegisterCallback) = 0;
@@ -155,6 +164,18 @@ class BleScannerInterface {
  /** Enable / disable scan filter feature*/
  virtual void ScanFilterEnable(bool enable, EnableCallback cb) = 0;

  /** Configures MSFT scan filter (advertisement monitor) */
  virtual void MsftAdvMonitorAdd(MsftAdvMonitor monitor,
                                 MsftAdvMonitorAddCallback cb) = 0;

  /** Removes previously added MSFT scan filter */
  virtual void MsftAdvMonitorRemove(uint8_t monitor_handle,
                                    MsftAdvMonitorRemoveCallback cb) = 0;

  /** Enable / disable MSFT scan filter feature */
  virtual void MsftAdvMonitorEnable(bool enable,
                                    MsftAdvMonitorEnableCallback cb) = 0;

  /** Sets the LE scan interval and window in units of N*0.625 msec */
  virtual void SetScanParameters(int scanner_id, int scan_interval,
                                 int scan_window, Callback cb) = 0;
+16 −0
Original line number Diff line number Diff line
@@ -107,4 +107,20 @@ struct ApcfCommand {
  std::array<uint8_t, 16> irk;  // 128 bit/16 octet IRK
};

// MSFT scan filter pattern
struct MsftAdvMonitorPattern {
  uint8_t ad_type;
  uint8_t start_byte;
  std::vector<uint8_t> pattern;
};

// LE Scan filter defined by MSFT extension.
struct MsftAdvMonitor {
  uint8_t rssi_threshold_high;
  uint8_t rssi_threshold_low;
  uint8_t rssi_threshold_low_time_interval;
  uint8_t rssi_sampling_period;
  std::vector<MsftAdvMonitorPattern> patterns;
};

#endif /* ANDROID_INCLUDE_BT_COMMON_TYPES_H */
+6 −0
Original line number Diff line number Diff line
@@ -52,6 +52,12 @@ class BleScannerInterfaceImpl : public ::BleScannerInterface,
                     FilterConfigCallback cb) override;
  void ScanFilterClear(int filter_index, FilterConfigCallback cb) override;
  void ScanFilterEnable(bool enable, EnableCallback cb) override;
  void MsftAdvMonitorAdd(MsftAdvMonitor monitor,
                         MsftAdvMonitorAddCallback cb) override;
  void MsftAdvMonitorRemove(uint8_t monitor_handle,
                            MsftAdvMonitorRemoveCallback cb) override;
  void MsftAdvMonitorEnable(bool enable,
                            MsftAdvMonitorEnableCallback cb) override;
  void SetScanParameters(int scanner_id, int scan_interval, int scan_window,
                         Callback cb) override;
  void BatchscanConfigStorage(int client_if, int batch_scan_full_max,
+19 −1
Original line number Diff line number Diff line
@@ -241,6 +241,24 @@ void BleScannerInterfaceImpl::ScanFilterEnable(bool enable, EnableCallback cb) {
                   base::Bind(cb, action, btm_status_value(BTM_SUCCESS)));
}

/** Adds MSFT filter */
void BleScannerInterfaceImpl::MsftAdvMonitorAdd(MsftAdvMonitor monitor,
                                                MsftAdvMonitorAddCallback cb) {
  // TODO(b/246404026): Implement.
}

/** Removes MSFT filter */
void BleScannerInterfaceImpl::MsftAdvMonitorRemove(
    uint8_t monitor_handle, MsftAdvMonitorRemoveCallback cb) {
  // TODO(b/246404026): Implement.
}

/** Enable / disable MSFT scan filter */
void BleScannerInterfaceImpl::MsftAdvMonitorEnable(
    bool enable, MsftAdvMonitorEnableCallback cb) {
  // TODO(b/246404026): Implement.
}

/** Sets the LE scan interval and window in units of N*0.625 msec */
void BleScannerInterfaceImpl::SetScanParameters(int scanner_id,
                                                int scan_interval,
+9 −0
Original line number Diff line number Diff line
@@ -93,6 +93,15 @@ class MockScannerHandler : public BleScannerInterface {
    ScanFilterParamSetupImpl(client_if, action, filt_index, filt_param.get(),
                             std::move(cb));
  }

  void MsftAdvMonitorAdd(MsftAdvMonitor monitor,
                         MsftAdvMonitorAddCallback cb) override{};

  void MsftAdvMonitorRemove(uint8_t monitor_handle,
                            MsftAdvMonitorRemoveCallback cb) override{};

  void MsftAdvMonitorEnable(bool enable,
                            MsftAdvMonitorEnableCallback cb) override{};
};

class TestDelegate : public LowEnergyScanner::Delegate {