summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2018-07-30 21:49:15 +0300
committerYuval Adam <_@yuv.al>2018-07-30 21:49:15 +0300
commitd1fe53b99a44d9ffa4f1b21b13e8a686c30ceff8 (patch)
tree3cda76b4def8d00b8f0bca71279e5e7deb4123d0 /src/lib.rs
parent59e2ae68353648364ba128ca6079157794eae1fc (diff)
Duplicate all teh codez
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs36
1 files changed, 24 insertions, 12 deletions
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
};
}