summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2018-07-30 21:58:21 +0300
committerYuval Adam <_@yuv.al>2018-07-30 21:58:21 +0300
commitf0025e9c44c519224b532c54c8b301029a42f98e (patch)
treec6ac2ae43f1d441b3aa564001b9d3df7386d6000 /src/lib.rs
parentd1fe53b99a44d9ffa4f1b21b13e8a686c30ceff8 (diff)
Implement deinit_baseband()
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 305ecbd..f2f20eb 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -190,6 +190,13 @@ impl<'a> RtlSdr<'a> {
self.demod_write_reg(&handle, 0, 0x0d, 0x83, 1);
}
+ fn deinit_baseband(&self, handle: &libusb::DeviceHandle) {
+ // deinit tuner?
+
+ // power off demod and ADCs
+ self.write_reg(&handle, BLOCK_SYSB, ADDR_SYS_DEMOD_CTL, 0x20, 1);
+ }
+
pub fn open(&mut self) {
for mut dev in self.ctx.devices().unwrap().iter() {
let desc = dev.device_descriptor().unwrap();
@@ -245,6 +252,8 @@ impl<'a> RtlSdr<'a> {
};
}
+ self.deinit_baseband(&handle);
+
if has_kernel_driver {
handle.attach_kernel_driver(self.iface_id).ok();
}