X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=common%2Fmenu.h;h=21c589e1283061235f7c2140ac44f565c50bb816;hb=94a1d22e978309e92e355234be7c22ac885b7046;hp=74bf8e688be6a7d63b356d9978364085b5472c5b;hpb=0c9ae59222a6fa9af18dcc072fdfb06cfca124d6;p=libpicofe.git diff --git a/common/menu.h b/common/menu.h index 74bf8e6..21c589e 100644 --- a/common/menu.h +++ b/common/menu.h @@ -11,108 +11,20 @@ typedef enum MB_OPT_ENUM, } menu_behavior; -typedef enum -{ - MA_NONE = 1, - MA_MAIN_RESUME_GAME, - MA_MAIN_SAVE_STATE, - MA_MAIN_LOAD_STATE, - MA_MAIN_RESET_GAME, - MA_MAIN_LOAD_ROM, - MA_MAIN_CONTROLS, - MA_MAIN_CREDITS, - MA_MAIN_PATCHES, - MA_MAIN_EXIT, - MA_OPT_RENDERER, - MA_OPT_SCALING, - MA_OPT_ACC_SPRITES, - MA_OPT_SHOW_FPS, - MA_OPT_FRAMESKIP, - MA_OPT_ENABLE_SOUND, - MA_OPT_SOUND_QUALITY, - MA_OPT_ARM940_SOUND, - MA_OPT_6BUTTON_PAD, - MA_OPT_REGION, - MA_OPT_SRAM_STATES, - MA_OPT_CONFIRM_STATES, - MA_OPT_SAVE_SLOT, - MA_OPT_CPU_CLOCKS, - MA_OPT_SCD_OPTS, - MA_OPT_ADV_OPTS, - MA_OPT_DISP_OPTS, /* psp */ - MA_OPT_SAVECFG, - MA_OPT_SAVECFG_GAME, - MA_OPT_LOADCFG, - MA_OPT_INTERLACED, /* giz */ - MA_OPT_ROTATION, /* uiq */ - MA_OPT_TEARING_FIX, /* wiz */ - MA_OPT2_GAMMA, - MA_OPT2_A_SN_GAMMA, - MA_OPT2_DBLBUFF, /* giz */ - MA_OPT2_VSYNC, - MA_OPT2_ENABLE_Z80, - MA_OPT2_ENABLE_YM2612, - MA_OPT2_ENABLE_SN76496, - MA_OPT2_GZIP_STATES, - MA_OPT2_NO_LAST_ROM, - MA_OPT2_RAMTIMINGS, /* gp2x */ - MA_OPT2_SQUIDGEHACK, /* gp2x */ - MA_OPT2_STATUS_LINE, /* psp */ - MA_OPT2_NO_FRAME_LIMIT, /* psp */ - MA_OPT2_SVP_DYNAREC, - MA_OPT2_NO_SPRITE_LIM, - MA_OPT2_NO_IDLE_LOOPS, - MA_OPT2_DONE, - MA_OPT3_SCALE, /* psp (all OPT3) */ - MA_OPT3_HSCALE32, - MA_OPT3_HSCALE40, - MA_OPT3_PRES_NOSCALE, - MA_OPT3_PRES_SCALE43, - MA_OPT3_PRES_FULLSCR, - MA_OPT3_FILTERING, - MA_OPT3_VSYNC, - MA_OPT3_GAMMAA, - MA_OPT3_BLACKLVL, - MA_OPT3_DONE, - MA_CDOPT_TESTBIOS_USA, - MA_CDOPT_TESTBIOS_EUR, - MA_CDOPT_TESTBIOS_JAP, - MA_CDOPT_LEDS, - MA_CDOPT_CDDA, - MA_CDOPT_PCM, - MA_CDOPT_READAHEAD, - MA_CDOPT_SAVERAM, - MA_CDOPT_SCALEROT_CHIP, - MA_CDOPT_BETTER_SYNC, - MA_CDOPT_DONE, - MA_32XOPT_ENABLE_32X, - MA_32XOPT_RENDERER, - MA_32XOPT_PWM, - MA_32XOPT_MSH2_CYCLES, - MA_32XOPT_SSH2_CYCLES, - MA_CTRL_PLAYER1, - MA_CTRL_PLAYER2, - MA_CTRL_EMU, - MA_CTRL_TURBO_RATE, - MA_CTRL_DEV_FIRST, - MA_CTRL_DEV_NEXT, - MA_CTRL_DONE, -} menu_id; - typedef struct { const char *name; menu_behavior beh; - menu_id id; + int id; void *var; /* for on-off/range settings */ int mask; /* bit to toggle for on/off */ signed short min; /* for ranged integer settings, to be sign-extended */ signed short max; - int enabled:1; - int need_to_save:1; - int selectable:1; - int (*handler)(menu_id id, int keys); - const char * (*generate_name)(menu_id id, int *offs); + unsigned int enabled:1; + unsigned int need_to_save:1; + unsigned int selectable:1; + int (*handler)(int id, int keys); + const char * (*generate_name)(int id, int *offs); const void *data; const char *help; } menu_entry; @@ -138,6 +50,9 @@ typedef struct #define mee_range(name, id, var, min, max) \ { name, MB_OPT_RANGE, id, &(var), 0, min, max, 1, 1, 1, NULL, NULL, NULL, NULL } +#define mee_range_hide(name, id, var, min, max) \ + { name, MB_OPT_RANGE, id, &(var), 0, min, max, 0, 1, 0, NULL, NULL, NULL, NULL } + #define mee_cust_s_h(name, id, need_save, handler, name_func, help) \ { name, MB_OPT_CUSTOM, id, NULL, 0, 0, 0, 1, need_save, 1, handler, name_func, NULL, help } @@ -171,13 +86,21 @@ typedef struct int mask; } me_bind_action; -extern me_bind_action me_ctrl_actions[15]; +extern me_bind_action me_ctrl_actions[]; extern me_bind_action emuctrl_actions[]; // platform code +extern void *g_menubg_src_ptr; extern void *g_menubg_ptr; +extern void *g_menuscreen_ptr; +#if MSCREEN_SIZE_FIXED +#define g_menuscreen_w MSCREEN_WIDTH +#define g_menuscreen_h MSCREEN_HEIGHT +#else +extern int g_menuscreen_w; +extern int g_menuscreen_h; +#endif void menu_init(void); -void menu_plat_setup(int is_wiz); void text_out16(int x, int y, const char *texto, ...); void me_update_msg(const char *msg);