From 2390e17fc779d1ac9fd77ce9cf889152dfcdf6cd Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 23 Feb 2015 06:03:53 +0100 Subject: [PATCH] (Overlay) Add some logic --- general.h | 1 - input/input_overlay.h | 10 ++++++++++ runloop.c | 2 ++ runloop_data.c | 8 +++++++- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/general.h b/general.h index 1746639045..b2646bad73 100644 --- a/general.h +++ b/general.h @@ -604,7 +604,6 @@ struct global struct { bool is_blocking; - bool is_processing; bool is_finished; transfer_cb_t cb; msg_queue_t *msg_queue; diff --git a/input/input_overlay.h b/input/input_overlay.h index b0f9f40843..fde903670c 100644 --- a/input/input_overlay.h +++ b/input/input_overlay.h @@ -73,6 +73,7 @@ enum overlay_status OVERLAY_STATUS_NONE = 0, OVERLAY_STATUS_DEFERRED_LOAD, OVERLAY_STATUS_DEFERRED_LOADING_IMAGE, + OVERLAY_STATUS_DEFERRED_LOADING_IMAGE_PROCESS, OVERLAY_STATUS_DEFERRED_LOADING, OVERLAY_STATUS_DEFERRED_LOADING_RESOLVE, OVERLAY_STATUS_DEFERRED_DONE, @@ -80,6 +81,14 @@ enum overlay_status OVERLAY_STATUS_ALIVE, }; +enum overlay_image_transfer_status +{ + OVERLAY_IMAGE_TRANSFER_NONE = 0, + OVERLAY_IMAGE_TRANSFER_BUSY, + OVERLAY_IMAGE_TRANSFER_DONE, + OVERLAY_IMAGE_TRANSFER_ERROR, +}; + struct overlay_desc { float x; @@ -135,6 +144,7 @@ struct input_overlay const video_overlay_interface_t *iface; bool enable; + enum overlay_image_transfer_status loading_status; bool blocked; struct overlay *overlays; diff --git a/runloop.c b/runloop.c index 5e1cfdc433..b6d2314e1f 100644 --- a/runloop.c +++ b/runloop.c @@ -900,6 +900,8 @@ void rarch_main_iterate_overlay_state(void) case OVERLAY_STATUS_DEFERRED_ERROR: input_overlay_free(driver.overlay); break; + default: + break; } } diff --git a/runloop_data.c b/runloop_data.c index 7bc99e9377..71aa3584b7 100644 --- a/runloop_data.c +++ b/runloop_data.c @@ -135,7 +135,13 @@ static int cb_image_overlay(void *data, size_t len) { g_extern.images.is_finished = true; g_extern.images.is_blocking = true; - g_extern.images.is_processing = true; + + if (!driver.overlay) + return -1; + + RARCH_LOG("Gets here.\n"); + + driver.overlay->loading_status = OVERLAY_IMAGE_TRANSFER_DONE; return 0; }