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}