#pragma once #include #include #include "logic/bitmap_format.h" // Full screen bitmaps (84 x 19, see logic/bitmap_format.h): built-in ones from // display/bitmaps.h and the ones uploaded in the web UI, stored on LittleFS // (partition "spiffs" in partitions.csv) as /bitmaps/.bin. Bitmaps and dynamic // pages share one namespace: app.cpp checks that a new name is not taken. struct BitmapInfo { String name; bool builtin; }; const int MAX_BITMAPS = 200; // Mounts LittleFS (formats it the first time). False without the partition (old flash // layout): only the built-in bitmaps are available then. bool bitmapStoreBegin(); // (LittleFS is shared with display/page_store and display/font_store) bool bitmapStorageAvailable(); void bitmapStorageUsage(size_t &used, size_t &total); // The valid names of the files with this extension in a LittleFS directory std::vector storedNames(const char *dir, const char *extension); std::vector listBitmaps(); // Changes each time a bitmap is saved or deleted uint32_t bitmapListRevision(); bool bitmapExists(const char *name); // Without reading the storage bool builtinBitmap(const char *name); bool loadBitmap(const char *name, uint8_t *bitmap); // Return nullptr on success, otherwise a message for the user const char *saveBitmap(const char *name, const uint8_t *bitmap); const char *deleteBitmap(const char *name);