#[derive(Debug)]
pub struct TEA5767<I2C> {
pub(crate) i2c: I2C,
pub(crate) address: u8,
pub(crate) frequency: f32,
pub(crate) band_limits: BandLimits,
pub(crate) standby: bool,
pub(crate) mute: MuteChannel,
pub(crate) soft_mute: bool,
pub(crate) search_mode: bool,
pub(crate) search_mode_dir: SearchModeDirection,
pub(crate) search_adc_level: SearchAdcLevel,
pub(crate) injection_side: InjectionSide,
pub(crate) sound_mode: SoundMode,
pub(crate) high_cut_control: bool,
pub(crate) stereo_noise_canceling: bool,
pub(crate) crystal_frequency: CrystalFrequency,
pub(crate) software_programmable_port1: bool,
pub(crate) software_programmable_port2: bool,
pub(crate) search_indicator: bool,
pub(crate) deemphasis_time: DeemphasisTime,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum SearchModeDirection {
Up,
Down,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum SearchAdcLevel {
Low,
Mid,
High,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum InjectionSide {
LowSide,
HighSide,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum SoundMode {
Stereo,
Mono,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum MuteChannel {
Right,
Left,
Both,
None,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum BandLimits {
Japanese,
EuropeUS,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum CrystalFrequency {
Clk13Mhz,
Clk32_768Khz,
Clk6_5MHz,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum DeemphasisTime {
Dtc75,
Dtc50,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum SearchStatus {
Success,
Failure,
}
pub const BAND_LIMITS_EUROPE_US: (f32, f32) = (87.5, 108.0);
pub const BAND_LIMITS_JAPANESE: (f32, f32) = (76.0, 91.0);