names = (const char **)entry->data;\r
for (c = 0; names[c] != NULL; c++)\r
;\r
- *(int *)entry->var += is_next ? 1 : -1;\r
- if (*(int *)entry->var < 0)\r
- *(int *)entry->var = 0;\r
- if (*(int *)entry->var >= c)\r
- *(int *)entry->var = c - 1;\r
+ *(signed char *)entry->var += is_next ? 1 : -1;\r
+ if (*(signed char *)entry->var < 0)\r
+ *(signed char *)entry->var = 0;\r
+ if (*(signed char *)entry->var >= c)\r
+ *(signed char *)entry->var = c - 1;\r
return 1;\r
default:\r
return 0;\r
\r
static void debug_menu_loop(void);\r
\r
-static void me_loop(menu_entry *menu, int *menu_sel, void (*draw_more)(void))\r
+static int me_loop_d(menu_entry *menu, int *menu_sel, void (*draw_prep)(void), void (*draw_more)(void))\r
{\r
- int ret, inp, sel = *menu_sel, menu_sel_max;\r
+ int ret = 0, inp, sel = *menu_sel, menu_sel_max;\r
\r
menu_sel_max = me_count(menu) - 1;\r
if (menu_sel_max < 0) {\r
lprintf("no enabled menu entries\n");\r
- return;\r
+ return 0;\r
}\r
\r
while ((!menu[sel].enabled || !menu[sel].selectable) && sel < menu_sel_max)\r
\r
for (;;)\r
{\r
+ if (draw_prep != NULL)\r
+ draw_prep();\r
+\r
me_draw(menu, sel, draw_more);\r
inp = in_menu_wait(PBTN_UP|PBTN_DOWN|PBTN_LEFT|PBTN_RIGHT|\r
PBTN_MOK|PBTN_MBACK|PBTN_MENU|PBTN_L|PBTN_R, 70);\r
}\r
}\r
*menu_sel = sel;\r
+\r
+ return ret;\r
+}\r
+\r
+static int me_loop(menu_entry *menu, int *menu_sel)\r
+{\r
+ return me_loop_d(menu, menu_sel, NULL, NULL);\r
}\r
\r
/* ***************************************** */\r
return alphasort(d1, d2);\r
}\r
\r
-static const char *filter_exts[] = {\r
- ".mp3", ".MP3", ".srm", ".brm", "s.gz", ".mds", "bcfg", ".txt", ".htm", "html",\r
- ".jpg", ".gpe"\r
-};\r
-\r
static int scandir_filter(const struct dirent *ent)\r
{\r
const char *p;\r