summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild.py4
-rw-r--r--floss/build/Dockerfile2
-rw-r--r--system/Android.bp2
-rw-r--r--system/gd/rust/common/Cargo.toml2
-rw-r--r--system/gd/rust/facade/Android.bp4
-rw-r--r--system/gd/rust/facade/Cargo.toml4
-rw-r--r--system/gd/rust/facade/helpers/Cargo.toml4
-rw-r--r--system/gd/rust/facade/helpers/lib.rs3
-rw-r--r--system/gd/rust/facade/src/lib.rs2
-rw-r--r--system/gd/rust/facade_proto/Cargo.toml10
-rw-r--r--system/gd/rust/facade_proto/build.rs57
-rw-r--r--system/gd/rust/facade_proto/src/lib.rs2
-rw-r--r--system/gd/rust/shim/Cargo.toml9
-rw-r--r--system/gd/rust/stack/Android.bp4
-rw-r--r--system/gd/rust/stack/Cargo.toml4
-rw-r--r--system/gd/rust/stack/src/hal/facade.rs16
-rw-r--r--system/gd/rust/stack/src/hci/controller_facade.rs27
-rw-r--r--system/gd/rust/stack/src/hci/facade.rs12
-rw-r--r--system/gd/rust/topshim/facade/src/adapter_service.rs14
-rw-r--r--system/gd/rust/topshim/facade/src/hfp_service.rs2
20 files changed, 116 insertions, 68 deletions
diff --git a/build.py b/build.py
index 388ec46a13..5e03c6388c 100755
--- a/build.py
+++ b/build.py
@@ -268,6 +268,10 @@ class HostBuild():
self.custom_env['CXX_ROOT_PATH'] = os.path.join(self.platform_dir, 'bt')
self.custom_env['CROS_SYSTEM_API_ROOT'] = os.path.join(self.platform_dir, 'system_api')
self.custom_env['CXX_OUTDIR'] = self._gn_default_output()
+
+ # On ChromeOS, this is /usr/bin/grpc_rust_plugin
+ # In the container, this is /root/.cargo/bin/grpc_rust_plugin
+ self.custom_env['GRPC_RUST_PLUGIN_PATH'] = shutil.which('grpc_rust_plugin')
self.env.update(self.custom_env)
def print_env(self):
diff --git a/floss/build/Dockerfile b/floss/build/Dockerfile
index 0b4c561651..e0e4824856 100644
--- a/floss/build/Dockerfile
+++ b/floss/build/Dockerfile
@@ -66,7 +66,7 @@ RUN /tmp/rustup.sh -y --default-toolchain 1.68.2
ENV PATH="/root/.cargo/bin:${PATH}"
# Install cargo packages required on build image.
-RUN cargo install --locked cxxbridge-cmd@1.0.94 pdl-compiler@0.1.1
+RUN cargo install --locked cxxbridge-cmd@1.0.94 pdl-compiler@0.1.1 grpcio-compiler@0.13.0
# Rename llvm packages. By default, they are named 11vm-ar-13, etc. which won't
# work properly with the build.
diff --git a/system/Android.bp b/system/Android.bp
index cd272d4651..326e2efad6 100644
--- a/system/Android.bp
+++ b/system/Android.bp
@@ -161,6 +161,7 @@ rust_protobuf {
"com.android.btservices",
],
min_sdk_version: "30",
+ use_protobuf3: true,
}
rust_protobuf {
@@ -169,6 +170,7 @@ rust_protobuf {
source_stem: "topshim_facade",
host_supported: true,
grpc_protos: ["blueberry/facade/topshim/facade.proto"],
+ use_protobuf3: true,
}
genrule {
diff --git a/system/gd/rust/common/Cargo.toml b/system/gd/rust/common/Cargo.toml
index eb59377947..410f11e2ce 100644
--- a/system/gd/rust/common/Cargo.toml
+++ b/system/gd/rust/common/Cargo.toml
@@ -22,7 +22,7 @@ edition = "2018"
cxx = "1.0"
env_logger = "0.8"
futures = "0.3.13"
-grpcio = "0.9"
+grpcio = { version = "0.13.0", default-features = false, features = ["protobufv3-codec", "openssl"] }
lazy_static = "1.4"
log = "0.4"
nix = { version = "0.27.1", features = ["time", "user"] }
diff --git a/system/gd/rust/facade/Android.bp b/system/gd/rust/facade/Android.bp
index 2261e594d4..f416c5c9df 100644
--- a/system/gd/rust/facade/Android.bp
+++ b/system/gd/rust/facade/Android.bp
@@ -20,7 +20,7 @@ rust_library {
"libgddi",
"libgrpcio",
"liblog_rust",
- "libprotobuf_deprecated",
+ "libprotobuf",
"libtokio",
],
}
@@ -75,7 +75,7 @@ rust_library {
"libfutures",
"libgrpcio",
"liblog_rust",
- "libprotobuf_deprecated",
+ "libprotobuf",
"libtokio",
],
min_sdk_version: "30",
diff --git a/system/gd/rust/facade/Cargo.toml b/system/gd/rust/facade/Cargo.toml
index 9055002293..d806e12f0e 100644
--- a/system/gd/rust/facade/Cargo.toml
+++ b/system/gd/rust/facade/Cargo.toml
@@ -27,9 +27,9 @@ bt_packets = { path = "../packets" }
bytes = "1.0"
cxx = "1.0"
futures = "0.3"
-grpcio = "0.9"
+grpcio = { version = "0.13.0", default-features = false, features = ["protobufv3-codec", "openssl"] }
log = "0.4"
-protobuf = "2.0"
+protobuf = "3.2"
tokio = "1.0"
# Binary-only deps
diff --git a/system/gd/rust/facade/helpers/Cargo.toml b/system/gd/rust/facade/helpers/Cargo.toml
index 6d0de0562c..bd66f59956 100644
--- a/system/gd/rust/facade/helpers/Cargo.toml
+++ b/system/gd/rust/facade/helpers/Cargo.toml
@@ -26,9 +26,9 @@ bt_facade_proto = { path = "../../facade_proto" }
bytes = "1.0"
cxx = "1.0"
futures = "0.3"
-grpcio = "0.9"
+grpcio = { version = "0.13.0", default-features = false, features = ["protobufv3-codec", "openssl"] }
log = "0.4"
-protobuf = "2.0"
+protobuf = "3.2"
tokio = "1.0"
[lib]
diff --git a/system/gd/rust/facade/helpers/lib.rs b/system/gd/rust/facade/helpers/lib.rs
index f2b6838428..ea18c5218a 100644
--- a/system/gd/rust/facade/helpers/lib.rs
+++ b/system/gd/rust/facade/helpers/lib.rs
@@ -41,8 +41,7 @@ impl<T: 'static + Into<Vec<u8>> + Into<Bytes> + Send> RxAdapter<T> {
let clone_rx = self.rx.clone();
ctx.spawn(async move {
while let Some(payload) = clone_rx.lock().await.recv().await {
- let mut data = Data::default();
- data.set_payload(payload.into());
+ let data = Data { payload: payload.into(), ..Default::default() };
if let Err(e) = sink.send((data, WriteFlags::default())).await {
log::error!("failure sending data: {:?}", e);
}
diff --git a/system/gd/rust/facade/src/lib.rs b/system/gd/rust/facade/src/lib.rs
index 446cb94f8b..db5d15abbb 100644
--- a/system/gd/rust/facade/src/lib.rs
+++ b/system/gd/rust/facade/src/lib.rs
@@ -76,7 +76,7 @@ struct FacadeServer {
impl FacadeServer {
async fn start(stack: Stack, req: StartStackRequest, grpc_port: u16) -> Self {
let mut services = Vec::new();
- match req.get_module_under_test() {
+ match req.module_under_test.unwrap() {
BluetoothModule::HAL => {
services.push(stack.get_grpc::<HciHalFacadeService>().await);
}
diff --git a/system/gd/rust/facade_proto/Cargo.toml b/system/gd/rust/facade_proto/Cargo.toml
index bac110f393..f43206af1d 100644
--- a/system/gd/rust/facade_proto/Cargo.toml
+++ b/system/gd/rust/facade_proto/Cargo.toml
@@ -21,13 +21,13 @@ build = "build.rs"
[dependencies]
futures = "0.3"
-grpcio = "0.9"
-protobuf = "2.0"
+grpcio = { version = "0.13.0", default-features = false, features = ["protobufv3-codec", "openssl"] }
+protobuf = "3.2"
[build-dependencies]
-protoc-rust = "2.0"
-protoc-grpcio = "2.0"
-protobuf-codegen = "2.0"
+anyhow = "1"
+grpcio-compiler = "0.13"
+protobuf-codegen = "3.2"
[lib]
crate-types = ["rlib"]
diff --git a/system/gd/rust/facade_proto/build.rs b/system/gd/rust/facade_proto/build.rs
index 87b9fe6d63..eeac4af560 100644
--- a/system/gd/rust/facade_proto/build.rs
+++ b/system/gd/rust/facade_proto/build.rs
@@ -17,6 +17,10 @@ use std::env;
use std::fs;
use std::io::Write;
use std::path::{Path, PathBuf};
+use std::process;
+use std::process::Command;
+
+extern crate grpcio_compiler;
fn paths_to_strs<P: AsRef<Path>>(paths: &[P]) -> Vec<&str> {
paths.iter().map(|p| p.as_ref().as_os_str().to_str().unwrap()).collect()
@@ -38,6 +42,20 @@ fn gen_mod_rs<P: AsRef<Path>>(out_dir: PathBuf, inputs: &[P], grpc: bool) {
}
}
+fn exec(c: &mut Command) {
+ match c.status() {
+ Err(e) => {
+ eprintln!("failed to execute {:?}: {}", c, e);
+ process::exit(-1);
+ }
+ Ok(s) => {
+ if !s.success() {
+ process::exit(s.code().unwrap_or(-1));
+ }
+ }
+ }
+}
+
fn main() {
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
let proto_out_dir = out_dir.join("proto_out");
@@ -70,13 +88,14 @@ fn main() {
let proto_input_files = [facade_dir.join("common.proto")];
let proto_include_dirs = [facade_dir.clone()];
- protoc_rust::Codegen::new()
+ protobuf_codegen::Codegen::new()
+ .protoc()
.out_dir(proto_out_dir.as_os_str().to_str().unwrap())
.inputs(&paths_to_strs(&proto_input_files))
.includes(&paths_to_strs(&proto_include_dirs))
.customize(Default::default())
.run()
- .expect("protoc");
+ .expect("Common protos failed to generate");
//
// Generate grpc output
@@ -90,13 +109,33 @@ fn main() {
let grpc_proto_include_dirs =
[facade_dir.join("hci"), facade_dir.join("hal"), facade_dir, proto_root];
- protoc_grpcio::compile_grpc_protos(
- &grpc_proto_input_files,
- &grpc_proto_include_dirs,
- &grpc_out_dir,
- None,
- )
- .expect("Failed to compile gRPC definitions");
+ // Generate protobuf files first
+ protobuf_codegen::Codegen::new()
+ .protoc()
+ .out_dir(&grpc_out_dir.as_os_str().to_str().unwrap())
+ .inputs(&paths_to_strs(&grpc_proto_input_files))
+ .includes(&paths_to_strs(&grpc_proto_include_dirs))
+ .customize(Default::default())
+ .run()
+ .expect("Facade protos failed to generate");
+
+ // Invoke protoc directly to generate grpcio.
+ let mut c = Command::new("protoc");
+ // Include dirs
+ for inc in &grpc_proto_include_dirs {
+ c.arg(format!("-I{}", &inc.as_os_str().to_str().unwrap()));
+ }
+ // Output dir
+ c.arg(format!("--grpc_out={}", &grpc_out_dir.as_os_str().to_str().unwrap()));
+ // Plugin location
+ let grpc_rust_plugin_path = std::env::var_os("GRPC_RUST_PLUGIN_PATH").unwrap();
+ c.arg(format!("--plugin=protoc-gen-grpc={}", grpc_rust_plugin_path.into_string().unwrap()));
+ // Input files
+ for input in &grpc_proto_input_files {
+ c.arg(input);
+ }
+
+ exec(&mut c);
gen_mod_rs(proto_out_dir, &proto_input_files, false);
gen_mod_rs(grpc_out_dir, &grpc_proto_input_files, true);
diff --git a/system/gd/rust/facade_proto/src/lib.rs b/system/gd/rust/facade_proto/src/lib.rs
index 56f7f70775..c6acbb2b16 100644
--- a/system/gd/rust/facade_proto/src/lib.rs
+++ b/system/gd/rust/facade_proto/src/lib.rs
@@ -21,5 +21,5 @@ include!(concat!(env!("OUT_DIR"), "/grpc_out/mod.rs"));
// empty.proto is missing so add a workaround
// See github.com/stepancheg/grpc-rust/issues/156
pub mod empty {
- pub use protobuf::well_known_types::Empty;
+ pub use protobuf::well_known_types::empty::Empty;
}
diff --git a/system/gd/rust/shim/Cargo.toml b/system/gd/rust/shim/Cargo.toml
index 01d508907b..00cee221a7 100644
--- a/system/gd/rust/shim/Cargo.toml
+++ b/system/gd/rust/shim/Cargo.toml
@@ -31,8 +31,8 @@ bytes = "1.0"
cxx = { version = "1.0.42", features = ["c++17"] }
env_logger = "0.8"
futures = "0.3"
-grpcio = { version = "0.9", features = ["protobuf", "protobuf-codec", "openssl"] }
-grpcio-sys = { version = "0.9", features = ["openssl"] }
+grpcio = { version = "0.13.0", default-features = false, features = ["protobufv3-codec", "openssl"] }
+grpcio-sys = { version = "0.13.0", features = ["openssl"] }
lazy_static = "1.4"
log = "0.4"
nix = "0.23"
@@ -41,9 +41,8 @@ num-traits = "0.2"
pdl-runtime = "0.2.2"
paste = "1.0"
proc-macro2 = "1.0.24"
-protobuf = "2.0"
-protoc-grpcio = "2.0"
-protoc-rust = "2.0"
+protobuf = "3.2"
+protoc-grpcio = "3.0"
quote = "1.0.8"
thiserror = "1.0"
syn = { version = "2.0.1", features = ['default', 'full'] }
diff --git a/system/gd/rust/stack/Android.bp b/system/gd/rust/stack/Android.bp
index 2d7cbcd799..1981cbb3ad 100644
--- a/system/gd/rust/stack/Android.bp
+++ b/system/gd/rust/stack/Android.bp
@@ -28,7 +28,7 @@ rust_library {
"liblog_rust",
"libnum_traits",
"libpdl_runtime",
- "libprotobuf_deprecated",
+ "libprotobuf",
"libthiserror",
"libtokio",
"libtokio_stream",
@@ -74,7 +74,7 @@ rust_test_host {
"liblog_rust",
"libnum_traits",
"libpdl_runtime",
- "libprotobuf_deprecated",
+ "libprotobuf",
"libthiserror",
"libtokio",
"libtokio_stream",
diff --git a/system/gd/rust/stack/Cargo.toml b/system/gd/rust/stack/Cargo.toml
index 13c3c3209b..d1dda70589 100644
--- a/system/gd/rust/stack/Cargo.toml
+++ b/system/gd/rust/stack/Cargo.toml
@@ -30,13 +30,13 @@ gddi = { path = "../gddi" }
bytes = "1.0"
cxx = "1.0"
futures = "0.3"
-grpcio = "0.9"
+grpcio = { version = "0.13.0", default-features = false, features = ["protobufv3-codec", "openssl"] }
lazy_static = "1.4"
log = "0.4"
nix = "0.23"
num-traits = "0.2"
pdl-runtime = "0.2.2"
-protobuf = "2.0"
+protobuf = "3.2"
thiserror = "1.0"
tokio = "1.0"
tokio-stream = "0.1"
diff --git a/system/gd/rust/stack/src/hal/facade.rs b/system/gd/rust/stack/src/hal/facade.rs
index 9727a40461..ae6baaf84c 100644
--- a/system/gd/rust/stack/src/hal/facade.rs
+++ b/system/gd/rust/stack/src/hal/facade.rs
@@ -56,34 +56,34 @@ impl GrpcFacade for HciHalFacadeService {
}
impl HciHalFacade for HciHalFacadeService {
- fn send_command(&mut self, ctx: RpcContext<'_>, mut data: Data, sink: UnarySink<Empty>) {
+ fn send_command(&mut self, ctx: RpcContext<'_>, data: Data, sink: UnarySink<Empty>) {
let cmd_tx = self.control.tx.clone();
ctx.spawn(async move {
- cmd_tx.send(Command::parse(&data.take_payload()).unwrap()).await.unwrap();
+ cmd_tx.send(Command::parse(&data.payload).unwrap()).await.unwrap();
sink.success(Empty::default()).await.unwrap();
});
}
- fn send_acl(&mut self, ctx: RpcContext<'_>, mut data: Data, sink: UnarySink<Empty>) {
+ fn send_acl(&mut self, ctx: RpcContext<'_>, data: Data, sink: UnarySink<Empty>) {
let acl_tx = self.acl.tx.clone();
ctx.spawn(async move {
- acl_tx.send(Acl::parse(&data.take_payload()).unwrap()).await.unwrap();
+ acl_tx.send(Acl::parse(&data.payload).unwrap()).await.unwrap();
sink.success(Empty::default()).await.unwrap();
});
}
- fn send_sco(&mut self, ctx: RpcContext<'_>, mut data: Data, sink: UnarySink<Empty>) {
+ fn send_sco(&mut self, ctx: RpcContext<'_>, data: Data, sink: UnarySink<Empty>) {
let sco_tx = self.sco.tx.clone();
ctx.spawn(async move {
- sco_tx.send(Sco::parse(&data.take_payload()).unwrap()).await.unwrap();
+ sco_tx.send(Sco::parse(&data.payload).unwrap()).await.unwrap();
sink.success(Empty::default()).await.unwrap();
});
}
- fn send_iso(&mut self, ctx: RpcContext<'_>, mut data: Data, sink: UnarySink<Empty>) {
+ fn send_iso(&mut self, ctx: RpcContext<'_>, data: Data, sink: UnarySink<Empty>) {
let iso_tx = self.iso.tx.clone();
ctx.spawn(async move {
- iso_tx.send(Iso::parse(&data.take_payload()).unwrap()).await.unwrap();
+ iso_tx.send(Iso::parse(&data.payload).unwrap()).await.unwrap();
sink.success(Empty::default()).await.unwrap();
});
}
diff --git a/system/gd/rust/stack/src/hci/controller_facade.rs b/system/gd/rust/stack/src/hci/controller_facade.rs
index dbcadcaaa6..cd1bd21961 100644
--- a/system/gd/rust/stack/src/hci/controller_facade.rs
+++ b/system/gd/rust/stack/src/hci/controller_facade.rs
@@ -50,7 +50,7 @@ impl ControllerFacade for ControllerFacadeService {
ctx.spawn(async move {
let mut address = BluetoothAddress::new();
let address_bytes: [u8; 6] = clone.exports.address.into();
- address.set_address(address_bytes.to_vec());
+ address.address = address_bytes.to_vec();
sink.success(address).await.unwrap();
});
}
@@ -58,7 +58,7 @@ impl ControllerFacade for ControllerFacadeService {
fn write_local_name(&mut self, ctx: RpcContext<'_>, req: NameMsg, sink: UnarySink<Empty>) {
let mut clone = self.clone();
let mut builder = WriteLocalNameBuilder { local_name: [0; 248] };
- builder.local_name[0..req.get_name().len()].copy_from_slice(req.get_name());
+ builder.local_name[0..req.name.len()].copy_from_slice(&req.name);
ctx.spawn(async move {
clone.hci.commands.send(builder.build()).await;
sink.success(Empty::default()).await.unwrap();
@@ -72,8 +72,7 @@ impl ControllerFacade for ControllerFacadeService {
clone.hci.commands.send(ReadLocalNameBuilder {}).await.get_local_name(),
)
.into_bytes();
- let mut msg = NameMsg::new();
- msg.set_name(local_name);
+ let msg = NameMsg { name: local_name, ..NameMsg::default() };
sink.success(msg).await.unwrap();
});
}
@@ -85,10 +84,12 @@ impl ControllerFacade for ControllerFacadeService {
sink: UnarySink<SupportedMsg>,
) {
let clone = self.clone();
- let opcode = OpCode::try_from(u16::try_from(op_code_msg.get_op_code()).unwrap()).unwrap();
+ let opcode = OpCode::try_from(u16::try_from(op_code_msg.op_code).unwrap()).unwrap();
ctx.spawn(async move {
- let mut supported_msg = SupportedMsg::new();
- supported_msg.set_supported(clone.exports.commands.is_supported(opcode));
+ let supported_msg = SupportedMsg {
+ supported: clone.exports.commands.is_supported(opcode),
+ ..SupportedMsg::default()
+ };
sink.success(supported_msg).await.unwrap();
});
}
@@ -101,8 +102,10 @@ impl ControllerFacade for ControllerFacadeService {
) {
let clone = self.clone();
ctx.spawn(async move {
- let mut msg = SingleValueMsg::new();
- msg.set_value(clone.exports.le_supported_advertising_sets.into());
+ let msg = SingleValueMsg {
+ value: clone.exports.le_supported_advertising_sets.into(),
+ ..SingleValueMsg::default()
+ };
sink.success(msg).await.unwrap();
});
}
@@ -343,8 +346,10 @@ impl ControllerFacade for ControllerFacadeService {
) {
let clone = self.clone();
ctx.spawn(async move {
- let mut supported_msg = SupportedMsg::new();
- supported_msg.set_supported(clone.exports.le_features.extended_advertising);
+ let supported_msg = SupportedMsg {
+ supported: clone.exports.le_features.extended_advertising,
+ ..SupportedMsg::default()
+ };
sink.success(supported_msg).await.unwrap();
});
}
diff --git a/system/gd/rust/stack/src/hci/facade.rs b/system/gd/rust/stack/src/hci/facade.rs
index b2b2d6f72b..95128ec757 100644
--- a/system/gd/rust/stack/src/hci/facade.rs
+++ b/system/gd/rust/stack/src/hci/facade.rs
@@ -94,8 +94,8 @@ impl GrpcFacade for HciFacadeService {
}
impl HciFacade for HciFacadeService {
- fn send_command(&mut self, ctx: RpcContext<'_>, mut data: Data, sink: UnarySink<Empty>) {
- let packet = Command::parse(&data.take_payload()).unwrap();
+ fn send_command(&mut self, ctx: RpcContext<'_>, data: Data, sink: UnarySink<Empty>) {
+ let packet = Command::parse(&data.payload).unwrap();
let mut commands = self.commands.clone();
let evt_tx = self.evt_tx.clone();
ctx.spawn(async move {
@@ -108,7 +108,7 @@ impl HciFacade for HciFacadeService {
fn request_event(&mut self, ctx: RpcContext<'_>, req: EventRequest, sink: UnarySink<Empty>) {
let mut clone = self.clone();
ctx.spawn(async move {
- clone.register_event(req.get_code()).await;
+ clone.register_event(req.code).await;
sink.success(Empty::default()).await.unwrap();
});
}
@@ -121,15 +121,15 @@ impl HciFacade for HciFacadeService {
) {
let mut clone = self.clone();
ctx.spawn(async move {
- clone.register_le_event(req.get_code()).await;
+ clone.register_le_event(req.code).await;
sink.success(Empty::default()).await.unwrap();
});
}
- fn send_acl(&mut self, ctx: RpcContext<'_>, mut packet: Data, sink: UnarySink<Empty>) {
+ fn send_acl(&mut self, ctx: RpcContext<'_>, packet: Data, sink: UnarySink<Empty>) {
let acl_tx = self.acl_tx.clone();
ctx.spawn(async move {
- acl_tx.send(Acl::parse(&packet.take_payload()).unwrap()).await.unwrap();
+ acl_tx.send(Acl::parse(&packet.payload).unwrap()).await.unwrap();
sink.success(Empty::default()).await.unwrap();
});
}
diff --git a/system/gd/rust/topshim/facade/src/adapter_service.rs b/system/gd/rust/topshim/facade/src/adapter_service.rs
index 94a29a2946..d9aed8dcda 100644
--- a/system/gd/rust/topshim/facade/src/adapter_service.rs
+++ b/system/gd/rust/topshim/facade/src/adapter_service.rs
@@ -118,7 +118,7 @@ impl AdapterService for AdapterServiceImpl {
match event {
BaseCallbacks::AdapterState(_state) => {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::ADAPTER_STATE;
+ rsp.event_type = EventType::ADAPTER_STATE.into();
rsp.params.insert(
String::from("state"),
event_data_from_string(String::from("ON")),
@@ -128,7 +128,7 @@ impl AdapterService for AdapterServiceImpl {
BaseCallbacks::SspRequest(_, _, _, _, _) => {}
BaseCallbacks::LeRandCallback(random) => {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::LE_RAND;
+ rsp.event_type = EventType::LE_RAND.into();
rsp.params.insert(
String::from("data"),
event_data_from_string(random.to_string()),
@@ -137,7 +137,7 @@ impl AdapterService for AdapterServiceImpl {
}
BaseCallbacks::GenerateLocalOobData(transport, data) => {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::GENERATE_LOCAL_OOB_DATA;
+ rsp.event_type = EventType::GENERATE_LOCAL_OOB_DATA.into();
rsp.params.insert(
String::from("is_valid"),
event_data_from_string(String::from(if data.is_valid {
@@ -166,7 +166,7 @@ impl AdapterService for AdapterServiceImpl {
}
BaseCallbacks::AdapterProperties(status, _, properties) => {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::ADAPTER_PROPERTY;
+ rsp.event_type = EventType::ADAPTER_PROPERTY.into();
rsp.params.insert(
String::from("status"),
event_data_from_string(format!("{:?}", status)),
@@ -182,7 +182,7 @@ impl AdapterService for AdapterServiceImpl {
}
BaseCallbacks::DiscoveryState(state) => {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::DISCOVERY_STATE;
+ rsp.event_type = EventType::DISCOVERY_STATE.into();
rsp.params.insert(
String::from("discovery_state"),
event_data_from_string(format!("{:?}", state)),
@@ -191,7 +191,7 @@ impl AdapterService for AdapterServiceImpl {
}
BaseCallbacks::DeviceFound(_, properties) => {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::DEVICE_FOUND;
+ rsp.event_type = EventType::DEVICE_FOUND.into();
for property in properties.clone() {
let (key, event_data) = bluetooth_property_to_event_data(property);
if key == "skip" {
@@ -203,7 +203,7 @@ impl AdapterService for AdapterServiceImpl {
}
BaseCallbacks::BondState(_, address, state, _) => {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::BOND_STATE;
+ rsp.event_type = EventType::BOND_STATE.into();
rsp.params.insert(
String::from("bond_state"),
event_data_from_string(format!("{:?}", state)),
diff --git a/system/gd/rust/topshim/facade/src/hfp_service.rs b/system/gd/rust/topshim/facade/src/hfp_service.rs
index 7e6e122f5c..4f08a44c50 100644
--- a/system/gd/rust/topshim/facade/src/hfp_service.rs
+++ b/system/gd/rust/topshim/facade/src/hfp_service.rs
@@ -202,7 +202,7 @@ impl HfpService for HfpServiceImpl {
while let Some(event) = rx.recv().await {
if let HfpCallbacks::ConnectionState(state, address) = event {
let mut rsp = FetchEventsResponse::new();
- rsp.event_type = EventType::HFP_CONNECTION_STATE;
+ rsp.event_type = EventType::HFP_CONNECTION_STATE.into();
rsp.data = format!("{:?}, {}", state, address.to_string());
sink.send((rsp, WriteFlags::default())).await.unwrap();
}