use display_interface_i2c::I2CInterface;
#[derive(Debug, Copy, Clone)]
pub struct I2CDisplayInterface(());
impl I2CDisplayInterface {
#[cfg(not(feature = "async"))]
#[allow(clippy::new_ret_no_self)]
pub fn new<I>(i2c: I) -> I2CInterface<I>
where
I: embedded_hal::i2c::I2c,
{
Self::new_custom_address(i2c, 0x3C)
}
#[cfg(feature = "async")]
#[allow(clippy::new_ret_no_self)]
pub fn new<I>(i2c: I) -> I2CInterface<I>
where
I: embedded_hal_async::i2c::I2c,
{
Self::new_custom_address(i2c, 0x3C)
}
#[cfg(not(feature = "async"))]
pub fn new_alternate_address<I>(i2c: I) -> I2CInterface<I>
where
I: embedded_hal::i2c::I2c,
{
Self::new_custom_address(i2c, 0x3D)
}
#[cfg(feature = "async")]
pub fn new_alternate_address<I>(i2c: I) -> I2CInterface<I>
where
I: embedded_hal_async::i2c::I2c,
{
Self::new_custom_address(i2c, 0x3D)
}
#[cfg(not(feature = "async"))]
pub fn new_custom_address<I>(i2c: I, address: u8) -> I2CInterface<I>
where
I: embedded_hal::i2c::I2c,
{
I2CInterface::new(i2c, address, 0x40)
}
#[cfg(feature = "async")]
pub fn new_custom_address<I>(i2c: I, address: u8) -> I2CInterface<I>
where
I: embedded_hal_async::i2c::I2c,
{
I2CInterface::new(i2c, address, 0x40)
}
}