X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fmenu.c;h=b25e1927c2aab322d1e5ad5424cb06daa8bddfc7;hp=eb004d8fc133f7b9a4288cd804ca1efa18221298;hb=69e482e3def6669a4fa921d07f9ba04883d7de34;hpb=92879b62c06f6c1d363a138f77f7727d0fc7721e diff --git a/frontend/menu.c b/frontend/menu.c index eb004d8f..b25e1927 100644 --- a/frontend/menu.c +++ b/frontend/menu.c @@ -8,7 +8,7 @@ * See the COPYING file in the top-level directory. */ -#define _GNU_SOURCE +#define _GNU_SOURCE 1 #include #include #include @@ -211,7 +211,7 @@ static int optional_cdimg_filter(struct dirent **namelist, int count, const char *ext, *p; char buf[256], buf2[256]; int i, d, ret, good_cue; - struct stat statf; + struct stat64 statf; FILE *f; for (i = 1; i < count; i++) { @@ -251,11 +251,13 @@ static int optional_cdimg_filter(struct dirent **namelist, int count, p = strrchr(buf2, '/'); if (p == NULL) p = strrchr(buf2, '\\'); - if (p == NULL) + if (p != NULL) + p++; + else p = buf2; snprintf(buf, sizeof(buf), "%s/%s", basedir, p); - ret = stat(buf, &statf); + ret = stat64(buf, &statf); if (ret == 0) { rm_namelist_entry(namelist, count, p); good_cue = 1; @@ -327,6 +329,7 @@ static void menu_set_defconfig(void) g_opts = 0; g_scaler = SCALE_4_3; + g_gamma = 100; volume_boost = 0; frameskip = 0; analog_deadzone = 50; @@ -391,6 +394,7 @@ static const struct { CE_CONFIG_VAL(Cpu), CE_INTVAL(region), CE_INTVAL_V(g_scaler, 2), + CE_INTVAL(g_gamma), CE_INTVAL(g_layer_x), CE_INTVAL(g_layer_y), CE_INTVAL(g_layer_w), @@ -510,7 +514,7 @@ static int menu_do_last_cd_img(int is_get) { static const char *defaults[] = { "/media", "/mnt/sd", "/mnt" }; char path[256]; - struct stat st; + struct stat64 st; FILE *f; int i, ret = -1; @@ -533,7 +537,7 @@ static int menu_do_last_cd_img(int is_get) out: if (is_get) { for (i = 0; last_selected_fname[0] == 0 - || stat(last_selected_fname, &st) != 0; i++) + || stat64(last_selected_fname, &st) != 0; i++) { if (i >= ARRAY_SIZE(defaults)) break; @@ -666,7 +670,7 @@ fail: static const char *filter_exts[] = { "bin", "img", "mdf", "iso", "cue", "z", - "bz", "znx", "pbp", "cbn" + "bz", "znx", "pbp", "cbn", NULL }; // rrrr rggg gggb bbbb @@ -681,7 +685,7 @@ static unsigned short fname2color(const char *fname) if (ext == NULL) return 0xffff; ext++; - for (i = 0; i < array_size(filter_exts); i++) + for (i = 0; filter_exts[i] != NULL; i++) if (strcasecmp(ext, filter_exts[i]) == 0) return 0x7bff; for (i = 0; i < array_size(other_exts); i++) @@ -721,8 +725,8 @@ static void draw_savestate_bg(int slot) if (f == NULL) return; - if (gzseek(f, 0x29933d, SEEK_SET) != 0x29933d) { - fprintf(stderr, "gzseek failed\n"); + if ((ret = (int)gzseek(f, 0x29933d, SEEK_SET)) != 0x29933d) { + fprintf(stderr, "gzseek failed: %d\n", ret); gzclose(f); return; } @@ -1696,10 +1700,10 @@ out: static void handle_memcard_sel(void) { - Config.Mcd1[0] = 0; + strcpy(Config.Mcd1, "none"); if (memcard1_sel != 0) snprintf(Config.Mcd1, sizeof(Config.Mcd1), ".%s%s", MEMCARD_DIR, memcards[memcard1_sel]); - Config.Mcd2[0] = 0; + strcpy(Config.Mcd2, "none"); if (memcard2_sel != 0) snprintf(Config.Mcd2, sizeof(Config.Mcd2), ".%s%s", MEMCARD_DIR, memcards[memcard2_sel]); LoadMcds(Config.Mcd1, Config.Mcd2); @@ -1828,7 +1832,6 @@ static void menu_bios_warn(void) // ------------ main menu ------------ static menu_entry e_menu_main[]; -void OnFile_Exit(); static void draw_frame_main(void) { @@ -1936,10 +1939,11 @@ static int run_bios(void) static int run_exe(void) { + const char *exts[] = { "exe", NULL }; const char *fname; fname = menu_loop_romsel(last_selected_fname, - sizeof(last_selected_fname), NULL); + sizeof(last_selected_fname), exts, NULL); if (fname == NULL) return -1; @@ -1994,7 +1998,8 @@ static int romsel_run(void) const char *fname; fname = menu_loop_romsel(last_selected_fname, - sizeof(last_selected_fname), optional_cdimg_filter); + sizeof(last_selected_fname), filter_exts, + optional_cdimg_filter); if (fname == NULL) return -1; @@ -2025,10 +2030,11 @@ static int romsel_run(void) static int swap_cd_image(void) { - char *fname; + const char *fname; fname = menu_loop_romsel(last_selected_fname, - sizeof(last_selected_fname), optional_cdimg_filter); + sizeof(last_selected_fname), filter_exts, + optional_cdimg_filter); if (fname == NULL) return -1; @@ -2074,11 +2080,12 @@ static int swap_cd_multidisk(void) static void load_pcsx_cht(void) { + const char *exts[] = { "cht", NULL }; + const char *fname; char path[256]; - char *fname; path[0] = 0; - fname = menu_loop_romsel(path, sizeof(path), NULL); + fname = menu_loop_romsel(path, sizeof(path), exts, NULL); if (fname == NULL) return; @@ -2145,8 +2152,8 @@ static int main_menu_handler(int id, int keys) in_menu_wait(PBTN_MOK|PBTN_MBACK, NULL, 70); break; case MA_MAIN_EXIT: - OnFile_Exit(); - break; + emu_core_ask_exit(); + return 1; default: lprintf("%s: something unknown selected\n", __FUNCTION__); break; @@ -2232,7 +2239,7 @@ void menu_loop(void) do { me_loop_d(e_menu_main, &sel, NULL, draw_frame_main); - } while (!ready_to_go); + } while (!ready_to_go && !g_emu_want_quit); /* wait until menu, ok, back is released */ while (in_menu_wait_any(NULL, 50) & (PBTN_MENU|PBTN_MOK|PBTN_MBACK))