(PSP) Don't depend on global state in input driver
This commit is contained in:
parent
25ffeb1ed9
commit
2698d4622a
|
@ -43,6 +43,7 @@ typedef struct psp_input
|
||||||
{
|
{
|
||||||
bool blocked;
|
bool blocked;
|
||||||
const input_device_driver_t *joypad;
|
const input_device_driver_t *joypad;
|
||||||
|
uint64_t lifecycle_state;
|
||||||
} psp_input_t;
|
} psp_input_t;
|
||||||
|
|
||||||
static void psp_input_poll(void *data)
|
static void psp_input_poll(void *data)
|
||||||
|
@ -99,10 +100,9 @@ static void* psp_input_initialize(void)
|
||||||
static bool psp_input_key_pressed(void *data, int key)
|
static bool psp_input_key_pressed(void *data, int key)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
|
||||||
psp_input_t *psp = (psp_input_t*)data;
|
psp_input_t *psp = (psp_input_t*)data;
|
||||||
|
|
||||||
return (global->lifecycle_state & (1ULL << key)) ||
|
return (psp->lifecycle_state & (1ULL << key)) ||
|
||||||
input_joypad_pressed(psp->joypad, 0, settings->input.binds[0], key);
|
input_joypad_pressed(psp->joypad, 0, settings->input.binds[0], key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -110,9 +110,9 @@ static int16_t psp_joypad_axis(unsigned port_num, uint32_t joyaxis)
|
||||||
static void psp_joypad_poll(void)
|
static void psp_joypad_poll(void)
|
||||||
{
|
{
|
||||||
int32_t ret;
|
int32_t ret;
|
||||||
|
unsigned i, j;
|
||||||
SceCtrlData state_tmp;
|
SceCtrlData state_tmp;
|
||||||
global_t *global = global_get_ptr();
|
psp_input_t *psp = (psp_input_t*)input_driver_get_ptr();
|
||||||
uint64_t *lifecycle_state = (uint64_t*)&global->lifecycle_state;
|
|
||||||
|
|
||||||
#ifdef PSP
|
#ifdef PSP
|
||||||
sceCtrlSetSamplingCycle(0);
|
sceCtrlSetSamplingCycle(0);
|
||||||
|
@ -147,12 +147,12 @@ static void psp_joypad_poll(void)
|
||||||
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGRY(state_tmp)-128) * 256;
|
analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGRY(state_tmp)-128) * 256;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (int i = 0; i < 2; i++)
|
for (i = 0; i < 2; i++)
|
||||||
for (int j = 0; j < 2; j++)
|
for (j = 0; j < 2; j++)
|
||||||
if (analog_state[0][i][j] == -0x8000)
|
if (analog_state[0][i][j] == -0x8000)
|
||||||
analog_state[0][i][j] = -0x7fff;
|
analog_state[0][i][j] = -0x7fff;
|
||||||
|
|
||||||
*lifecycle_state &= ~((1ULL << RARCH_MENU_TOGGLE));
|
psp->lifecycle_state &= ~((1ULL << RARCH_MENU_TOGGLE));
|
||||||
|
|
||||||
#ifdef HAVE_KERNEL_PRX
|
#ifdef HAVE_KERNEL_PRX
|
||||||
if (STATE_BUTTON(state_tmp) & PSP_CTRL_NOTE)
|
if (STATE_BUTTON(state_tmp) & PSP_CTRL_NOTE)
|
||||||
|
@ -164,7 +164,7 @@ static void psp_joypad_poll(void)
|
||||||
&& (pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_START))
|
&& (pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_START))
|
||||||
)
|
)
|
||||||
#endif
|
#endif
|
||||||
*lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE);
|
psp->lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool psp_joypad_query_pad(unsigned pad)
|
static bool psp_joypad_query_pad(unsigned pad)
|
||||||
|
|
Loading…
Reference in New Issue