From d1ffd1f9ccd7f58da92947cd876cca7220f1069a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 27 Jan 2016 03:21:36 +0100 Subject: [PATCH] Create CORE_CTL_RUN --- libretro_version_1.c | 27 ++++++++++++--------------- libretro_version_1.h | 8 ++++---- menu/menu_display.c | 2 +- netplay/netplay_net.c | 2 +- runloop.c | 3 +-- 5 files changed, 19 insertions(+), 23 deletions(-) diff --git a/libretro_version_1.c b/libretro_version_1.c index 6fadf9852b..58f5f3b332 100644 --- a/libretro_version_1.c +++ b/libretro_version_1.c @@ -90,21 +90,6 @@ static bool retro_uninit_libretro_cbs(void) return true; } - -void retro_run_core(void) -{ - switch (core.poll_type) - { - case POLL_TYPE_EARLY: - input_poll(); - break; - case POLL_TYPE_LATE: - input_polled = false; - break; - } - core.retro_run(); -} - static void input_poll_maybe(void) { if (core.poll_type == POLL_TYPE_NORMAL) @@ -186,6 +171,18 @@ bool core_ctl(enum core_ctl_state state, void *data) { switch (state) { + case CORE_CTL_RUN: + switch (core.poll_type) + { + case POLL_TYPE_EARLY: + input_poll(); + break; + case POLL_TYPE_LATE: + input_polled = false; + break; + } + core.retro_run(); + break; case CORE_CTL_SET_CBS: return retro_set_default_callbacks(data); case CORE_CTL_SET_CBS_REWIND: diff --git a/libretro_version_1.h b/libretro_version_1.h index 368c4e22b1..885c2add63 100644 --- a/libretro_version_1.h +++ b/libretro_version_1.h @@ -47,7 +47,10 @@ enum core_ctl_state CORE_CTL_SET_CBS, - CORE_CTL_SET_CBS_REWIND + CORE_CTL_SET_CBS_REWIND, + + /* Runs the core for one frame. */ + CORE_CTL_RUN }; typedef struct retro_callbacks @@ -61,9 +64,6 @@ typedef struct retro_callbacks extern retro_callbacks_t retro_ctx; -/* Runs the core for one frame. Use instead of core.retro_run(). */ -void retro_run_core(void); - bool core_ctl(enum core_ctl_state state, void *data); #ifdef __cplusplus diff --git a/menu/menu_display.c b/menu/menu_display.c index 98ff96af8a..455f89931a 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -321,7 +321,7 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) if (!libretro_input_is_blocked) input_driver_ctl(RARCH_INPUT_CTL_SET_LIBRETRO_INPUT_BLOCKED, NULL); - retro_run_core(); + core_ctl(CORE_CTL_RUN, NULL); input_driver_ctl(RARCH_INPUT_CTL_UNSET_LIBRETRO_INPUT_BLOCKED, NULL); return true; diff --git a/netplay/netplay_net.c b/netplay/netplay_net.c index 92018b6ff8..e1040be713 100644 --- a/netplay/netplay_net.c +++ b/netplay/netplay_net.c @@ -77,7 +77,7 @@ static void netplay_net_post_frame(netplay_t *netplay) #if defined(HAVE_THREADS) && !defined(RARCH_CONSOLE) lock_autosave(); #endif - retro_run_core(); + core_ctl(CORE_CTL_RUN, NULL); #if defined(HAVE_THREADS) && !defined(RARCH_CONSOLE) unlock_autosave(); #endif diff --git a/runloop.c b/runloop.c index 4fa1f27492..79f90250ba 100644 --- a/runloop.c +++ b/runloop.c @@ -1423,8 +1423,7 @@ int runloop_iterate(unsigned *sleep_ms) !input_driver_ctl(RARCH_INPUT_CTL_IS_NONBLOCK_STATE, NULL)) retro_sleep(settings->video.frame_delay); - /* Run libretro for one frame. */ - retro_run_core(); + core_ctl(CORE_CTL_RUN, NULL); #ifdef HAVE_CHEEVOS /* Test the achievements. */