X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=common%2Fmenu_pico.c;h=b9f1d7f1c255cf2eed3586abe54b364019019f09;hb=95a2ec38bc4338db3c50985d11d86fc04a95b399;hp=caf2be166dc2866d32b3381c0dd4988095ee91ac;hpb=9c2179d3563c9425270dee114167e7149528e8bd;p=libpicofe.git diff --git a/common/menu_pico.c b/common/menu_pico.c index caf2be1..b9f1d7f 100644 --- a/common/menu_pico.c +++ b/common/menu_pico.c @@ -6,6 +6,22 @@ #include #include +// rrrr rggg gggb bbbb +static unsigned short fname2color(const char *fname) +{ + const char *ext = fname + strlen(fname) - 3; + static const char *rom_exts[] = { "zip", "bin", "smd", "gen", "iso", "cso", "cue" }; + static const char *other_exts[] = { "gmv", "pat" }; + int i; + + if (ext < fname) ext = fname; + for (i = 0; i < array_size(rom_exts); i++) + if (strcasecmp(ext, rom_exts[i]) == 0) return 0xbdff; // FIXME: mk defines + for (i = 0; i < array_size(other_exts); i++) + if (strcasecmp(ext, other_exts[i]) == 0) return 0xaff5; + return 0xffff; +} + #include "menu.c" /* platform specific options and handlers */ @@ -19,6 +35,26 @@ #define menu_main_plat_draw NULL #endif +static void menu_enter(int is_rom_loaded) +{ + if (is_rom_loaded) + { + // darken the active framebuffer + menu_darken_bg(g_menubg_ptr, g_menubg_src_ptr, g_menuscreen_w * g_menuscreen_h, 1); + } + else + { + char buff[256]; + + // should really only happen once, on startup.. + emu_make_path(buff, "skin/background.png", sizeof(buff)); + if (readpng(g_menubg_ptr, buff, READPNG_BG, g_menuscreen_w, g_menuscreen_h) < 0) + memset(g_menubg_ptr, 0, g_menuscreen_w * g_menuscreen_h * 2); + } + + plat_video_menu_enter(is_rom_loaded); +} + static void draw_savestate_bg(int slot) { const char *fname;