From 99824bcad0dbf17f3ac0fc65a82be9a382c7742b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 9 Dec 2015 09:21:49 +0100 Subject: [PATCH] Move more code to do with core options to runloop.c --- menu/cbs/menu_cbs_left.c | 5 +---- menu/cbs/menu_cbs_right.c | 8 +------- runloop.c | 20 ++++++++++++++++++++ runloop.h | 2 ++ 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/menu/cbs/menu_cbs_left.c b/menu/cbs/menu_cbs_left.c index 4c97ce189d..4fa29ab199 100644 --- a/menu/cbs/menu_cbs_left.c +++ b/menu/cbs/menu_cbs_left.c @@ -336,11 +336,8 @@ static int core_setting_left(unsigned type, const char *label, bool wraparound) { unsigned idx = type - MENU_SETTINGS_CORE_OPTION_START; - rarch_system_info_t *system = rarch_system_info_get_ptr(); - (void)label; - - core_option_prev(system->core_options, idx); + runloop_ctl(RUNLOOP_CTL_CORE_OPTION_PREV, &idx); return 0; } diff --git a/menu/cbs/menu_cbs_right.c b/menu/cbs/menu_cbs_right.c index 950c99522d..489b958285 100644 --- a/menu/cbs/menu_cbs_right.c +++ b/menu/cbs/menu_cbs_right.c @@ -353,14 +353,8 @@ int core_setting_right(unsigned type, const char *label, bool wraparound) { unsigned idx = type - MENU_SETTINGS_CORE_OPTION_START; - rarch_system_info_t *system = rarch_system_info_get_ptr(); - (void)label; - - core_option_next(system->core_options, idx); - - if (ui_companion_is_on_foreground()) - ui_companion_driver_notify_refresh(); + runloop_ctl(RUNLOOP_CTL_CORE_OPTION_NEXT, NULL); return 0; } diff --git a/runloop.c b/runloop.c index c2d09280d0..9ad90eb10e 100644 --- a/runloop.c +++ b/runloop.c @@ -984,6 +984,26 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data) case RUNLOOP_CTL_IS_CORE_OPTION_UPDATED: return system->core_options ? core_option_updated(system->core_options) : false; + case RUNLOOP_CTL_CORE_OPTION_PREV: + { + unsigned *idx = (unsigned*)data; + if (!idx) + return false; + core_option_prev(system->core_options, *idx); + if (ui_companion_is_on_foreground()) + ui_companion_driver_notify_refresh(); + } + return true; + case RUNLOOP_CTL_CORE_OPTION_NEXT: + { + unsigned *idx = (unsigned*)data; + if (!idx) + return false; + core_option_next(system->core_options, *idx); + if (ui_companion_is_on_foreground()) + ui_companion_driver_notify_refresh(); + } + return true; case RUNLOOP_CTL_CORE_OPTIONS_GET: { struct retro_variable *var = (struct retro_variable*)data; diff --git a/runloop.h b/runloop.h index d8d6c1cad4..d105941a0c 100644 --- a/runloop.h +++ b/runloop.h @@ -87,6 +87,8 @@ enum runloop_ctl_state RUNLOOP_CTL_MSG_QUEUE_UNLOCK, RUNLOOP_CTL_MSG_QUEUE_FREE, RUNLOOP_CTL_IS_CORE_OPTION_UPDATED, + RUNLOOP_CTL_CORE_OPTION_PREV, + RUNLOOP_CTL_CORE_OPTION_NEXT, RUNLOOP_CTL_CORE_OPTIONS_GET, RUNLOOP_CTL_CORE_OPTIONS_INIT, RUNLOOP_CTL_CORE_OPTIONS_DEINIT,