#pragma once #include "EpdiyDisplay.h" #include #include #include /** * Helper class to create EPDiy displays with common configurations */ class EpdiyDisplayHelper { public: /** * Create a display for M5Paper S3 * @param touch Optional touch device * @param temperature Display temperature in °C (default: 20) * @param drawMode Default draw mode (default: MODE_DU) * @param fullRefresh Use full refresh mode (default: false for partial updates) * @param rotation Display rotation (default: EPD_ROT_PORTRAIT) */ static std::shared_ptr createM5PaperS3Display( std::shared_ptr touch = nullptr, int temperature = 20, enum EpdDrawMode drawMode = MODE_DU, bool fullRefresh = false, enum EpdRotation rotation = EPD_ROT_PORTRAIT ) { auto config = std::make_unique( &epd_board_m5papers3, &ED047TC1, touch, static_cast(EPD_LUT_1K | EPD_FEED_QUEUE_32), static_cast(EPD_BUILTIN_WAVEFORM), temperature, drawMode, fullRefresh, rotation ); return std::make_shared(std::move(config)); } };