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

Commit 91c37049 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "floss: Fix advertising callback status type"

parents debc1649 df779dcc
Loading
Loading
Loading
Loading
+22 −18
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ use crate::dbus_iface::{
use crate::ClientContext;
use crate::{console_red, console_yellow, print_error, print_info};
use bt_topshim::btif::{BtBondState, BtPropertyType, BtSspVariant, BtStatus, Uuid128Bit};
use bt_topshim::profiles::gatt::{GattStatus, LePhy};
use bt_topshim::profiles::gatt::{AdvertisingStatus, GattStatus, LePhy};
use btstack::bluetooth::{
    BluetoothDevice, IBluetooth, IBluetoothCallback, IBluetoothConnectionCallback,
};
@@ -427,10 +427,10 @@ impl IAdvertisingSetCallback for AdvertisingSetCallback {
        reg_id: i32,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
        print_info!(
            "on_advertising_set_started: reg_id = {}, advertiser_id = {}, tx_power = {}, status = {}",
            "on_advertising_set_started: reg_id = {}, advertiser_id = {}, tx_power = {}, status = {:?}",
            reg_id,
            advertiser_id,
            tx_power,
@@ -438,7 +438,7 @@ impl IAdvertisingSetCallback for AdvertisingSetCallback {
        );

        let mut context = self.context.lock().unwrap();
        if status != GattStatus::Success {
        if status != AdvertisingStatus::Success {
            print_error!(
                "on_advertising_set_started: remove advertising set registered ({})",
                reg_id
@@ -467,26 +467,26 @@ impl IAdvertisingSetCallback for AdvertisingSetCallback {
        self.context.lock().unwrap().adv_sets.retain(|_, s| s.adv_id != Some(advertiser_id));
    }

    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: GattStatus) {
    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: AdvertisingStatus) {
        print_info!(
            "on_advertising_enabled: advertiser_id = {}, enable = {}, status = {}",
            "on_advertising_enabled: advertiser_id = {}, enable = {}, status = {:?}",
            advertiser_id,
            enable,
            status
        );
    }

    fn on_advertising_data_set(&self, advertiser_id: i32, status: GattStatus) {
    fn on_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {
        print_info!(
            "on_advertising_data_set: advertiser_id = {}, status = {}",
            "on_advertising_data_set: advertiser_id = {}, status = {:?}",
            advertiser_id,
            status
        );
    }

    fn on_scan_response_data_set(&self, advertiser_id: i32, status: GattStatus) {
    fn on_scan_response_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {
        print_info!(
            "on_scan_response_data_set: advertiser_id = {}, status = {}",
            "on_scan_response_data_set: advertiser_id = {}, status = {:?}",
            advertiser_id,
            status
        );
@@ -496,27 +496,31 @@ impl IAdvertisingSetCallback for AdvertisingSetCallback {
        &self,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
        print_info!(
            "on_advertising_parameters_updated: advertiser_id = {}, tx_power: {}, status = {}",
            "on_advertising_parameters_updated: advertiser_id = {}, tx_power: {}, status = {:?}",
            advertiser_id,
            tx_power,
            status
        );
    }

    fn on_periodic_advertising_parameters_updated(&self, advertiser_id: i32, status: GattStatus) {
    fn on_periodic_advertising_parameters_updated(
        &self,
        advertiser_id: i32,
        status: AdvertisingStatus,
    ) {
        print_info!(
            "on_periodic_advertising_parameters_updated: advertiser_id = {}, status = {}",
            "on_periodic_advertising_parameters_updated: advertiser_id = {}, status = {:?}",
            advertiser_id,
            status
        );
    }

    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: GattStatus) {
    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {
        print_info!(
            "on_periodic_advertising_data_set: advertiser_id = {}, status = {}",
            "on_periodic_advertising_data_set: advertiser_id = {}, status = {:?}",
            advertiser_id,
            status
        );
@@ -526,10 +530,10 @@ impl IAdvertisingSetCallback for AdvertisingSetCallback {
        &self,
        advertiser_id: i32,
        enable: bool,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
        print_info!(
            "on_periodic_advertising_enabled: advertiser_id = {}, enable = {}, status = {}",
            "on_periodic_advertising_enabled: advertiser_id = {}, enable = {}, status = {:?}",
            advertiser_id,
            enable,
            status
+15 −9
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ use bt_topshim::btif::{
    BtBondState, BtConnectionState, BtDeviceType, BtPropertyType, BtSspVariant, BtStatus,
    BtTransport, Uuid, Uuid128Bit,
};
use bt_topshim::profiles::gatt::{GattStatus, LePhy};
use bt_topshim::profiles::gatt::{AdvertisingStatus, GattStatus, LePhy};
use bt_topshim::profiles::socket::SocketType;

use btstack::bluetooth::{
@@ -57,6 +57,7 @@ fn make_object_path(idx: i32, name: &str) -> dbus::Path {
    dbus::Path::new(format!("/org/chromium/bluetooth/hci{}/{}", idx, name)).unwrap()
}

impl_dbus_arg_enum!(AdvertisingStatus);
impl_dbus_arg_enum!(BtBondState);
impl_dbus_arg_enum!(BtConnectionState);
impl_dbus_arg_enum!(BtDeviceType);
@@ -754,7 +755,7 @@ impl IAdvertisingSetCallback for IAdvertisingSetCallbackDBus {
        reg_id: i32,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
    }

@@ -765,35 +766,40 @@ impl IAdvertisingSetCallback for IAdvertisingSetCallbackDBus {
    fn on_advertising_set_stopped(&self, advertiser_id: i32) {}

    #[dbus_method("OnAdvertisingEnabled")]
    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: GattStatus) {}
    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: AdvertisingStatus) {}

    #[dbus_method("OnAdvertisingDataSet")]
    fn on_advertising_data_set(&self, advertiser_id: i32, status: GattStatus) {}
    fn on_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {}

    #[dbus_method("OnScanResponseDataSet")]
    fn on_scan_response_data_set(&self, advertiser_id: i32, status: GattStatus) {}
    fn on_scan_response_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {}

    #[dbus_method("OnAdvertisingParametersUpdated")]
    fn on_advertising_parameters_updated(
        &self,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
    }

    #[dbus_method("OnPeriodicAdvertisingParametersUpdated")]
    fn on_periodic_advertising_parameters_updated(&self, advertiser_id: i32, status: GattStatus) {}
    fn on_periodic_advertising_parameters_updated(
        &self,
        advertiser_id: i32,
        status: AdvertisingStatus,
    ) {
    }

    #[dbus_method("OnPeriodicAdvertisingDataSet")]
    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: GattStatus) {}
    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {}

    #[dbus_method("OnPeriodicAdvertisingEnabled")]
    fn on_periodic_advertising_enabled(
        &self,
        advertiser_id: i32,
        enable: bool,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
    }

+14 −9
Original line number Diff line number Diff line
use bt_topshim::btif::{BtStatus, BtTransport, Uuid, Uuid128Bit};
use bt_topshim::profiles::gatt::{GattStatus, LePhy};
use bt_topshim::profiles::gatt::{AdvertisingStatus, GattStatus, LePhy};

use btstack::bluetooth_adv::{
    AdvertiseData, AdvertisingSetParameters, IAdvertisingSetCallback, ManfId,
@@ -228,6 +228,7 @@ struct ScanResultDBus {
    adv_data: Vec<u8>,
}

impl_dbus_arg_enum!(AdvertisingStatus);
impl_dbus_arg_enum!(GattStatus);
impl_dbus_arg_enum!(GattWriteRequestStatus);
impl_dbus_arg_enum!(GattWriteType);
@@ -339,7 +340,7 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus {
        reg_id: i32,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
        dbus_generated!()
    }
@@ -355,17 +356,17 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus {
    }

    #[dbus_method("OnAdvertisingEnabled")]
    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: GattStatus) {
    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: AdvertisingStatus) {
        dbus_generated!()
    }

    #[dbus_method("OnAdvertisingDataSet")]
    fn on_advertising_data_set(&self, advertiser_id: i32, status: GattStatus) {
    fn on_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {
        dbus_generated!()
    }

    #[dbus_method("OnScanResponseDataSet")]
    fn on_scan_response_data_set(&self, advertiser_id: i32, status: GattStatus) {
    fn on_scan_response_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {
        dbus_generated!()
    }

@@ -374,18 +375,22 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus {
        &self,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
        dbus_generated!()
    }

    #[dbus_method("OnPeriodicAdvertisingParametersUpdated")]
    fn on_periodic_advertising_parameters_updated(&self, advertiser_id: i32, status: GattStatus) {
    fn on_periodic_advertising_parameters_updated(
        &self,
        advertiser_id: i32,
        status: AdvertisingStatus,
    ) {
        dbus_generated!()
    }

    #[dbus_method("OnPeriodicAdvertisingDataSet")]
    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: GattStatus) {
    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus) {
        dbus_generated!()
    }

@@ -394,7 +399,7 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus {
        &self,
        advertiser_id: i32,
        enable: bool,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
        dbus_generated!()
    }
+18 −9
Original line number Diff line number Diff line
//! BLE Advertising types and utilities

use bt_topshim::btif::Uuid;
use bt_topshim::profiles::gatt::{Gatt, GattStatus, LePhy};
use bt_topshim::profiles::gatt::{AdvertisingStatus, Gatt, LePhy};

use itertools::Itertools;
use log::warn;
@@ -95,7 +95,7 @@ pub trait IAdvertisingSetCallback: RPCProxy {
        reg_id: i32,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    );

    /// Callback triggered in response to `get_own_address` indicating result of the operation.
@@ -107,14 +107,14 @@ pub trait IAdvertisingSetCallback: RPCProxy {

    /// Callback triggered in response to `enable_advertising_set` indicating result of
    /// the operation.
    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: GattStatus);
    fn on_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: AdvertisingStatus);

    /// Callback triggered in response to `set_advertising_data` indicating result of the operation.
    fn on_advertising_data_set(&self, advertiser_id: i32, status: GattStatus);
    fn on_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus);

    /// Callback triggered in response to `set_scan_response_data` indicating result of
    /// the operation.
    fn on_scan_response_data_set(&self, advertiser_id: i32, status: GattStatus);
    fn on_scan_response_data_set(&self, advertiser_id: i32, status: AdvertisingStatus);

    /// Callback triggered in response to `set_advertising_parameters` indicating result of
    /// the operation.
@@ -122,20 +122,29 @@ pub trait IAdvertisingSetCallback: RPCProxy {
        &self,
        advertiser_id: i32,
        tx_power: i32,
        status: GattStatus,
        status: AdvertisingStatus,
    );

    /// Callback triggered in response to `set_periodic_advertising_parameters` indicating result of
    /// the operation.
    fn on_periodic_advertising_parameters_updated(&self, advertiser_id: i32, status: GattStatus);
    fn on_periodic_advertising_parameters_updated(
        &self,
        advertiser_id: i32,
        status: AdvertisingStatus,
    );

    /// Callback triggered in response to `set_periodic_advertising_data` indicating result of
    /// the operation.
    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: GattStatus);
    fn on_periodic_advertising_data_set(&self, advertiser_id: i32, status: AdvertisingStatus);

    /// Callback triggered in response to `set_periodic_advertising_enable` indicating result of
    /// the operation.
    fn on_periodic_advertising_enabled(&self, advertiser_id: i32, enable: bool, status: GattStatus);
    fn on_periodic_advertising_enabled(
        &self,
        advertiser_id: i32,
        enable: bool,
        status: AdvertisingStatus,
    );

    /// When advertising module changes its suspend mode due to system suspend/resume.
    fn on_suspend_mode_change(&self, suspend_mode: SuspendMode);
+47 −23
Original line number Diff line number Diff line
@@ -5,11 +5,11 @@ use btif_macros::{btif_callback, btif_callbacks_dispatcher};
use bt_topshim::bindings::root::bluetooth::Uuid;
use bt_topshim::btif::{BluetoothInterface, BtStatus, BtTransport, RawAddress, Uuid128Bit};
use bt_topshim::profiles::gatt::{
    BtGattDbElement, BtGattNotifyParams, BtGattReadParams, Gatt, GattAdvCallbacks,
    GattAdvCallbacksDispatcher, GattAdvInbandCallbacksDispatcher, GattClientCallbacks,
    GattClientCallbacksDispatcher, GattScannerCallbacks, GattScannerCallbacksDispatcher,
    GattScannerInbandCallbacks, GattScannerInbandCallbacksDispatcher,
    GattServerCallbacksDispatcher, GattStatus, LePhy,
    AdvertisingStatus, BtGattDbElement, BtGattNotifyParams, BtGattReadParams, Gatt,
    GattAdvCallbacks, GattAdvCallbacksDispatcher, GattAdvInbandCallbacksDispatcher,
    GattClientCallbacks, GattClientCallbacksDispatcher, GattScannerCallbacks,
    GattScannerCallbacksDispatcher, GattScannerInbandCallbacks,
    GattScannerInbandCallbacksDispatcher, GattServerCallbacksDispatcher, GattStatus, LePhy,
};
use bt_topshim::topstack;
use bt_utils::adv_parser;
@@ -2463,29 +2463,39 @@ pub(crate) trait BtifGattAdvCallbacks {
        reg_id: i32,
        advertiser_id: u8,
        tx_power: i8,
        status: GattStatus,
        status: AdvertisingStatus,
    );

    #[btif_callback(OnAdvertisingEnabled)]
    fn on_advertising_enabled(&mut self, adv_id: u8, enabled: bool, status: GattStatus);
    fn on_advertising_enabled(&mut self, adv_id: u8, enabled: bool, status: AdvertisingStatus);

    #[btif_callback(OnAdvertisingDataSet)]
    fn on_advertising_data_set(&mut self, adv_id: u8, status: GattStatus);
    fn on_advertising_data_set(&mut self, adv_id: u8, status: AdvertisingStatus);

    #[btif_callback(OnScanResponseDataSet)]
    fn on_scan_response_data_set(&mut self, adv_id: u8, status: GattStatus);
    fn on_scan_response_data_set(&mut self, adv_id: u8, status: AdvertisingStatus);

    #[btif_callback(OnAdvertisingParametersUpdated)]
    fn on_advertising_parameters_updated(&mut self, adv_id: u8, tx_power: i8, status: GattStatus);
    fn on_advertising_parameters_updated(
        &mut self,
        adv_id: u8,
        tx_power: i8,
        status: AdvertisingStatus,
    );

    #[btif_callback(OnPeriodicAdvertisingParametersUpdated)]
    fn on_periodic_advertising_parameters_updated(&mut self, adv_id: u8, status: GattStatus);
    fn on_periodic_advertising_parameters_updated(&mut self, adv_id: u8, status: AdvertisingStatus);

    #[btif_callback(OnPeriodicAdvertisingDataSet)]
    fn on_periodic_advertising_data_set(&mut self, adv_id: u8, status: GattStatus);
    fn on_periodic_advertising_data_set(&mut self, adv_id: u8, status: AdvertisingStatus);

    #[btif_callback(OnPeriodicAdvertisingEnabled)]
    fn on_periodic_advertising_enabled(&mut self, adv_id: u8, enabled: bool, status: GattStatus);
    fn on_periodic_advertising_enabled(
        &mut self,
        adv_id: u8,
        enabled: bool,
        status: AdvertisingStatus,
    );

    #[btif_callback(OnOwnAddressRead)]
    fn on_own_address_read(&mut self, adv_id: u8, addr_type: u8, address: RawAddress);
@@ -2497,7 +2507,7 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        reg_id: i32,
        advertiser_id: u8,
        tx_power: i8,
        status: GattStatus,
        status: AdvertisingStatus,
    ) {
        debug!(
            "on_advertising_set_started(): reg_id = {}, advertiser_id = {}, tx_power = {}, status = {:?}",
@@ -2506,7 +2516,7 @@ impl BtifGattAdvCallbacks for BluetoothGatt {

        if let Some(s) = self.advertisers.get_mut_by_reg_id(reg_id) {
            s.set_adv_id(Some(advertiser_id.into()));
            s.set_enabled(status == GattStatus::Success);
            s.set_enabled(status == AdvertisingStatus::Success);
        } else {
            return;
        }
@@ -2516,7 +2526,7 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
            cb.on_advertising_set_started(reg_id, advertiser_id.into(), tx_power.into(), status);
        }

        if status != GattStatus::Success {
        if status != AdvertisingStatus::Success {
            warn!(
                "on_advertising_set_started(): failed! reg_id = {}, status = {:?}",
                reg_id, status
@@ -2525,7 +2535,7 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        }
    }

    fn on_advertising_enabled(&mut self, adv_id: u8, enabled: bool, status: GattStatus) {
    fn on_advertising_enabled(&mut self, adv_id: u8, enabled: bool, status: AdvertisingStatus) {
        debug!(
            "on_advertising_enabled(): adv_id = {}, enabled = {}, status = {:?}",
            adv_id, enabled, status
@@ -2551,7 +2561,7 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        }
    }

    fn on_advertising_data_set(&mut self, adv_id: u8, status: GattStatus) {
    fn on_advertising_data_set(&mut self, adv_id: u8, status: AdvertisingStatus) {
        debug!("on_advertising_data_set(): adv_id = {}, status = {:?}", adv_id, status);

        let advertiser_id: i32 = adv_id.into();
@@ -2565,7 +2575,7 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        }
    }

    fn on_scan_response_data_set(&mut self, adv_id: u8, status: GattStatus) {
    fn on_scan_response_data_set(&mut self, adv_id: u8, status: AdvertisingStatus) {
        debug!("on_scan_response_data_set(): adv_id = {}, status = {:?}", adv_id, status);

        let advertiser_id: i32 = adv_id.into();
@@ -2579,7 +2589,12 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        }
    }

    fn on_advertising_parameters_updated(&mut self, adv_id: u8, tx_power: i8, status: GattStatus) {
    fn on_advertising_parameters_updated(
        &mut self,
        adv_id: u8,
        tx_power: i8,
        status: AdvertisingStatus,
    ) {
        debug!(
            "on_advertising_parameters_updated(): adv_id = {}, tx_power = {}, status = {:?}",
            adv_id, tx_power, status
@@ -2596,7 +2611,11 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        }
    }

    fn on_periodic_advertising_parameters_updated(&mut self, adv_id: u8, status: GattStatus) {
    fn on_periodic_advertising_parameters_updated(
        &mut self,
        adv_id: u8,
        status: AdvertisingStatus,
    ) {
        debug!(
            "on_periodic_advertising_parameters_updated(): adv_id = {}, status = {:?}",
            adv_id, status
@@ -2613,7 +2632,7 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        }
    }

    fn on_periodic_advertising_data_set(&mut self, adv_id: u8, status: GattStatus) {
    fn on_periodic_advertising_data_set(&mut self, adv_id: u8, status: AdvertisingStatus) {
        debug!("on_periodic_advertising_data_set(): adv_id = {}, status = {:?}", adv_id, status);

        let advertiser_id: i32 = adv_id.into();
@@ -2627,7 +2646,12 @@ impl BtifGattAdvCallbacks for BluetoothGatt {
        }
    }

    fn on_periodic_advertising_enabled(&mut self, adv_id: u8, enabled: bool, status: GattStatus) {
    fn on_periodic_advertising_enabled(
        &mut self,
        adv_id: u8,
        enabled: bool,
        status: AdvertisingStatus,
    ) {
        debug!(
            "on_periodic_advertising_enabled(): adv_id = {}, enabled = {}, status = {:?}",
            adv_id, enabled, status
Loading