Loading system/gd/rust/stack/src/hci/controller_facade.rs +28 −11 Original line number Diff line number Diff line Loading @@ -7,9 +7,10 @@ use bt_facade_proto::common::BluetoothAddress; use bt_facade_proto::controller_facade::{NameMsg, OpCodeMsg, SingleValueMsg, SupportedMsg}; use bt_facade_proto::controller_facade_grpc::{create_controller_facade, ControllerFacade}; use bt_facade_proto::empty::Empty; use bt_packets::hci::{ReadLocalNameBuilder, WriteLocalNameBuilder}; use bt_packets::hci::{OpCode, ReadLocalNameBuilder, WriteLocalNameBuilder}; use gddi::{module, provides, Stoppable}; use grpcio::*; use num_traits::FromPrimitive; use std::sync::Arc; module! { Loading Loading @@ -78,20 +79,31 @@ impl ControllerFacade for ControllerFacadeService { fn is_supported_command( &mut self, _: RpcContext<'_>, _: OpCodeMsg, _: UnarySink<SupportedMsg>, ctx: RpcContext<'_>, op_code_msg: OpCodeMsg, sink: UnarySink<SupportedMsg>, ) { todo!() let clone = self.clone(); let opcode = OpCode::from_u32(op_code_msg.get_op_code()).unwrap(); ctx.spawn(async move { let mut supported_msg = SupportedMsg::new(); supported_msg.set_supported(clone.exports.commands.is_supported(opcode)); sink.success(supported_msg).await.unwrap(); }); } fn get_le_number_of_supported_advertising_sets( &mut self, _: RpcContext<'_>, ctx: RpcContext<'_>, _: Empty, _: UnarySink<SingleValueMsg>, sink: UnarySink<SingleValueMsg>, ) { todo!() let clone = self.clone(); ctx.spawn(async move { let mut msg = SingleValueMsg::new(); msg.set_value(clone.exports.le_supported_advertising_sets.into()); sink.success(msg).await.unwrap(); }); } fn supports_simple_pairing(&mut self, _: RpcContext<'_>, _: Empty, _: UnarySink<SupportedMsg>) { Loading Loading @@ -324,11 +336,16 @@ impl ControllerFacade for ControllerFacadeService { } fn supports_ble_extended_advertising( &mut self, _: RpcContext<'_>, ctx: RpcContext<'_>, _: Empty, _: UnarySink<SupportedMsg>, sink: UnarySink<SupportedMsg>, ) { todo!() let clone = self.clone(); ctx.spawn(async move { let mut supported_msg = SupportedMsg::new(); supported_msg.set_supported(clone.exports.le_features.extended_advertising); sink.success(supported_msg).await.unwrap(); }); } fn supports_ble_periodic_advertising( &mut self, Loading Loading
system/gd/rust/stack/src/hci/controller_facade.rs +28 −11 Original line number Diff line number Diff line Loading @@ -7,9 +7,10 @@ use bt_facade_proto::common::BluetoothAddress; use bt_facade_proto::controller_facade::{NameMsg, OpCodeMsg, SingleValueMsg, SupportedMsg}; use bt_facade_proto::controller_facade_grpc::{create_controller_facade, ControllerFacade}; use bt_facade_proto::empty::Empty; use bt_packets::hci::{ReadLocalNameBuilder, WriteLocalNameBuilder}; use bt_packets::hci::{OpCode, ReadLocalNameBuilder, WriteLocalNameBuilder}; use gddi::{module, provides, Stoppable}; use grpcio::*; use num_traits::FromPrimitive; use std::sync::Arc; module! { Loading Loading @@ -78,20 +79,31 @@ impl ControllerFacade for ControllerFacadeService { fn is_supported_command( &mut self, _: RpcContext<'_>, _: OpCodeMsg, _: UnarySink<SupportedMsg>, ctx: RpcContext<'_>, op_code_msg: OpCodeMsg, sink: UnarySink<SupportedMsg>, ) { todo!() let clone = self.clone(); let opcode = OpCode::from_u32(op_code_msg.get_op_code()).unwrap(); ctx.spawn(async move { let mut supported_msg = SupportedMsg::new(); supported_msg.set_supported(clone.exports.commands.is_supported(opcode)); sink.success(supported_msg).await.unwrap(); }); } fn get_le_number_of_supported_advertising_sets( &mut self, _: RpcContext<'_>, ctx: RpcContext<'_>, _: Empty, _: UnarySink<SingleValueMsg>, sink: UnarySink<SingleValueMsg>, ) { todo!() let clone = self.clone(); ctx.spawn(async move { let mut msg = SingleValueMsg::new(); msg.set_value(clone.exports.le_supported_advertising_sets.into()); sink.success(msg).await.unwrap(); }); } fn supports_simple_pairing(&mut self, _: RpcContext<'_>, _: Empty, _: UnarySink<SupportedMsg>) { Loading Loading @@ -324,11 +336,16 @@ impl ControllerFacade for ControllerFacadeService { } fn supports_ble_extended_advertising( &mut self, _: RpcContext<'_>, ctx: RpcContext<'_>, _: Empty, _: UnarySink<SupportedMsg>, sink: UnarySink<SupportedMsg>, ) { todo!() let clone = self.clone(); ctx.spawn(async move { let mut supported_msg = SupportedMsg::new(); supported_msg.set_supported(clone.exports.le_features.extended_advertising); sink.success(supported_msg).await.unwrap(); }); } fn supports_ble_periodic_advertising( &mut self, Loading