mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 22:14:17 +00:00
Split up core_input_state_poll into two - one for late polling,
one for early/normal
This commit is contained in:
parent
60f77cd903
commit
0862700577
36
retroarch.c
36
retroarch.c
@ -21996,25 +21996,35 @@ static void retro_input_poll_null(void)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void core_input_state_poll_maybe(void)
|
|
||||||
{
|
|
||||||
if (current_core.poll_type == POLL_TYPE_NORMAL)
|
|
||||||
input_driver_poll();
|
|
||||||
}
|
|
||||||
|
|
||||||
static int16_t core_input_state_poll(unsigned port,
|
static int16_t core_input_state_poll(unsigned port,
|
||||||
unsigned device, unsigned idx, unsigned id)
|
unsigned device, unsigned idx, unsigned id)
|
||||||
{
|
{
|
||||||
if (current_core.poll_type == POLL_TYPE_LATE)
|
return input_state(port, device, idx, id);
|
||||||
{
|
}
|
||||||
|
|
||||||
|
static int16_t core_input_state_poll_late(unsigned port,
|
||||||
|
unsigned device, unsigned idx, unsigned id)
|
||||||
|
{
|
||||||
if (!current_core.input_polled)
|
if (!current_core.input_polled)
|
||||||
input_driver_poll();
|
input_driver_poll();
|
||||||
|
|
||||||
current_core.input_polled = true;
|
current_core.input_polled = true;
|
||||||
}
|
|
||||||
return input_state(port, device, idx, id);
|
return input_state(port, device, idx, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static retro_input_state_t core_input_state_poll_return_cb(void)
|
||||||
|
{
|
||||||
|
if (current_core.poll_type == POLL_TYPE_LATE)
|
||||||
|
return core_input_state_poll_late;
|
||||||
|
return core_input_state_poll;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void core_input_state_poll_maybe(void)
|
||||||
|
{
|
||||||
|
if (current_core.poll_type == POLL_TYPE_NORMAL)
|
||||||
|
input_driver_poll();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* core_init_libretro_cbs:
|
* core_init_libretro_cbs:
|
||||||
* @data : pointer to retro_callbacks object
|
* @data : pointer to retro_callbacks object
|
||||||
@ -22024,10 +22034,12 @@ static int16_t core_input_state_poll(unsigned port,
|
|||||||
**/
|
**/
|
||||||
static bool core_init_libretro_cbs(struct retro_callbacks *cbs)
|
static bool core_init_libretro_cbs(struct retro_callbacks *cbs)
|
||||||
{
|
{
|
||||||
|
retro_input_state_t state_cb = core_input_state_poll_return_cb();
|
||||||
|
|
||||||
current_core.retro_set_video_refresh(video_driver_frame);
|
current_core.retro_set_video_refresh(video_driver_frame);
|
||||||
current_core.retro_set_audio_sample(audio_driver_sample);
|
current_core.retro_set_audio_sample(audio_driver_sample);
|
||||||
current_core.retro_set_audio_sample_batch(audio_driver_sample_batch);
|
current_core.retro_set_audio_sample_batch(audio_driver_sample_batch);
|
||||||
current_core.retro_set_input_state(core_input_state_poll);
|
current_core.retro_set_input_state(state_cb);
|
||||||
current_core.retro_set_input_poll(core_input_state_poll_maybe);
|
current_core.retro_set_input_poll(core_input_state_poll_maybe);
|
||||||
|
|
||||||
core_set_default_callbacks(cbs);
|
core_set_default_callbacks(cbs);
|
||||||
@ -22050,10 +22062,12 @@ static bool core_init_libretro_cbs(struct retro_callbacks *cbs)
|
|||||||
**/
|
**/
|
||||||
bool core_set_default_callbacks(struct retro_callbacks *cbs)
|
bool core_set_default_callbacks(struct retro_callbacks *cbs)
|
||||||
{
|
{
|
||||||
|
retro_input_state_t state_cb = core_input_state_poll_return_cb();
|
||||||
|
|
||||||
cbs->frame_cb = video_driver_frame;
|
cbs->frame_cb = video_driver_frame;
|
||||||
cbs->sample_cb = audio_driver_sample;
|
cbs->sample_cb = audio_driver_sample;
|
||||||
cbs->sample_batch_cb = audio_driver_sample_batch;
|
cbs->sample_batch_cb = audio_driver_sample_batch;
|
||||||
cbs->state_cb = core_input_state_poll;
|
cbs->state_cb = state_cb;
|
||||||
cbs->poll_cb = input_driver_poll;
|
cbs->poll_cb = input_driver_poll;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user