mirror of
https://github.com/libretro/RetroArch
synced 2025-02-15 00:40:06 +00:00
Cleanups
This commit is contained in:
parent
332aee5b0f
commit
53efad05c6
@ -25,6 +25,7 @@
|
||||
|
||||
#include <stdint.h>
|
||||
#include <boolean.h>
|
||||
#include <retro_inline.h>
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
@ -41,6 +42,24 @@
|
||||
#include <compat/msvc.h>
|
||||
#endif
|
||||
|
||||
static INLINE void bits_clear_bits(uint32_t *a, uint32_t *b, uint32_t count)
|
||||
{
|
||||
uint32_t i;
|
||||
for (i = 0; i < count;i++)
|
||||
a[i] &= b[i];
|
||||
}
|
||||
|
||||
static INLINE bool bits_any_set(uint32_t* ptr, uint32_t count)
|
||||
{
|
||||
uint32_t i;
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
if (ptr[i] != 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifndef PATH_MAX_LENGTH
|
||||
#if defined(_XBOX1) || defined(_3DS) || defined(PSP) || defined(GEKKO)|| defined(WIIU)
|
||||
#define PATH_MAX_LENGTH 512
|
||||
@ -57,47 +76,11 @@
|
||||
#define MIN(a, b) ((a) < (b) ? (a) : (b))
|
||||
#endif
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
|
||||
#define BITS_GET_ELEM(a, i) ((a).data[i])
|
||||
#define BITS_GET_ELEM_PTR(a, i) ((a)->data[i])
|
||||
|
||||
static inline bool bits_any_set(uint32_t* ptr, uint32_t count)
|
||||
{
|
||||
uint32_t i;
|
||||
for (i=0;i<count;i++)
|
||||
{
|
||||
if (ptr[i] != 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#define BITS_ANY_SET(a) bits_any_set((a).data, sizeof((a).data)/sizeof((a).data[0])
|
||||
#define BITS_ANY_SET_PTR(a) BITS_ANY_SET(*a)
|
||||
|
||||
static inline void bits_clear_bits(uint32_t* a, uint32_t* b, uint32_t count)
|
||||
{
|
||||
uint32_t i;
|
||||
for (i=0;i<count;i++)
|
||||
{
|
||||
a[i] &= b[i];
|
||||
}
|
||||
}
|
||||
|
||||
#define BITS_CLEAR_BITS(a,b) bits_clear_bits((a).data, (b).data, sizeof((a).data)/sizeof((a).data[0])
|
||||
|
||||
#define BITS_COPY16_PTR(a,bits) \
|
||||
{ \
|
||||
BIT128_CLEAR_ALL_PTR(a); \
|
||||
BITS_GET_ELEM_PTR(a, 0) = (bits) & 0xffff; \
|
||||
}
|
||||
|
||||
#define BITS_COPY32_PTR(a,bits) \
|
||||
{ \
|
||||
BIT128_CLEAR_ALL_PTR(a); \
|
||||
BITS_GET_ELEM_PTR(a, 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)
|
||||
@ -137,6 +120,18 @@ static inline void bits_clear_bits(uint32_t* a, uint32_t* b, uint32_t count)
|
||||
#define BIT256_GET_PTR(a, bit) BIT256_GET(*a, bit)
|
||||
#define BIT256_CLEAR_ALL_PTR(a) BIT256_CLEAR_ALL(*a)
|
||||
|
||||
#define BITS_COPY16_PTR(a,bits) \
|
||||
{ \
|
||||
BIT128_CLEAR_ALL_PTR(a); \
|
||||
BITS_GET_ELEM_PTR(a, 0) = (bits) & 0xffff; \
|
||||
}
|
||||
|
||||
#define BITS_COPY32_PTR(a,bits) \
|
||||
{ \
|
||||
BIT128_CLEAR_ALL_PTR(a); \
|
||||
BITS_GET_ELEM_PTR(a, 0) = (bits); \
|
||||
}
|
||||
|
||||
/* Helper macros and struct to keep track of many booleans. */
|
||||
/* This struct has 256 bits. */
|
||||
typedef struct
|
||||
|
@ -165,7 +165,7 @@ unsigned menu_event(retro_bits_t* p_input, retro_bits_t* p_trigger_input)
|
||||
|
||||
ok_old = ok_current;
|
||||
|
||||
if (BITS_ANY_SET_PTR(p_input))
|
||||
if (bits_any_set(p_input->data, ARRAY_SIZE(p_input->data)))
|
||||
{
|
||||
if (!first_held)
|
||||
{
|
||||
|
@ -2397,7 +2397,7 @@ static enum runloop_state runloop_check_state(
|
||||
if (input_driver_flushing_input)
|
||||
{
|
||||
input_driver_flushing_input = false;
|
||||
if (BITS_ANY_SET(current_input))
|
||||
if (bits_any_set(current_input.data, ARRAY_SIZE(current_input.data)))
|
||||
{
|
||||
BIT256_CLEAR_ALL(current_input);
|
||||
if (runloop_paused)
|
||||
@ -2540,7 +2540,9 @@ static enum runloop_state runloop_check_state(
|
||||
enum menu_action action;
|
||||
bool focused = false;
|
||||
retro_bits_t trigger_input = current_input;
|
||||
BITS_CLEAR_BITS(trigger_input, old_input);
|
||||
|
||||
bits_clear_bits(trigger_input.data, old_input.data,
|
||||
ARRAY_SIZE(trigger_input.data));
|
||||
|
||||
action = (enum menu_action)menu_event(¤t_input, &trigger_input);
|
||||
focused = pause_nonactive ? is_focused : true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user