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

Commit 0d69e05d authored by Yun-Hao Chung's avatar Yun-Hao Chung Committed by Yun-hao Chung
Browse files

Floss: Add remote device modalias in btclient

This adds information of remote modalias to align with what we have in
BlueZ

Bug: 358274535
Bug: 358019778
Tag: #floss
Test: mmm packages/modules/Bluetooth
Test: btclient device info {MAC_ADDR}
Flag: EXEMPT, Floss-only changes
Change-Id: Idc88e2c265fb0f69de0aeaace8cc3e06b28c7032
parent 535a6b8f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -886,6 +886,7 @@ impl CommandHandler {
                    addr_type,
                    class,
                    appearance,
                    modalias,
                    bonded,
                    connection_state,
                    uuids,
@@ -901,6 +902,8 @@ impl CommandHandler {
                    let alias = adapter.get_remote_alias(device.clone());
                    let class = adapter.get_remote_class(device.clone());
                    let appearance = adapter.get_remote_appearance(device.clone());
                    let modalias =
                        adapter.get_remote_vendor_product_info(device.clone()).to_string();
                    let bonded = adapter.get_bond_state(device.clone());
                    let connection_state = match adapter.get_connection_state(device.clone()) {
                        BtConnectionState::NotConnected => "Not Connected",
@@ -918,6 +921,7 @@ impl CommandHandler {
                        addr_type,
                        class,
                        appearance,
                        modalias,
                        bonded,
                        connection_state,
                        uuids,
@@ -933,6 +937,7 @@ impl CommandHandler {
                print_info!("Address Type: {:?}", addr_type);
                print_info!("Class: {}", class);
                print_info!("Appearance: {}", appearance);
                print_info!("Modalias: {}", modalias);
                print_info!("Wake Allowed: {}", wake_allowed);
                print_info!("Bond State: {:?}", bonded);
                print_info!("Connection State: {}", connection_state);
+16 −0
Original line number Diff line number Diff line
@@ -428,6 +428,22 @@ pub type BtPinCode = bindings::bt_pin_code_t;
pub type BtRemoteVersion = bindings::bt_remote_version_t;
pub type BtVendorProductInfo = bindings::bt_vendor_product_info_t;

impl ToString for BtVendorProductInfo {
    fn to_string(&self) -> String {
        format!(
            "{}:v{:04X}p{:04X}d{:04X}",
            match self.vendor_id_src {
                1 => "bluetooth",
                2 => "usb",
                default => "unknown",
            },
            self.vendor_id,
            self.product_id,
            self.version
        )
    }
}

impl TryFrom<Uuid> for Vec<u8> {
    type Error = &'static str;