From d1fe53b99a44d9ffa4f1b21b13e8a686c30ceff8 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 30 Jul 2018 21:49:15 +0300 Subject: Duplicate all teh codez --- src/lib.rs | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index f1537e2..305ecbd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,6 +4,7 @@ mod devices; use std::time::Duration; use libusb::{Direction, RequestType, Recipient}; +use devices::*; // const BLOCK_DEMODB: u16 = 0; const BLOCK_USBB: u16 = 1; @@ -25,13 +26,6 @@ const ADDR_SYS_DEMOD_CTL_1: u16 = 0x300b; const INTERFACE_ID: u8 = 0; -use devices::*; - -const DEVICES: [DeviceInfo; 2] = [ - fc0013::DEVICE_INFO, - r820t::DEVICE_INFO -]; - const CTRL_TIMEOUT: Duration = Duration::from_millis(300); const KNOWN_DEVICES: [(u16, u16, &str); 2] = [ (0x0bda, 0x2832, "Generic RTL2832U"), @@ -222,14 +216,32 @@ impl<'a> RtlSdr<'a> { self.init_baseband(&handle); self.set_i2c_repeater(&handle, true); - for d in &DEVICES { - match self.i2c_read_reg(&handle, d.i2c_addr, d.check_addr) { + let d = r820t::R820T::new(); + let found = match self.i2c_read_reg(&handle, d.device.i2c_addr, d.device.check_addr) { + Ok(reg) => { + if reg == d.device.check_val { + println!("Found {} tuner\n", d.device.name); + true + } + else { + false + } + }, + Err(_) => false + }; + if !found { + let d = fc0013::FC0013::new(); + let _found = match self.i2c_read_reg(&handle, d.device.i2c_addr, d.device.check_addr) { Ok(reg) => { - if reg == d.check_val { - println!("Found {} tuner\n", d.name); + if reg == d.device.check_val { + println!("Found {} tuner\n", d.device.name); + true + } + else { + false } }, - Err(_) => {} + Err(_) => false }; } -- cgit v1.3.1