use super::RtlSdrDeviceHandle; pub mod fc0013; pub mod r820t; pub const KNOWN_TUNERS: [TunerInfo; 2] = [r820t::TUNER_INFO, fc0013::TUNER_INFO]; pub struct TunerInfo { pub id: &'static str, pub name: &'static str, pub i2c_addr: u8, pub check_addr: u8, pub check_val: u8, // pub gains: Vec, } pub trait Tuner { fn init(&self, handle: &RtlSdrDeviceHandle); fn exit(&self, handle: &RtlSdrDeviceHandle); fn set_frequency(&self, freq: u32, handle: &RtlSdrDeviceHandle); fn set_bandwidth(&mut self, rate: u32, handle: &RtlSdrDeviceHandle); fn set_gain(&self, gain: u32, handle: &RtlSdrDeviceHandle); fn set_if_gain(&self, if_gain: u32, handle: &RtlSdrDeviceHandle); fn set_gain_mode(&self, mode: bool, handle: &RtlSdrDeviceHandle); fn display(&self) -> &str; } pub enum Tuners { R820T(r820t::R820T), FC0013(fc0013::FC0013), }