menu: add pre-draw func and move pico ext filter

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@931 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2011-07-06 18:38:18 +00:00
parent 21ebcfd322
commit 10250ad230
2 changed files with 26 additions and 16 deletions

View file

@ -573,14 +573,14 @@ static int me_process(menu_entry *entry, int is_next, int is_lr)
static void debug_menu_loop(void);
static void me_loop(menu_entry *menu, int *menu_sel, void (*draw_more)(void))
static int me_loop_d(menu_entry *menu, int *menu_sel, void (*draw_prep)(void), void (*draw_more)(void))
{
int ret, inp, sel = *menu_sel, menu_sel_max;
int ret = 0, inp, sel = *menu_sel, menu_sel_max;
menu_sel_max = me_count(menu) - 1;
if (menu_sel_max < 0) {
lprintf("no enabled menu entries\n");
return;
return 0;
}
while ((!menu[sel].enabled || !menu[sel].selectable) && sel < menu_sel_max)
@ -592,6 +592,9 @@ static void me_loop(menu_entry *menu, int *menu_sel, void (*draw_more)(void))
for (;;)
{
if (draw_prep != NULL)
draw_prep();
me_draw(menu, sel, draw_more);
inp = in_menu_wait(PBTN_UP|PBTN_DOWN|PBTN_LEFT|PBTN_RIGHT|
PBTN_MOK|PBTN_MBACK|PBTN_MENU|PBTN_L|PBTN_R, 70);
@ -636,6 +639,13 @@ static void me_loop(menu_entry *menu, int *menu_sel, void (*draw_more)(void))
}
}
*menu_sel = sel;
return ret;
}
static int me_loop(menu_entry *menu, int *menu_sel)
{
return me_loop_d(menu, menu_sel, NULL, NULL);
}
/* ***************************************** */
@ -766,11 +776,6 @@ static int scandir_cmp(const void *p1, const void *p2)
return alphasort(d1, d2);
}
static const char *filter_exts[] = {
".mp3", ".MP3", ".srm", ".brm", "s.gz", ".mds", "bcfg", ".txt", ".htm", "html",
".jpg", ".gpe"
};
static int scandir_filter(const struct dirent *ent)
{
const char *p;

View file

@ -25,6 +25,11 @@ static unsigned short fname2color(const char *fname)
return 0xffff;
}
static const char *filter_exts[] = {
".mp3", ".MP3", ".srm", ".brm", "s.gz", ".mds", "bcfg", ".txt", ".htm", "html",
".jpg", ".gpe"
};
#include "menu.c"
/* platform specific options and handlers */
@ -309,7 +314,7 @@ static int menu_loop_keyconfig(int id, int keys)
static int sel = 0;
me_enable(e_menu_keyconfig, MA_OPT_SAVECFG_GAME, rom_loaded);
me_loop(e_menu_keyconfig, &sel, NULL);
me_loop(e_menu_keyconfig, &sel);
return 0;
}
@ -365,7 +370,7 @@ static menu_entry e_menu_cd_options[] =
static int menu_loop_cd_options(int id, int keys)
{
static int sel = 0;
me_loop(e_menu_cd_options, &sel, NULL);
me_loop(e_menu_cd_options, &sel);
return 0;
}
@ -420,7 +425,7 @@ static int menu_loop_32x_options(int id, int keys)
static int sel = 0;
me_enable(e_menu_32x_options, MA_32XOPT_RENDERER, renderer_names32x[0] != NULL);
me_loop(e_menu_32x_options, &sel, NULL);
me_loop(e_menu_32x_options, &sel);
return 0;
}
@ -447,7 +452,7 @@ static menu_entry e_menu_adv_options[] =
static int menu_loop_adv_options(int id, int keys)
{
static int sel = 0;
me_loop(e_menu_adv_options, &sel, NULL);
me_loop(e_menu_adv_options, &sel);
return 0;
}
@ -465,7 +470,7 @@ static int menu_loop_gfx_options(int id, int keys)
static int sel = 0;
me_enable(e_menu_gfx_options, MA_OPT_RENDERER, renderer_names[0] != NULL);
me_loop(e_menu_gfx_options, &sel, NULL);
me_loop(e_menu_gfx_options, &sel);
return 0;
}
@ -671,7 +676,7 @@ static int menu_loop_options(int id, int keys)
me_enable(e_menu_options, MA_OPT_SAVECFG_GAME, rom_loaded);
me_enable(e_menu_options, MA_OPT_LOADCFG, config_slot != config_slot_current);
me_loop(e_menu_options, &sel, NULL);
me_loop(e_menu_options, &sel);
return 0;
}
@ -950,7 +955,7 @@ void menu_loop(void)
menu_enter(rom_loaded);
in_set_config_int(0, IN_CFG_BLOCKING, 1);
me_loop(e_menu_main, &sel, menu_main_plat_draw);
me_loop_d(e_menu_main, &sel, NULL, menu_main_plat_draw);
if (rom_loaded) {
if (engineState == PGS_Menu)
@ -999,7 +1004,7 @@ int menu_loop_tray(void)
menu_enter(rom_loaded);
in_set_config_int(0, IN_CFG_BLOCKING, 1);
me_loop(e_menu_tray, &sel, NULL);
me_loop(e_menu_tray, &sel);
if (engineState != PGS_RestartRun) {
engineState = PGS_RestartRun;