// Interstellar-themed animated pages for the ESPHome display: Gargantua with // a time dilation clock, TARS and its settings, the Endurance spinning while a // Ranger docks, and the tesseract's bookshelf with the time in dust and a // message in Morse. Fan art: layouts, drawings and texts are original. // // Each function draws a whole page. Call it from a page lambda and list that // page under animated_pages; the animation clock is the display's page_age_ms(). #pragma once #include "el512_pages.h" #include "esphome/components/display/display.h" #include "esphome/core/time.h" namespace esphome::el512 { class EL512Display; namespace interstellar { struct Fonts { display::BaseFont *title{nullptr}; // wide headers (Michroma 12) display::BaseFont *large{nullptr}; // wide numbers (Michroma 28) display::BaseFont *mono{nullptr}; // readouts and TARS (Share Tech Mono 14) display::BaseFont *code{nullptr}; // larger monospace (Share Tech Mono 22) }; void gargantua(EL512Display &it, const Fonts &f, ESPTime now); void tars(EL512Display &it, const Fonts &f, const HomeData &d); void endurance(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now); void tesseract(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now); } // namespace interstellar } // namespace esphome::el512