#pragma once #include #include #include #include "config.h" #include "image_pipeline.h" #include "immich_client.h" #include "settings.h" class PowerManager; class DisplayManager { public: void begin(PowerManager& power); void showSetupScreen(); void showImage(const ProcessedImage& img); void showMessage(const char* title, const char* body); void showMetadata(const AssetInfo& info, uint8_t metaFlags, MetaPosition pos, const String& dateFmt = "%Y-%m-%d", const String& timeFmt = "%H:%M:%S"); void showMetadataInRegion(const AssetInfo& info, uint8_t metaFlags, MetaPosition pos, uint16_t regionX, uint16_t regionY, uint16_t regionW, uint16_t regionH, const String& dateFmt = "%Y-%m-%d", const String& timeFmt = "%H:%M:%S"); void showSleepIndicator(MetaPosition metaPos); void refresh(); private: PowerManager* _power = nullptr; M5GFX* _display = nullptr; void triggerRefresh(); uint16_t paletteToColor565(uint8_t index); };