build: configure different displays based on cargo configs

This commit is contained in:
2024-10-30 19:52:02 +01:00
parent 739d7c2e6d
commit f803d8fe93
7 changed files with 221 additions and 160 deletions

View File

@@ -1,24 +1,37 @@
use palette::Hsv;
use palette::convert::IntoColorUnclamped;
use ws2812_esp32_rmt_driver::lib_smart_leds::Ws2812Esp32Rmt;
use ws2812_esp32_rmt_driver::lib_embedded_graphics::Ws2812DrawTarget;
mod power;
mod lib8;
mod render;
mod task;
mod time;
mod geometry;
mod embedded_graphics_lib;
mod smart_leds_lib;
mod platform;
#[cfg(feature="embedded-graphics")]
mod embedded_graphics_lib;
#[cfg(feature="rmt")]
#[cfg(feature="embedded-graphics")]
use ws2812_esp32_rmt_driver::lib_embedded_graphics::PonderjarTarget;
#[cfg(feature="smart-leds")]
mod smart_leds_lib;
#[cfg(feature="rmt")]
#[cfg(feature="smart-leds")]
use ws2812_esp32_rmt_driver::lib_smart_leds::Ws2812Esp32Rmt;
#[cfg(feature="spi")]
#[cfg(feature="smart-leds")]
use crate::smart_leds_lib::spi::SPIDisplay;
use crate::time::Periodically;
use crate::geometry::{Coordinates, VirtualCoordinates};
use crate::render::{Shader, Surfaces, Surface, SimpleSurface};
use crate::task::Task;
use crate::platform::{DisplayInit, PonderjarTarget, SPIDisplay};
use crate::platform::{DisplayInit};
struct IdleTask<T: Surface> {
frame: u8,
@@ -70,8 +83,14 @@ fn main() {
esp_idf_svc::log::EspLogger::initialize_default();
log::info!("Setting up display");
//let mut display = SPIDisplay::new_display::<SimpleSurface>();
//let mut display = PonderjarTarget::new_display::<SimpleSurface>();
#[cfg(feature="spi")]
let mut display = SPIDisplay::new_display::<SimpleSurface>();
#[cfg(feature="embedded-graphics")]
let mut display = PonderjarTarget::new_display::<SimpleSurface>();
#[cfg(feature="rmt")]
let mut display = Ws2812Esp32Rmt::new_display::<SimpleSurface>();
log::info!("Creating runner");