mirror of
https://github.com/libretro/RetroArch
synced 2025-02-23 15:40:35 +00:00
Refactor rarch_main_data_nbio_image_iterate
This commit is contained in:
parent
f13ab52ff6
commit
d9c568f6e8
@ -59,6 +59,16 @@ typedef struct nbio_image_handle
|
|||||||
unsigned status;
|
unsigned status;
|
||||||
} nbio_image_handle_t;
|
} nbio_image_handle_t;
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
NBIO_IMAGE_STATUS_POLL = 0,
|
||||||
|
NBIO_IMAGE_STATUS_TRANSFER,
|
||||||
|
NBIO_IMAGE_STATUS_TRANSFER_PARSE,
|
||||||
|
NBIO_IMAGE_STATUS_PROCESS_TRANSFER,
|
||||||
|
NBIO_IMAGE_STATUS_PROCESS_TRANSFER_PARSE,
|
||||||
|
NBIO_IMAGE_STATUS_TRANSFER_PARSE_FREE,
|
||||||
|
} nbio_image_status_enum;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
NBIO_STATUS_POLL = 0,
|
NBIO_STATUS_POLL = 0,
|
||||||
@ -673,23 +683,38 @@ static void rarch_main_data_nbio_image_iterate(bool is_thread,
|
|||||||
if (!image)
|
if (!image)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (image->handle)
|
|
||||||
|
switch (image->status)
|
||||||
{
|
{
|
||||||
if (image->is_blocking_on_processing)
|
case NBIO_IMAGE_STATUS_PROCESS_TRANSFER_PARSE:
|
||||||
{
|
rarch_main_data_image_iterate_process_transfer_parse(nbio);
|
||||||
|
if (image->is_finished)
|
||||||
|
image->status = NBIO_IMAGE_STATUS_TRANSFER_PARSE_FREE;
|
||||||
|
break;
|
||||||
|
case NBIO_IMAGE_STATUS_PROCESS_TRANSFER:
|
||||||
if (rarch_main_data_image_iterate_process_transfer(nbio) == -1)
|
if (rarch_main_data_image_iterate_process_transfer(nbio) == -1)
|
||||||
rarch_main_data_image_iterate_process_transfer_parse(nbio);
|
image->status = NBIO_IMAGE_STATUS_PROCESS_TRANSFER_PARSE;
|
||||||
}
|
break;
|
||||||
else if (!image->is_blocking)
|
case NBIO_IMAGE_STATUS_TRANSFER_PARSE_FREE:
|
||||||
{
|
|
||||||
if (rarch_main_data_image_iterate_transfer(nbio) == -1)
|
|
||||||
rarch_main_data_image_iterate_transfer_parse(nbio);
|
|
||||||
}
|
|
||||||
else if (image->is_finished)
|
|
||||||
rarch_main_data_image_iterate_parse_free(nbio);
|
rarch_main_data_image_iterate_parse_free(nbio);
|
||||||
|
image->status = NBIO_IMAGE_STATUS_POLL;
|
||||||
|
break;
|
||||||
|
case NBIO_IMAGE_STATUS_TRANSFER_PARSE:
|
||||||
|
rarch_main_data_image_iterate_transfer_parse(nbio);
|
||||||
|
if (image->is_blocking_on_processing)
|
||||||
|
image->status = NBIO_IMAGE_STATUS_PROCESS_TRANSFER;
|
||||||
|
break;
|
||||||
|
case NBIO_IMAGE_STATUS_TRANSFER:
|
||||||
|
if (!image->is_blocking)
|
||||||
|
if (rarch_main_data_image_iterate_transfer(nbio) == -1)
|
||||||
|
image->status = NBIO_IMAGE_STATUS_TRANSFER_PARSE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
case NBIO_IMAGE_STATUS_POLL:
|
||||||
|
if (rarch_main_data_image_iterate_poll(nbio) == 0)
|
||||||
|
image->status = NBIO_IMAGE_STATUS_TRANSFER;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
rarch_main_data_image_iterate_poll(nbio);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rarch_main_data_nbio_iterate(bool is_thread, nbio_handle_t *nbio)
|
static void rarch_main_data_nbio_iterate(bool is_thread, nbio_handle_t *nbio)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user