summaryrefslogtreecommitdiff
path: root/src/tuners/mod.rs
blob: 9a7c9ce0673870163a275b9ad9ded5c154560ac6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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<i8>,
}

pub trait Tuner {
    fn init(&self, handle: &RtlSdrDeviceHandle);
    fn exit(&self);
    fn set_freq(&self, freq: u32);
    fn set_bandwidth(&self, bw: u16, rate: u32, handle: &RtlSdrDeviceHandle);
    fn set_gain(&self, gain: u32);
    fn set_if_gain(&self, if_gain: u32);
    fn set_gain_mode(&self, mode: bool);
    fn display(&self) -> &str;
}