radion/
tuner.rs

1use crate::error::Error;
2use std::convert::TryFrom;
3use std::os::raw::c_int;
4
5#[derive(Copy, Clone, Debug)]
6#[repr(i32)]
7pub enum RTLSDRTuner {
8    Unknown = 0,
9    E4000 = 1,
10    FC0012 = 2,
11    FC0013 = 3,
12    FC2580 = 4,
13    R820T = 5,
14    R828D = 6,
15}
16
17pub enum SamplingMode {
18    None = 0,
19    IADC = 1,
20    QADC = 2,
21    Error = 3,
22}
23
24impl TryFrom<c_int> for RTLSDRTuner {
25    type Error = Error;
26
27    fn try_from(value: c_int) -> Result<Self, Self::Error> {
28        match value {
29            0 => Ok(RTLSDRTuner::Unknown),
30            1 => Ok(RTLSDRTuner::E4000),
31            2 => Ok(RTLSDRTuner::FC0012),
32            3 => Ok(RTLSDRTuner::FC0013),
33            4 => Ok(RTLSDRTuner::FC2580),
34            5 => Ok(RTLSDRTuner::R820T),
35            6 => Ok(RTLSDRTuner::R828D),
36            _ => Err(Error::Unknown),
37        }
38    }
39}