#ifndef ESPFS_H #define ESPFS_H #include "espfsformat.h" typedef enum { ESPFS_INIT_RESULT_OK, ESPFS_INIT_RESULT_NO_IMAGE, ESPFS_INIT_RESULT_BAD_ALIGN, } EspFsInitResult; // Only 1 MByte of the flash can be directly accessed with ESP8266 // If flash size is >1 Mbyte, SDK API is required to retrieve flash content typedef enum { ESPFS_MEMORY, // read data directly from memory (fast, max 1 MByte) ESPFS_FLASH, // read data from flash using SDK API (no limit for the size) } EspFsSource; typedef struct EspFsFile EspFsFile; typedef struct EspFsContext EspFsContext; typedef struct { EspFsHeader header; // the header of the current file EspFsContext *ctx; // pointer to espfs context char name[256]; // the name of the current file char *position; // position of the iterator (pointer on the file system) } EspFsIterator; extern EspFsContext * espLinkCtx; extern EspFsContext * userPageCtx; EspFsInitResult espFsInit(EspFsContext *ctx, void *flashAddress, EspFsSource source); EspFsFile *espFsOpen(EspFsContext *ctx, char *fileName); int espFsIsValid(EspFsContext *ctx); int espFsFlags(EspFsFile *fh); int espFsRead(EspFsFile *fh, char *buff, int len); void espFsClose(EspFsFile *fh); void espFsIteratorInit(EspFsContext *ctx, EspFsIterator *iterator); int espFsIteratorNext(EspFsIterator *iterator); #endif