From a8c6fc150b6ca1ea4be3d130ff21bf9e07d5ecf5 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 11 Dec 2015 10:17:18 +0100 Subject: [PATCH] Add RUNLOOP_CTL_DATA_ITERATE --- frontend/drivers/platform_emscripten.c | 2 +- frontend/drivers/platform_linux.c | 2 +- frontend/frontend.c | 2 +- menu/cbs/menu_cbs_select.c | 2 +- runloop.c | 9 +++------ runloop.h | 3 +-- ui/drivers/cocoa/cocoatouch_menu.m | 2 +- ui/drivers/ui_cocoa.m | 2 +- ui/drivers/ui_cocoatouch.m | 2 +- 9 files changed, 11 insertions(+), 15 deletions(-) diff --git a/frontend/drivers/platform_emscripten.c b/frontend/drivers/platform_emscripten.c index 0a95633af6..96f5b80337 100644 --- a/frontend/drivers/platform_emscripten.c +++ b/frontend/drivers/platform_emscripten.c @@ -32,7 +32,7 @@ static void emscripten_mainloop(void) int ret = runloop_iterate(&sleep_ms); if (ret == 1 && sleep_ms > 0) retro_sleep(sleep_ms); - runloop_data_iterate(); + runloop_ctl(RUNLOOP_CTL_DATA_ITERATE, NULL); if (ret != -1) return; diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 458e36699a..2f23e52140 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -758,7 +758,7 @@ static void android_app_entry(void *data) if (ret == 1 && sleep_ms > 0) retro_sleep(sleep_ms); - runloop_data_iterate(); + runloop_ctl(RUNLOOP_CTL_DATA_ITERATE, NULL); }while (ret != -1); main_exit(data); diff --git a/frontend/frontend.c b/frontend/frontend.c index 888a58fb15..52a20d24a6 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -311,7 +311,7 @@ int rarch_main(int argc, char *argv[], void *data) if (ret == 1 && sleep_ms > 0) retro_sleep(sleep_ms); - runloop_data_iterate(); + runloop_ctl(RUNLOOP_CTL_DATA_ITERATE, NULL); }while(ret != -1); main_exit(args); diff --git a/menu/cbs/menu_cbs_select.c b/menu/cbs/menu_cbs_select.c index 9d21941533..5c0a4e68ec 100644 --- a/menu/cbs/menu_cbs_select.c +++ b/menu/cbs/menu_cbs_select.c @@ -78,7 +78,7 @@ static int action_select_default(const char *path, const char *label, unsigned t if (action != MENU_ACTION_NOOP) ret = menu_entry_action(&entry, idx, action); - runloop_data_iterate(); + runloop_ctl(RUNLOOP_CTL_DATA_ITERATE, NULL); return ret; } diff --git a/runloop.c b/runloop.c index a8a8f5a83d..8e0e42aabf 100644 --- a/runloop.c +++ b/runloop.c @@ -482,6 +482,9 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data) switch (state) { + case RUNLOOP_CTL_DATA_ITERATE: + rarch_task_check(); + return true; case RUNLOOP_CTL_SHADER_DIR_DEINIT: shader_dir_free(); return true; @@ -1397,12 +1400,6 @@ end: return 0; } -void runloop_data_iterate(void) -{ - rarch_task_check(); -} - - void data_runloop_osd_msg(const char *msg, size_t len) { runloop_msg_queue_push(msg, 1, 10, true); diff --git a/runloop.h b/runloop.h index 969626ef56..88ad4946b1 100644 --- a/runloop.h +++ b/runloop.h @@ -103,6 +103,7 @@ enum runloop_ctl_state RUNLOOP_CTL_SYSTEM_INFO_GET, RUNLOOP_CTL_SYSTEM_INFO_INIT, RUNLOOP_CTL_SYSTEM_INFO_FREE, + RUNLOOP_CTL_DATA_ITERATE, RUNLOOP_CTL_PREPARE_DUMMY }; @@ -316,8 +317,6 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data); typedef int (*transfer_cb_t)(void *data, size_t len); -void runloop_data_iterate(void); - #ifdef __cplusplus } #endif diff --git a/ui/drivers/cocoa/cocoatouch_menu.m b/ui/drivers/cocoa/cocoatouch_menu.m index ac7361bda6..034bd14ba2 100644 --- a/ui/drivers/cocoa/cocoatouch_menu.m +++ b/ui/drivers/cocoa/cocoatouch_menu.m @@ -753,7 +753,7 @@ didSelectRowAtIndexPath:(NSIndexPath *)indexPath - (void)menuSelect: (uint32_t) i { menu_entry_select(i); - runloop_data_iterate(); + runloop_ctl(RUNLOOP_CTL_DATA_ITERATE, NULL); } - (void)menuBack diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index dad5366fbc..7431503f86 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -232,7 +232,7 @@ static void poll_iteration(void) ret = runloop_iterate(&sleep_ms); if (ret == 1 && sleep_ms > 0) retro_sleep(sleep_ms); - runloop_data_iterate(); + runloop_ctl(RUNLOOP_CTL_DATA_ITERATE, NULL); while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.002, FALSE) == kCFRunLoopRunHandledSource); } diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 8cee0a81e7..e2e3eee189 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -79,7 +79,7 @@ static void rarch_draw_observer(CFRunLoopObserverRef observer, if (ret == 1 && !ui_companion_is_on_foreground() && sleep_ms > 0) retro_sleep(sleep_ms); - runloop_data_iterate(); + runloop_ctl(RUNLOOP_CTL_DATA_ITERATE, NULL); if (ret == -1) {