diff --git a/minidisc-rs/src/netmd/interface.rs b/minidisc-rs/src/netmd/interface.rs index 50624bb..dc3b3d5 100644 --- a/minidisc-rs/src/netmd/interface.rs +++ b/minidisc-rs/src/netmd/interface.rs @@ -182,9 +182,9 @@ impl NetMDInterface { const MAX_INTERIM_READ_ATTEMPTS: u8 = 4; const INTERIM_RESPONSE_RETRY_INTERVAL: u32 = 100; - pub fn new(device: rusb::DeviceHandle, descriptor: rusb::DeviceDescriptor) -> Self { + pub fn new(device: rusb::DeviceHandle, descriptor: rusb::DeviceDescriptor) -> Result> { let net_md_device = base::NetMD::new(device, descriptor).unwrap(); - NetMDInterface { net_md_device } + Ok(NetMDInterface { net_md_device }) } fn construct_multibyte(&self, buffer: &Vec, n: u8, offset: &mut usize) -> u32 { diff --git a/src/main.rs b/src/main.rs index 13fe714..bb295a4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,7 +19,10 @@ fn main() { new_device.read_product_string_ascii(&device_desc) ); - let player_controller = netmd::interface::NetMDInterface::new(new_device, device_desc); + let player_controller = match netmd::interface::NetMDInterface::new(new_device, device_desc) { + Ok(player) => player, + Err(_) => continue + }; println!( "Player Model: {}",