diff --git a/minidisc-rs/src/netmd/base.rs b/minidisc-rs/src/netmd/base.rs index e9dc489..a1acc16 100644 --- a/minidisc-rs/src/netmd/base.rs +++ b/minidisc-rs/src/netmd/base.rs @@ -161,7 +161,7 @@ impl NetMD { .await { Ok(size) => size, - Err(error) => return Err(error), + Err(error) => return Err(error.into()), }; let length_bytes = u16::from_le_bytes([poll_result[2], poll_result[3]]); @@ -215,7 +215,7 @@ impl NetMD { .await { Ok(_) => Ok(()), - Err(error) => Err(error), + Err(error) => Err(error.into()), } } @@ -323,6 +323,6 @@ impl NetMD { } pub async fn write_bulk(&mut self, data: &[u8]) -> Result> { - self.usb_interface.bulk_out(BULK_WRITE_ENDPOINT, data).await + Ok(self.usb_interface.bulk_out(BULK_WRITE_ENDPOINT, data).await?) } } diff --git a/src/main.rs b/src/main.rs index 77c4ad5..512bfac 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,16 @@ use minidisc_rs::netmd::interface; use cross_usb::usb::Device; +use cross_usb::device_filter; #[tokio::main] async fn main() { - let device = cross_usb::get_device(0x054c, 0x0186).await.unwrap(); + // Can find devices this way + let filter = vec![ + device_filter!{vendor_id:0x054c,product_id:0x0186}, // MZ-NH600 + device_filter!{vendor_id:0x054c,product_id:0x00c9}, // MZ-NF610 + ]; + + let device = cross_usb::get_device_filter(filter).await.expect("No device found matching critera"); dbg!(device.vendor_id().await);