From 6c3fdd3d5d18a84582e030bc1115dcacdb58a914 Mon Sep 17 00:00:00 2001 From: schneider Date: Sun, 17 Jul 2011 01:45:00 +0200 Subject: [PATCH] select files to execute --- firmware/filesystem/Makefile | 1 + firmware/filesystem/select.c | 85 ++++++++++++++++++++++++++++++++++++ firmware/filesystem/select.h | 10 +++++ 3 files changed, 96 insertions(+) create mode 100644 firmware/filesystem/select.c create mode 100644 firmware/filesystem/select.h diff --git a/firmware/filesystem/Makefile b/firmware/filesystem/Makefile index 75506ca..fc0dbb9 100644 --- a/firmware/filesystem/Makefile +++ b/firmware/filesystem/Makefile @@ -10,6 +10,7 @@ OBJS += iobase.o OBJS += mmc.o OBJS += at45db041d.o OBJS += util.o +OBJS += select.o LIBNAME=fat diff --git a/firmware/filesystem/select.c b/firmware/filesystem/select.c new file mode 100644 index 0000000..1cc8985 --- /dev/null +++ b/firmware/filesystem/select.c @@ -0,0 +1,85 @@ +#include +#include "lcd/lcd.h" +#include "lcd/allfonts.h" +#include "lcd/print.h" +#include "filesystem/ff.h" +#include "basic/basic.h" + +#define FLEN 13 + +int getFiles(char files[][FLEN], uint8_t count, uint16_t skip, char *ext) +{ + DIR dir; /* Directory object */ + FILINFO Finfo; + FRESULT res; + int ctr; + int pos = 0; + res = f_opendir(&dir, "0:"); + if(res){ + //lcdPrint("OpenDir:"); lcdPrintln(f_get_rc_string(res)); lcdRefresh(); + return 0; + }; + for(ctr=0;pos"); + lcdPrintln(files[i]); + } + lcdRefresh(); + key=getInputWait(); + delayms(20); + if( key==BTN_DOWN ){ + if( selected < 6 ){ + selected++; + goto redraw; + }else{ + skip++; + } + }else if( key==BTN_UP ){ + if( selected > 0 ){ + selected--; + goto redraw; + }else{ + if( skip > 0 ){ + skip--; + } + } + }else if( key==BTN_LEFT ){ + return 1; + }else if( key==BTN_RIGHT ){ + strcpy(filename, files[selected]); + return 0; + } + } +} diff --git a/firmware/filesystem/select.h b/firmware/filesystem/select.h new file mode 100644 index 0000000..966d135 --- /dev/null +++ b/firmware/filesystem/select.h @@ -0,0 +1,10 @@ +#ifndef _SELECT_H_ +#define _SELECT_H_ +#include + +#define FLEN 13 + +int getFiles(char files[][FLEN], uint8_t count, uint16_t skip, char *ext); +int selectFile(char *filename, char *extension); + +#endif