diff --git a/driver.h b/driver.h index 0b0aea4998..8a030251e8 100644 --- a/driver.h +++ b/driver.h @@ -674,19 +674,19 @@ extern menu_ctx_driver_backend_t menu_ctx_backend_lakka; extern rarch_joypad_driver_t *joypad_drivers[]; -#define check_netplay_flip_func(trigger_input) check_netplay_flip(BIND_PRESSED(trigger_input, RARCH_NETPLAY_FLIP), BIND_PRESSED(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY)) -#define check_overlay_func(input, old_input) rarch_check_overlay(BIND_PRESSED(input, RARCH_OVERLAY_NEXT), BIND_PRESSED(old_input, RARCH_OVERLAY_NEXT)) -#define check_oneshot_func(trigger_input) (check_is_oneshot(BIND_PRESSED(trigger_input, RARCH_FRAMEADVANCE), BIND_PRESSED(trigger_input, RARCH_REWIND))) -#define check_slowmotion_func(input) check_slowmotion(BIND_PRESSED(input, RARCH_SLOWMOTION)) -#define check_shader_dir_func(trigger_input) check_shader_dir(BIND_PRESSED(trigger_input, RARCH_SHADER_NEXT), BIND_PRESSED(trigger_input, RARCH_SHADER_PREV)) -#define check_enter_menu_func(input) BIND_PRESSED(input, RARCH_MENU_TOGGLE) -#define check_mute_func(input, old_input) check_mute(BIND_PRESSED(input, RARCH_MUTE), BIND_PRESSED(old_input, RARCH_MUTE)) -#define check_fullscreen_func(trigger_input) rarch_check_fullscreen(BIND_PRESSED(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY)) -#define check_fast_forward_button_func(input, old_input, trigger_input) check_fast_forward_button(BIND_PRESSED(trigger_input, RARCH_FAST_FORWARD_KEY), BIND_PRESSED(input, RARCH_FAST_FORWARD_HOLD_KEY), BIND_PRESSED(old_input, RARCH_FAST_FORWARD_HOLD_KEY)) -#define check_rewind_func(input) check_rewind(BIND_PRESSED(input, RARCH_REWIND)) -#define check_stateslots_func(trigger_input) check_stateslots(BIND_PRESSED(trigger_input, RARCH_STATE_SLOT_PLUS), BIND_PRESSED(trigger_input, RARCH_STATE_SLOT_MINUS)) -#define check_pause_func(input) check_pause(BIND_PRESSED(input, RARCH_PAUSE_TOGGLE), BIND_PRESSED(input, RARCH_FRAMEADVANCE)) -#define check_quit_key_func(input) BIND_PRESSED(input, RARCH_QUIT_KEY) +#define check_netplay_flip_func(trigger_input) check_netplay_flip(BIT64_GET(trigger_input, RARCH_NETPLAY_FLIP), BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY)) +#define check_overlay_func(input, old_input) rarch_check_overlay(BIT64_GET(input, RARCH_OVERLAY_NEXT), BIT64_GET(old_input, RARCH_OVERLAY_NEXT)) +#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_shader_dir_func(trigger_input) check_shader_dir(BIT64_GET(trigger_input, RARCH_SHADER_NEXT), BIT64_GET(trigger_input, RARCH_SHADER_PREV)) +#define check_enter_menu_func(input) BIT64_GET(input, RARCH_MENU_TOGGLE) +#define check_mute_func(input, old_input) check_mute(BIT64_GET(input, RARCH_MUTE), BIT64_GET(old_input, RARCH_MUTE)) +#define check_fullscreen_func(trigger_input) rarch_check_fullscreen(BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY)) +#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_rewind_func(input) check_rewind(BIT64_GET(input, RARCH_REWIND)) +#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_pause_func(input) check_pause(BIT64_GET(input, RARCH_PAUSE_TOGGLE), BIT64_GET(input, RARCH_FRAMEADVANCE)) +#define check_quit_key_func(input) BIT64_GET(input, RARCH_QUIT_KEY) #ifdef __cplusplus } diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 6e9c90f4a8..32e47fffc2 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -313,7 +313,7 @@ int menu_iterate(retro_input_t input, return -1; #ifdef HAVE_OVERLAY - if (BIND_PRESSED(trigger_input, RARCH_OVERLAY_NEXT)) + if (BIT64_GET(trigger_input, RARCH_OVERLAY_NEXT)) input_overlay_next(driver.overlay); #endif check_fullscreen_func(trigger_input); diff --git a/miscellaneous.h b/miscellaneous.h index f77b0db656..4f3dd8dbca 100644 --- a/miscellaneous.h +++ b/miscellaneous.h @@ -116,11 +116,14 @@ typedef struct uint32_t data[8]; } rarch_bits_t; -#define BIT_SET(a, bit) ((a).data[(bit) >> 5] |= 1 << ((bit) & 31)) -#define BIT_CLEAR(a, bit) ((a).data[(bit) >> 5] &= ~(1 << ((bit) & 31))) -#define BIT_GET(a, bit) ((a).data[(bit) >> 5] & (1 << ((bit) & 31))) -#define BIT_CLEAR_ALL(a) memset(&(a), 0, sizeof(a)); +#define BIT128_SET(a, bit) ((a).data[(bit) >> 5] |= 1 << ((bit) & 31)) +#define BIT128_CLEAR(a, bit) ((a).data[(bit) >> 5] &= ~(1 << ((bit) & 31))) +#define BIT128_GET(a, bit) ((a).data[(bit) >> 5] & (1 << ((bit) & 31))) +#define BIT128_CLEAR_ALL(a) memset(&(a), 0, sizeof(a)); -#define BIND_PRESSED(a, bit) (((a) & (1ULL << ((bit)))) != 0) +#define BIT64_SET(a, bit) ((a) |= 1ULL << (bit)) +#define BIT64_CLEAR(a, bit) ((a) &= 1ULL << (bit)) +#define BIT64_GET(a, bit) (((a) & (1ULL << (bit))) != 0) +#define BIT64_CLEAR_ALL(a) ((a) = 0) #endif diff --git a/runloop.c b/runloop.c index 2f108a74d9..b63cfbc592 100644 --- a/runloop.c +++ b/runloop.c @@ -421,22 +421,22 @@ static int do_state_checks( retro_input_t input, retro_input_t old_input, retro_input_t trigger_input) { - if (BIND_PRESSED(trigger_input, RARCH_SCREENSHOT)) + if (BIT64_GET(trigger_input, RARCH_SCREENSHOT)) rarch_main_command(RARCH_CMD_TAKE_SCREENSHOT); - if (BIND_PRESSED(trigger_input, RARCH_MUTE)) + if (BIT64_GET(trigger_input, RARCH_MUTE)) check_mute(); - if (BIND_PRESSED(input, RARCH_VOLUME_UP)) + if (BIT64_GET(input, RARCH_VOLUME_UP)) set_volume(0.5f); - else if (BIND_PRESSED(input, RARCH_VOLUME_DOWN)) + else if (BIT64_GET(input, RARCH_VOLUME_DOWN)) set_volume(-0.5f); - if (BIND_PRESSED(trigger_input, RARCH_GRAB_MOUSE_TOGGLE)) + if (BIT64_GET(trigger_input, RARCH_GRAB_MOUSE_TOGGLE)) check_grab_mouse_toggle(); #ifdef HAVE_OVERLAY - if (BIND_PRESSED(trigger_input, RARCH_OVERLAY_NEXT)) + if (BIT64_GET(trigger_input, RARCH_OVERLAY_NEXT)) input_overlay_next(driver.overlay); #endif @@ -464,33 +464,33 @@ static int do_state_checks( check_stateslots_func(trigger_input); - if (BIND_PRESSED(trigger_input, RARCH_SAVE_STATE_KEY)) + if (BIT64_GET(trigger_input, RARCH_SAVE_STATE_KEY)) rarch_main_command(RARCH_CMD_SAVE_STATE); - else if (BIND_PRESSED(trigger_input, RARCH_LOAD_STATE_KEY)) + else if (BIT64_GET(trigger_input, RARCH_LOAD_STATE_KEY)) rarch_main_command(RARCH_CMD_LOAD_STATE); check_rewind_func(input); check_slowmotion_func(input); - if (BIND_PRESSED(trigger_input, RARCH_MOVIE_RECORD_TOGGLE)) + if (BIT64_GET(trigger_input, RARCH_MOVIE_RECORD_TOGGLE)) check_movie(); check_shader_dir_func(trigger_input); - if (BIND_PRESSED(trigger_input, RARCH_CHEAT_INDEX_PLUS)) + if (BIT64_GET(trigger_input, RARCH_CHEAT_INDEX_PLUS)) cheat_manager_index_next(g_extern.cheat); - else if (BIND_PRESSED(trigger_input, RARCH_CHEAT_INDEX_MINUS)) + else if (BIT64_GET(trigger_input, RARCH_CHEAT_INDEX_MINUS)) cheat_manager_index_prev(g_extern.cheat); - else if (BIND_PRESSED(trigger_input, RARCH_CHEAT_TOGGLE)) + else if (BIT64_GET(trigger_input, RARCH_CHEAT_TOGGLE)) cheat_manager_toggle(g_extern.cheat); - if (BIND_PRESSED(trigger_input, RARCH_DISK_EJECT_TOGGLE)) + if (BIT64_GET(trigger_input, RARCH_DISK_EJECT_TOGGLE)) rarch_main_command(RARCH_CMD_DISK_EJECT_TOGGLE); - else if (BIND_PRESSED(trigger_input, RARCH_DISK_NEXT)) + else if (BIT64_GET(trigger_input, RARCH_DISK_NEXT)) rarch_main_command(RARCH_CMD_DISK_NEXT); - if (BIND_PRESSED(trigger_input, RARCH_RESET)) + if (BIT64_GET(trigger_input, RARCH_RESET)) rarch_main_command(RARCH_CMD_RESET); exit: