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

Commit 3dca8725 authored by Sonny Sasaka's avatar Sonny Sasaka
Browse files

Floss: Provide scanner_id for OnAdvertisementFound/Lost

An AdvertisementFound/Lost event from MSFT-based LE Scan is tied to a
specific scanner_id instead of for all scanners. This modifies the
IScannerCallback methods to also provide scanner_id as a parameter for
OnAdvertisementFound/Lost so that the client can know which event is for
which scanner.

Bug: 268682529
Tag: #floss
Test: Build Floss on Linux/Chrome OS

Change-Id: I495946c477644701d98d640926edfcec9de4e069
parent 684ba2df
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -29,6 +29,9 @@ using ScannerId = uint8_t;

class AdvertisingFilterOnFoundOnLostInfo {
 public:
  // For MSFT-based advertisement events, the monitor handle associates every event with the monitor
  // filter this event comes from.
  uint8_t monitor_handle;
  uint8_t scanner_id;
  uint8_t filter_index;
  uint8_t advertiser_state;
+1 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ struct MsftExtensionManager::impl {
      on_found_on_lost_info.advertiser_address_type = view.GetAddressType();
      on_found_on_lost_info.advertiser_address = view.GetBdAddr();
      on_found_on_lost_info.advertiser_state = view.GetMonitorState();
      on_found_on_lost_info.monitor_handle = view.GetMonitorHandle();
      scanning_callbacks_->OnTrackAdvFoundLost(on_found_on_lost_info);
    } else {
      LOG_WARN("The Microsoft vendor event monitor state is invalid.");
+4 −4
Original line number Diff line number Diff line
@@ -333,15 +333,15 @@ impl IScannerCallback for ScannerCallback {
        }
    }

    fn on_advertisement_found(&self, scan_result: ScanResult) {
    fn on_advertisement_found(&self, scanner_id: u8, scan_result: ScanResult) {
        if self.context.lock().unwrap().active_scanner_ids.len() > 0 {
            print_info!("Advertisement found: {:#?}", scan_result);
            print_info!("Advertisement found for scanner_id {} : {:#?}", scanner_id, scan_result);
        }
    }

    fn on_advertisement_lost(&self, scan_result: ScanResult) {
    fn on_advertisement_lost(&self, scanner_id: u8, scan_result: ScanResult) {
        if self.context.lock().unwrap().active_scanner_ids.len() > 0 {
            print_info!("Advertisement lost: {:#?}", scan_result);
            print_info!("Advertisement lost for scanner_id {} : {:#?}", scanner_id, scan_result);
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -340,12 +340,12 @@ impl IScannerCallback for IScannerCallbackDBus {
    }

    #[dbus_method("OnAdvertisementFound")]
    fn on_advertisement_found(&self, scan_result: ScanResult) {
    fn on_advertisement_found(&self, scanner_id: u8, scan_result: ScanResult) {
        dbus_generated!()
    }

    #[dbus_method("OnAdvertisementLost")]
    fn on_advertisement_lost(&self, scan_result: ScanResult) {
    fn on_advertisement_lost(&self, scanner_id: u8, scan_result: ScanResult) {
        dbus_generated!()
    }

+2 −2
Original line number Diff line number Diff line
@@ -295,12 +295,12 @@ impl IScannerCallback for ScannerCallbackDBus {
    }

    #[dbus_method("OnAdvertisementFound")]
    fn on_advertisement_found(&self, scan_result: ScanResult) {
    fn on_advertisement_found(&self, scanner_id: u8, scan_result: ScanResult) {
        dbus_generated!()
    }

    #[dbus_method("OnAdvertisementLost")]
    fn on_advertisement_lost(&self, scan_result: ScanResult) {
    fn on_advertisement_lost(&self, scanner_id: u8, scan_result: ScanResult) {
        dbus_generated!()
    }

Loading