diff --git a/input/connect/connect_nesusb.c b/input/connect/connect_nesusb.c index b39936be06..797f83e7ae 100644 --- a/input/connect/connect_nesusb.c +++ b/input/connect/connect_nesusb.c @@ -64,7 +64,7 @@ static void hidpad_nesusb_get_buttons(void *data, retro_bits_t* state) struct hidpad_nesusb_data *device = (struct hidpad_nesusb_data*)data; if (device) { - RARCH_INPUT_STATE_COPY16_PTR(state, device->buttons); + BITS_COPY16_PTR(state, device->buttons); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/connect/connect_ps2adapter.c b/input/connect/connect_ps2adapter.c index 29b2c932fe..c79aac8df3 100644 --- a/input/connect/connect_ps2adapter.c +++ b/input/connect/connect_ps2adapter.c @@ -64,7 +64,7 @@ static void hidpad_ps2adapter_get_buttons(void *data, retro_bits_t *state) struct hidpad_ps2adapter_data *device = (struct hidpad_ps2adapter_data*)data; if (device) { - RARCH_INPUT_STATE_COPY16_PTR(state, device->buttons); + BITS_COPY16_PTR(state, device->buttons); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/connect/connect_ps3.c b/input/connect/connect_ps3.c index de4e8fa3ec..6ef05f8e4e 100644 --- a/input/connect/connect_ps3.c +++ b/input/connect/connect_ps3.c @@ -111,7 +111,7 @@ static void hidpad_ps3_get_buttons(void *data, retro_bits_t *state) if ( device ) { /*copy first 16 bits - standard RetroPad controls*/ - RARCH_INPUT_STATE_COPY16_PTR(state, device->buttons); + BITS_COPY16_PTR(state, device->buttons); /*PS button?*/ if (device->buttons & 0x10000) diff --git a/input/connect/connect_psxadapter.c b/input/connect/connect_psxadapter.c index a4fcf78587..03193fd606 100644 --- a/input/connect/connect_psxadapter.c +++ b/input/connect/connect_psxadapter.c @@ -64,7 +64,7 @@ static void hidpad_psxadapter_get_buttons(void *data, retro_bits_t *state) struct hidpad_psxadapter_data *device = (struct hidpad_psxadapter_data*)data; if (device) { - RARCH_INPUT_STATE_COPY16_PTR(state, device->buttons); + BITS_COPY16_PTR(state, device->buttons); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/connect/connect_snesusb.c b/input/connect/connect_snesusb.c index b7cb594905..51570d82fa 100644 --- a/input/connect/connect_snesusb.c +++ b/input/connect/connect_snesusb.c @@ -65,7 +65,7 @@ static void hidpad_snesusb_get_buttons(void *data, retro_bits_t *state) struct hidpad_snesusb_data *device = (struct hidpad_snesusb_data*)data; if (device) { - RARCH_INPUT_STATE_COPY16_PTR(state, device->buttons); + BITS_COPY16_PTR(state, device->buttons); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/connect/connect_wii.c b/input/connect/connect_wii.c index ec4ceaaa72..83ac50d736 100644 --- a/input/connect/connect_wii.c +++ b/input/connect/connect_wii.c @@ -677,9 +677,9 @@ static void hidpad_wii_get_buttons(void *data, retro_bits_t *state) struct connect_wii_wiimote_t* device = (struct connect_wii_wiimote_t*)data; if ( device ) { - uint32_t b; - b = device->btns | (device->exp.cc.classic.btns << 16); /*broken? this doesn't match retropad!!*/ - RARCH_INPUT_STATE_COPY32_PTR(state, b); + /* TODO/FIXME - Broken? this doesn't match retropad! */ + uint32_t b = device->btns | (device->exp.cc.classic.btns << 16); + BITS_COPY32_PTR(state, b); } } diff --git a/input/connect/connect_wiiugca.c b/input/connect/connect_wiiugca.c index 69ceaa0739..cd0ea8b33e 100644 --- a/input/connect/connect_wiiugca.c +++ b/input/connect/connect_wiiugca.c @@ -68,7 +68,7 @@ static void hidpad_wiiugca_get_buttons(void *data, retro_bits_t *state) struct hidpad_wiiugca_data *device = (struct hidpad_wiiugca_data*)data; if (device) { - RARCH_INPUT_STATE_COPY16_PTR(state, device->buttons); + BITS_COPY16_PTR(state, device->buttons); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/ctr_joypad.c b/input/drivers_joypad/ctr_joypad.c index 7350c71d78..a98fce76fc 100644 --- a/input/drivers_joypad/ctr_joypad.c +++ b/input/drivers_joypad/ctr_joypad.c @@ -74,7 +74,7 @@ static void ctr_joypad_get_buttons(unsigned port_num, retro_bits_t *state) { if ( port_num < MAX_PADS ) { - RARCH_INPUT_STATE_COPY16_PTR( state, pad_state ); + BITS_COPY16_PTR( state, pad_state ); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/gx_joypad.c b/input/drivers_joypad/gx_joypad.c index 2dc568df78..bccc6f467b 100644 --- a/input/drivers_joypad/gx_joypad.c +++ b/input/drivers_joypad/gx_joypad.c @@ -166,7 +166,7 @@ static void gx_joypad_get_buttons(unsigned port, retro_bits_t *state) { if (port < MAX_PADS) { - RARCH_INPUT_STATE_COPY16_PTR( state, pad_state[port] ); + BITS_COPY16_PTR( state, pad_state[port] ); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/linuxraw_joypad.c b/input/drivers_joypad/linuxraw_joypad.c index f8cf299464..c43ea0b93a 100644 --- a/input/drivers_joypad/linuxraw_joypad.c +++ b/input/drivers_joypad/linuxraw_joypad.c @@ -331,7 +331,7 @@ static void linuxraw_joypad_get_buttons(unsigned port, retro_bits_t *state) const struct linuxraw_joypad *pad = (const struct linuxraw_joypad*)&linuxraw_pads[port]; if (pad) { - RARCH_INPUT_STATE_COPY16_PTR(state, pad->buttons); + BITS_COPY16_PTR(state, pad->buttons); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/mfi_joypad.m b/input/drivers_joypad/mfi_joypad.m index 10964893f0..94f56b2147 100644 --- a/input/drivers_joypad/mfi_joypad.m +++ b/input/drivers_joypad/mfi_joypad.m @@ -223,7 +223,7 @@ static bool apple_gamecontroller_joypad_button(unsigned port, uint16_t joykey) static void apple_gamecontroller_joypad_get_buttons(unsigned port, retro_bits_t *state) { - RARCH_INPUT_STATE_COPY16_PTR(state, mfi_buttons[port]); + BITS_COPY16_PTR(state, mfi_buttons[port]); } static int16_t apple_gamecontroller_joypad_axis(unsigned port, uint32_t joyaxis) diff --git a/input/drivers_joypad/parport_joypad.c b/input/drivers_joypad/parport_joypad.c index 61879842c8..f24c2706a5 100644 --- a/input/drivers_joypad/parport_joypad.c +++ b/input/drivers_joypad/parport_joypad.c @@ -345,7 +345,7 @@ static void parport_joypad_get_buttons(unsigned port, retro_bits_t *state) const struct parport_joypad *pad = (const struct parport_joypad*)&parport_pads[port]; if (pad) { - RARCH_INPUT_STATE_COPY16_PTR(state, pad->buttons); + BITS_COPY16_PTR(state, pad->buttons); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/ps3_joypad.c b/input/drivers_joypad/ps3_joypad.c index cd11cda4b7..f37822642d 100644 --- a/input/drivers_joypad/ps3_joypad.c +++ b/input/drivers_joypad/ps3_joypad.c @@ -72,7 +72,7 @@ static void ps3_joypad_get_buttons(unsigned port_num, retro_bits_t *state) { if (port_num < MAX_PADS) { - RARCH_INPUT_STATE_COPY16_PTR( state, pad_state[port_num] ); + BITS_COPY16_PTR( state, pad_state[port_num] ); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/psp_joypad.c b/input/drivers_joypad/psp_joypad.c index c86ee65a0b..60ca2daff3 100644 --- a/input/drivers_joypad/psp_joypad.c +++ b/input/drivers_joypad/psp_joypad.c @@ -128,7 +128,7 @@ static void psp_joypad_get_buttons(unsigned port_num, retro_bits_t *state) { if (port_num < PSP_MAX_PADS) { - RARCH_INPUT_STATE_COPY16_PTR( state, pad_state[port_num] ); + BITS_COPY16_PTR( state, pad_state[port_num] ); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/udev_joypad.c b/input/drivers_joypad/udev_joypad.c index 50cfec8f20..283e1bd38b 100644 --- a/input/drivers_joypad/udev_joypad.c +++ b/input/drivers_joypad/udev_joypad.c @@ -609,7 +609,7 @@ static void udev_joypad_get_buttons(unsigned port, retro_bits_t *state) const struct udev_joypad *pad = (const struct udev_joypad*)&udev_pads[port]; if (pad) { - RARCH_INPUT_STATE_COPY16_PTR( state, pad->buttons ); + BITS_COPY16_PTR( state, pad->buttons ); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/drivers_joypad/wiiu_joypad.c b/input/drivers_joypad/wiiu_joypad.c index 67f8708b25..8a3d8189db 100644 --- a/input/drivers_joypad/wiiu_joypad.c +++ b/input/drivers_joypad/wiiu_joypad.c @@ -139,7 +139,7 @@ static void wiiu_joypad_get_buttons(unsigned port_num, retro_bits_t *state) { if (port_num < MAX_PADS) { - RARCH_INPUT_STATE_COPY16_PTR( state, pad_state[port_num] ); + BITS_COPY16_PTR( state, pad_state[port_num] ); } else BIT128_CLAR_ALL_PTR(state); diff --git a/input/drivers_joypad/xdk_joypad.c b/input/drivers_joypad/xdk_joypad.c index 92fa8b02eb..6553346160 100644 --- a/input/drivers_joypad/xdk_joypad.c +++ b/input/drivers_joypad/xdk_joypad.c @@ -80,7 +80,7 @@ static void xdk_joypad_get_buttons(unsigned port_num, retro_bits_t *state) { if (port_num < MAX_PADS) { - RARCH_INPUT_STATE_COPY16_PTR( state, pad_state[port_num] ); + BITS_COPY16_PTR( state, pad_state[port_num] ); } else BIT128_CLEAR_ALL_PTR(state); diff --git a/input/input_defines.h b/input/input_defines.h index 489122d3b1..b005e90f58 100644 --- a/input/input_defines.h +++ b/input/input_defines.h @@ -158,33 +158,6 @@ enum analog_dpad_mode #define GET_HAT_DIR(x) (x & HAT_MASK) #define GET_HAT(x) (x & (~HAT_MASK)) -#define RARCH_INPUT_STATE_ANY_SET(a) ( ((a).data[0])||((a).data[1])||((a).data[2])||((a).data[3])|| \ - ((a).data[4])||((a).data[5])||((a).data[6])||((a).data[7]) ) -#define RARCH_INPUT_STATE_ANY_SET_PTR(a) ( ((a)->data[0])||((a)->data[1])||((a)->data[2])||((a)->data[3])|| \ - ((a)->data[4])||((a)->data[5])||((a)->data[6])||((a)->data[7]) ) -#define RARCH_INPUT_STATE_CLEAR_BITS(a,b) \ - ((a).data[0])&=(~((b).data[0])); \ - ((a).data[1])&=(~((b).data[1])); \ - ((a).data[2])&=(~((b).data[2])); \ - ((a).data[3])&=(~((b).data[3])); \ - ((a).data[4])&=(~((b).data[4])); \ - ((a).data[5])&=(~((b).data[5])); \ - ((a).data[6])&=(~((b).data[6])); \ - ((a).data[7])&=(~((b).data[7])); - -#define RARCH_INPUT_STATE_COPY16_PTR(a,bits) \ -{ \ - BIT128_CLEAR_ALL_PTR(a); \ - ((a)->data[0] = (bits) & 0xffff); \ -} - -#define RARCH_INPUT_STATE_COPY32_PTR(a,bits) \ -{ \ - BIT128_CLEAR_ALL_PTR(a); \ - ((a)->data[0] = (bits)); \ -} - - RETRO_END_DECLS #endif diff --git a/libretro-common/include/retro_miscellaneous.h b/libretro-common/include/retro_miscellaneous.h index e42f6b345b..c69afed90b 100644 --- a/libretro-common/include/retro_miscellaneous.h +++ b/libretro-common/include/retro_miscellaneous.h @@ -58,6 +58,33 @@ #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) +#define BITS_ANY_SET(a) ( ((a).data[0])||((a).data[1])||((a).data[2])||((a).data[3])|| \ + ((a).data[4])||((a).data[5])||((a).data[6])||((a).data[7]) ) +#define BITS_ANY_SET_PTR(a) ( ((a)->data[0])||((a)->data[1])||((a)->data[2])||((a)->data[3])|| \ + ((a)->data[4])||((a)->data[5])||((a)->data[6])||((a)->data[7]) ) +#define BITS_CLEAR_BITS(a,b) \ + ((a).data[0])&=(~((b).data[0])); \ + ((a).data[1])&=(~((b).data[1])); \ + ((a).data[2])&=(~((b).data[2])); \ + ((a).data[3])&=(~((b).data[3])); \ + ((a).data[4])&=(~((b).data[4])); \ + ((a).data[5])&=(~((b).data[5])); \ + ((a).data[6])&=(~((b).data[6])); \ + ((a).data[7])&=(~((b).data[7])); + +#define BITS_COPY16_PTR(a,bits) \ +{ \ + BIT128_CLEAR_ALL_PTR(a); \ + ((a)->data[0] = (bits) & 0xffff); \ +} + +#define BITS_COPY32_PTR(a,bits) \ +{ \ + BIT128_CLEAR_ALL_PTR(a); \ + ((a)->data[0] = (bits)); \ +} + + #define BIT_SET(a, bit) ((a)[(bit) >> 3] |= (1 << ((bit) & 7))) #define BIT_CLEAR(a, bit) ((a)[(bit) >> 3] &= ~(1 << ((bit) & 7))) #define BIT_GET(a, bit) (((a).data[(bit) >> 3] >> ((bit) & 7)) & 1) diff --git a/menu/menu_event.c b/menu/menu_event.c index 6af08b3e5a..a492aca726 100644 --- a/menu/menu_event.c +++ b/menu/menu_event.c @@ -165,7 +165,7 @@ unsigned menu_event(retro_bits_t* p_input, retro_bits_t* p_trigger_input) ok_old = ok_current; - if (RARCH_INPUT_STATE_ANY_SET_PTR(p_input)) + if (BITS_ANY_SET_PTR(p_input)) { if (!first_held) { diff --git a/retroarch.c b/retroarch.c index f9d7b6aae9..d7a2d3170a 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2397,7 +2397,7 @@ static enum runloop_state runloop_check_state( if (input_driver_flushing_input) { input_driver_flushing_input = false; - if (RARCH_INPUT_STATE_ANY_SET(current_input)) + if (BITS_ANY_SET(current_input)) { BIT128_CLEAR_ALL(current_input); if (runloop_paused) @@ -2537,12 +2537,10 @@ static enum runloop_state runloop_check_state( retro_ctx.poll_cb(); { - retro_bits_t trigger_input; enum menu_action action; - bool focused; - - trigger_input = current_input; - RARCH_INPUT_STATE_CLEAR_BITS(trigger_input, old_input); + bool focused = false; + retro_bits_t trigger_input = current_input; + BITS_CLEAR_BITS(trigger_input, old_input); action = (enum menu_action)menu_event(¤t_input, &trigger_input); focused = pause_nonactive ? is_focused : true;