Index: apps/plugins/calendar.c =================================================================== --- apps/plugins/calendar.c (revision 16078) +++ apps/plugins/calendar.c (working copy) @@ -25,6 +25,15 @@ PLUGIN_HEADER +#if CONFIG_KEYPAD == SANSA_E200_PAD +#define UP BUTTON_UP +#define DOWN BUTTON_DOWN +#define LEFT BUTTON_LEFT +#define RIGHT BUTTON_RIGHT +#define BUTTON_PLAY BUTTON_SELECT +#define BUTTON_ON BUTTON_POWER +#endif + static struct plugin_api* rb; static bool leap_year; @@ -109,7 +118,7 @@ char *Dayname[7] = {"M","T","W","T","F","S","S"}; int ws = 2; rb->lcd_getstringsize("A",&w,&h); - for (i = 0; i < 8;) + for (i = 0; i < 7;) { rb->lcd_putsxy(ws, 0 , Dayname[i++]); ws += space; @@ -218,7 +227,7 @@ for (k = 0; k < 7; k++) wday_has_memo[k] = false; memos_in_memory = 0; - fp = rb->open(ROCKBOX_DIR "/.memo",O_RDONLY); + fp = rb->open(ROCKBOX_DIR "/rocks/apps/.memo",O_RDONLY); if (fp > -1) { int count = rb->filesize(fp); @@ -315,7 +324,7 @@ static bool save_memo(int changed, bool new_mod, struct shown *shown) { int fp,fq; - fp = rb->open(ROCKBOX_DIR "/.memo",O_RDONLY | O_CREAT); + fp = rb->open(ROCKBOX_DIR "/rocks/apps/.memo",O_RDONLY | O_CREAT); fq = rb->creat(ROCKBOX_DIR "/~temp"); if ( (fq != -1) && (fp != -1) ) { @@ -345,7 +354,7 @@ rb->write(fq,temp,1); } rb->close(fp); - fp = rb->creat(ROCKBOX_DIR "/.memo"); + fp = rb->creat(ROCKBOX_DIR "/rocks/apps/.memo"); rb->lseek(fp, 0, SEEK_SET); rb->lseek(fq, 0, SEEK_SET); for (i = 0; i < rb->filesize(fq); i++) @@ -420,27 +429,40 @@ if (memos_in_shown_memory > 0) { rb->lcd_puts(0,0,"Remove : Up"); - rb->lcd_puts(0,1,"Edit : Down"); + rb->lcd_puts(0,1,"Edit : Down"); rb->lcd_puts(0,2,"New :"); - rb->lcd_puts(2,3,"weekly : Left"); - rb->lcd_puts(2,4,"monthly : Play"); + rb->lcd_puts(2,3,"weekly : Left"); + rb->lcd_puts(2,4,"monthly : Play"); rb->lcd_puts(2,5,"annually : Right"); - rb->lcd_puts(2,6,"one off : On"); + rb->lcd_puts(2,6,"one off : On"); + #ifdef SANSA_E200 + rb->lcd_puts(2,7,"Return : Scroll Up"); + #endif + } else { rb->lcd_puts(0,0,"New :"); - rb->lcd_puts(2,1,"weekly : Left"); + rb->lcd_puts(2,1,"weekly : Left"); rb->lcd_puts(2,2,"monthly : Play"); - rb->lcd_puts(2,3,"anualy : Right"); + rb->lcd_puts(2,3,"anualy : Right"); rb->lcd_puts(2,4,"one off : On"); + #ifdef SANSA_E200 + rb->lcd_puts(2,5,"Return : Scroll Up"); + #endif } rb->lcd_update(); button = rb->button_get(true); switch (button) { + + #ifdef SANSA_E200 + case BUTTON_SCROLL_BACK: + return false; + #else case BUTTON_OFF: return false; + #endif case BUTTON_LEFT: add_memo(shown,0); @@ -590,10 +612,13 @@ case BUTTON_PLAY: return edit_memo(lines_displayed, shown); - +#ifdef SANSA_E200 + case BUTTON_ON: + return false; +#else case BUTTON_OFF: return false; - +#endif default: if(rb->default_event_handler(button) == SYS_USB_CONNECTED) been_in_usb_mode = true; @@ -679,6 +704,33 @@ button = rb->button_get(true); switch (button) { + +#ifdef SANSA_E200 + + case BUTTON_ON: + return false; + + case BUTTON_DOWN: + case BUTTON_DOWN | BUTTON_REPEAT: + next_month(&shown, 0); + break; + + case BUTTON_UP: + case BUTTON_UP | BUTTON_REPEAT: + prev_month(&shown, 0); + break; + + case BUTTON_SCROLL_FWD: + case BUTTON_SCROLL_FWD | BUTTON_REPEAT: + next_day(&shown, 7); + break; + + case BUTTON_SCROLL_BACK: + case BUTTON_SCROLL_BACK | BUTTON_REPEAT: + prev_day(&shown, 7); + break; + +#else case BUTTON_OFF: return false; @@ -702,6 +754,8 @@ prev_day(&shown, 7); break; +#endif + case BUTTON_LEFT: case BUTTON_LEFT | BUTTON_REPEAT: prev_day(&shown, 1); Index: apps/plugins/SOURCES =================================================================== --- apps/plugins/SOURCES (revision 16078) +++ apps/plugins/SOURCES (working copy) @@ -1,6 +1,7 @@ #ifndef OLYMPUS_MROBE_100 /* plugins common to all models */ +calendar.c battery_bench.c chessclock.c credits.c