Loading system/gd/rust/linux/client/src/callbacks.rs +22 −18 Original line number Diff line number Diff line Loading @@ -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, }; Loading Loading @@ -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, Loading @@ -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 Loading Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 Loading system/gd/rust/linux/client/src/dbus_iface.rs +15 −9 Original line number Diff line number Diff line Loading @@ -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::{ Loading Loading @@ -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); Loading Loading @@ -754,7 +755,7 @@ impl IAdvertisingSetCallback for IAdvertisingSetCallbackDBus { reg_id: i32, advertiser_id: i32, tx_power: i32, status: GattStatus, status: AdvertisingStatus, ) { } Loading @@ -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, ) { } Loading system/gd/rust/linux/service/src/iface_bluetooth_gatt.rs +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, Loading Loading @@ -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); Loading Loading @@ -339,7 +340,7 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus { reg_id: i32, advertiser_id: i32, tx_power: i32, status: GattStatus, status: AdvertisingStatus, ) { dbus_generated!() } Loading @@ -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!() } Loading @@ -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!() } Loading @@ -394,7 +399,7 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus { &self, advertiser_id: i32, enable: bool, status: GattStatus, status: AdvertisingStatus, ) { dbus_generated!() } Loading system/gd/rust/linux/stack/src/bluetooth_adv.rs +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; Loading Loading @@ -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. Loading @@ -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. Loading @@ -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); Loading system/gd/rust/linux/stack/src/bluetooth_gatt.rs +47 −23 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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 = {:?}", Loading @@ -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; } Loading @@ -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 Loading @@ -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 Loading @@ -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(); Loading @@ -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(); Loading @@ -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 Loading @@ -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 Loading @@ -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(); Loading @@ -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 Loading
system/gd/rust/linux/client/src/callbacks.rs +22 −18 Original line number Diff line number Diff line Loading @@ -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, }; Loading Loading @@ -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, Loading @@ -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 Loading Loading @@ -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 ); Loading @@ -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 ); Loading @@ -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 Loading
system/gd/rust/linux/client/src/dbus_iface.rs +15 −9 Original line number Diff line number Diff line Loading @@ -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::{ Loading Loading @@ -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); Loading Loading @@ -754,7 +755,7 @@ impl IAdvertisingSetCallback for IAdvertisingSetCallbackDBus { reg_id: i32, advertiser_id: i32, tx_power: i32, status: GattStatus, status: AdvertisingStatus, ) { } Loading @@ -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, ) { } Loading
system/gd/rust/linux/service/src/iface_bluetooth_gatt.rs +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, Loading Loading @@ -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); Loading Loading @@ -339,7 +340,7 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus { reg_id: i32, advertiser_id: i32, tx_power: i32, status: GattStatus, status: AdvertisingStatus, ) { dbus_generated!() } Loading @@ -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!() } Loading @@ -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!() } Loading @@ -394,7 +399,7 @@ impl IAdvertisingSetCallback for AdvertisingSetCallbackDBus { &self, advertiser_id: i32, enable: bool, status: GattStatus, status: AdvertisingStatus, ) { dbus_generated!() } Loading
system/gd/rust/linux/stack/src/bluetooth_adv.rs +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; Loading Loading @@ -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. Loading @@ -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. Loading @@ -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); Loading
system/gd/rust/linux/stack/src/bluetooth_gatt.rs +47 −23 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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 = {:?}", Loading @@ -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; } Loading @@ -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 Loading @@ -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 Loading @@ -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(); Loading @@ -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(); Loading @@ -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 Loading @@ -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 Loading @@ -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(); Loading @@ -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