From f6ec40de2f2bb0619ba6cff403b86bd3b316488c Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 4 Aug 2011 23:50:44 +0200 Subject: [PATCH] Add image helper functions --- firmware/lcd/Makefile | 1 + firmware/lcd/image.c | 46 +++++++++++++++++++++++++++++++++++++++++++ firmware/lcd/image.h | 8 ++++++++ 3 files changed, 55 insertions(+) create mode 100644 firmware/lcd/image.c create mode 100644 firmware/lcd/image.h diff --git a/firmware/lcd/Makefile b/firmware/lcd/Makefile index fe639a3..e9b8d76 100644 --- a/firmware/lcd/Makefile +++ b/firmware/lcd/Makefile @@ -9,6 +9,7 @@ OBJS += render.o OBJS += decoder.o OBJS += backlight.o OBJS += print.o +OBJS += image.o FONTS = $(basename $(wildcard fonts/*.c)) diff --git a/firmware/lcd/image.c b/firmware/lcd/image.c new file mode 100644 index 0000000..6d6b90a --- /dev/null +++ b/firmware/lcd/image.c @@ -0,0 +1,46 @@ +#include + +#include "basic/basic.h" +#include "lcd/lcd.h" +#include "lcd/display.h" +#include "filesystem/ff.h" + +int lcdLoadImage(char *file) { + return readFile(file,(char *)lcdBuffer,RESX*RESY_B); +} + +int lcdSaveImage(char *file) { + return writeFile(file,(char *)lcdBuffer,RESX*RESY_B); +} + +uint8_t lcdShowAnim(char *fname, uint32_t framems) { + FIL file; /* File object */ + int res; + UINT readbytes; + uint8_t state=0; + + res=f_open(&file, fname, FA_OPEN_EXISTING|FA_READ); + if(res) + return 1; + + getInputWaitRelease(); + while(!getInputRaw()){ + lcdFill(0x55); + res = f_read(&file, (char *)lcdBuffer, RESX*RESY_B, &readbytes); + if(res) + return -1; + if(readbytes