From fdc4f3058f8a78f43b47b723aa5f62e720249cdc Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 21 Mar 2015 08:27:30 +0100 Subject: [PATCH] Simplify runloop.c - get rid of convenience macros --- runloop.c | 83 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 62 insertions(+), 21 deletions(-) diff --git a/runloop.c b/runloop.c index f628cb19e5..8de6219aee 100644 --- a/runloop.c +++ b/runloop.c @@ -37,17 +37,6 @@ static struct runloop *g_runloop; static struct global *g_extern; -/* Convenience macros. */ -#define check_oneshot_func(trigger_input) (check_is_oneshot(BIT64_GET(trigger_input, RARCH_FRAMEADVANCE), BIT64_GET(trigger_input, RARCH_REWIND))) -#define check_slowmotion_func(input) (check_slowmotion(BIT64_GET(input, RARCH_SLOWMOTION))) -#define check_quit_key_func(input) (BIT64_GET(input, RARCH_QUIT_KEY)) -#define check_pause_func(input) (check_pause(BIT64_GET(input, RARCH_PAUSE_TOGGLE), BIT64_GET(input, RARCH_FRAMEADVANCE))) -#define check_stateslots_func(trigger_input) (check_stateslots(BIT64_GET(trigger_input, RARCH_STATE_SLOT_PLUS), BIT64_GET(trigger_input, RARCH_STATE_SLOT_MINUS))) -#define check_rewind_func(input) (check_rewind(BIT64_GET(input, RARCH_REWIND))) -#define check_fast_forward_button_func(input, old_input, trigger_input) (check_fast_forward_button(BIT64_GET(trigger_input, RARCH_FAST_FORWARD_KEY), BIT64_GET(input, RARCH_FAST_FORWARD_HOLD_KEY), BIT64_GET(old_input, RARCH_FAST_FORWARD_HOLD_KEY))) -#define check_enter_menu_func(input) (BIT64_GET(input, RARCH_MENU_TOGGLE)) -#define check_shader_dir_func(trigger_input) (check_shader_dir(BIT64_GET(trigger_input, RARCH_SHADER_NEXT), BIT64_GET(trigger_input, RARCH_SHADER_PREV))) - /** * set_volume: * @gain : amount of gain to be applied to current volume level. @@ -82,7 +71,7 @@ static void set_volume(float gain) * * Returns: true if libretro pause key was toggled, otherwise false. **/ -static bool check_pause(bool pressed, bool frameadvance_pressed) +static bool check_pause(bool pause_pressed, bool frameadvance_pressed) { runloop_t *runloop = rarch_main_get_ptr(); static bool old_focus = true; @@ -92,12 +81,12 @@ static bool check_pause(bool pressed, bool frameadvance_pressed) settings_t *settings = config_get_ptr(); /* FRAMEADVANCE will set us into pause mode. */ - pressed |= !runloop->is_paused && frameadvance_pressed; + pause_pressed |= !runloop->is_paused && frameadvance_pressed; if (settings->pause_nonactive) focus = video_driver_has_focus(); - if (focus && pressed) + if (focus && pause_pressed) cmd = RARCH_CMD_PAUSE_TOGGLE; else if (focus && !old_focus) cmd = RARCH_CMD_UNPAUSE; @@ -115,6 +104,12 @@ static bool check_pause(bool pressed, bool frameadvance_pressed) return true; } +static INLINE bool check_pause_func(retro_input_t input) +{ + bool pause_pressed = BIT64_GET(input, RARCH_PAUSE_TOGGLE); + bool frameadvance_pressed = BIT64_GET(input, RARCH_FRAMEADVANCE); + return check_pause(pause_pressed, frameadvance_pressed); +} /** * check_is_oneshot: * @oneshot_pressed : is this a oneshot frame? @@ -133,6 +128,13 @@ static INLINE bool check_is_oneshot(bool oneshot_pressed, bool rewind_pressed) return (oneshot_pressed | rewind_pressed); } +static INLINE bool check_oneshot_func(retro_input_t trigger_input) +{ + bool oneshot_pressed = BIT64_GET(trigger_input, RARCH_FRAMEADVANCE); + bool rewind_pressed = BIT64_GET(trigger_input, RARCH_REWIND); + return check_is_oneshot(oneshot_pressed, rewind_pressed); +} + /** * check_fast_forward_button: * @fastforward_pressed : is fastforward key pressed? @@ -161,6 +163,15 @@ static void check_fast_forward_button(bool fastforward_pressed, driver_set_nonblock_state(driver->nonblock_state); } +static void check_fast_forward_button_func(retro_input_t input, + retro_input_t old_input, retro_input_t trigger_input) +{ + bool fastforward_pressed = BIT64_GET(trigger_input, RARCH_FAST_FORWARD_KEY); + bool hold_pressed = BIT64_GET(input, RARCH_FAST_FORWARD_HOLD_KEY); + bool old_hold_pressed = BIT64_GET(old_input, RARCH_FAST_FORWARD_HOLD_KEY); + check_fast_forward_button(fastforward_pressed, hold_pressed, old_hold_pressed); +} + /** * check_stateslots: * @pressed_increase : is state slot increase key pressed? @@ -193,6 +204,13 @@ static void check_stateslots(bool pressed_increase, bool pressed_decrease) RARCH_LOG("%s\n", msg); } +static void check_stateslots_func(retro_input_t trigger_input) +{ + bool pressed_increase = BIT64_GET(trigger_input, RARCH_STATE_SLOT_PLUS); + bool pressed_decrease = BIT64_GET(trigger_input, RARCH_STATE_SLOT_MINUS); + check_stateslots(pressed_increase, pressed_decrease); +} + static INLINE void setup_rewind_audio(void) { unsigned i; @@ -289,19 +307,25 @@ static void check_rewind(bool pressed) retro_set_rewind_callbacks(); } +static INLINE void check_rewind_func(retro_input_t input) +{ + bool rewind_pressed = BIT64_GET(input, RARCH_REWIND); + check_rewind(rewind_pressed); +} + /** * check_slowmotion: - * @pressed : was slow motion key pressed or held? + * @slowmotion_pressed : was slow motion key pressed or held? * * Checks if slowmotion toggle/hold was being pressed and/or held. **/ -static void check_slowmotion(bool pressed) +static void check_slowmotion(bool slowmotion_pressed) { runloop_t *runloop = rarch_main_get_ptr(); settings_t *settings = config_get_ptr(); global_t *global = global_get_ptr(); - runloop->is_slowmotion = pressed; + runloop->is_slowmotion = slowmotion_pressed; if (!runloop->is_slowmotion) return; @@ -313,6 +337,12 @@ static void check_slowmotion(bool pressed) "Slow motion rewind." : "Slow motion.", 0, 30, true); } +static INLINE void check_slowmotion_func(retro_input_t input) +{ + bool slowmotion_pressed = BIT64_GET(input, RARCH_SLOWMOTION); + check_slowmotion(slowmotion_pressed); +} + static bool check_movie_init(void) { char path[PATH_MAX_LENGTH], msg[PATH_MAX_LENGTH]; @@ -467,6 +497,13 @@ static void check_shader_dir(bool pressed_next, bool pressed_prev) RARCH_WARN("Failed to apply shader.\n"); } +static INLINE void check_shader_dir_func(retro_input_t trigger_input) +{ + bool shader_next_pressed = BIT64_GET(trigger_input, RARCH_SHADER_NEXT); + bool shader_prev_pressed = BIT64_GET(trigger_input, RARCH_SHADER_PREV); + check_shader_dir(shader_next_pressed, shader_prev_pressed); +} + /** * check_cheats: * @trigger_input : difference' input sample - difference @@ -525,6 +562,8 @@ static int do_pre_state_checks( { runloop_t *runloop = rarch_main_get_ptr(); global_t *global = global_get_ptr(); + bool menu_pressed = false; + if (BIT64_GET(trigger_input, RARCH_OVERLAY_NEXT)) rarch_main_command(RARCH_CMD_OVERLAY_NEXT); @@ -539,7 +578,8 @@ static int do_pre_state_checks( rarch_main_command(RARCH_CMD_GRAB_MOUSE_TOGGLE); #ifdef HAVE_MENU - if (check_enter_menu_func(trigger_input) || (global->libretro_dummy)) + menu_pressed = BIT64_GET(trigger_input, RARCH_MENU_TOGGLE); + if (menu_pressed || (global->libretro_dummy)) do_state_check_menu_toggle(); #endif @@ -679,12 +719,13 @@ static int do_state_checks( **/ static INLINE int time_to_exit(retro_input_t input) { - runloop_t *runloop = rarch_main_get_ptr(); - global_t *global = global_get_ptr(); + runloop_t *runloop = rarch_main_get_ptr(); + global_t *global = global_get_ptr(); + bool quit_key_pressed = BIT64_GET(input, RARCH_QUIT_KEY); if ( global->system.shutdown - || check_quit_key_func(input) + || quit_key_pressed || (runloop->frames.video.max && runloop->frames.video.count >= runloop->frames.video.max) || (global->bsv.movie_end && global->bsv.eof_exit)