Ejemplo n.º 1
0
void rarch_main_data_nbio_iterate(bool is_thread)
{
   nbio_handle_t         *nbio  = (nbio_handle_t*)nbio_ptr;
   if (!nbio)
      return;

   switch (nbio->status)
   {
      case NBIO_STATUS_TRANSFER_PARSE:
         rarch_main_data_nbio_iterate_parse(nbio);
         nbio->status = NBIO_STATUS_TRANSFER_PARSE_FREE;
         break;
      case NBIO_STATUS_TRANSFER:
         if (rarch_main_data_nbio_iterate_transfer(nbio) == -1)
            nbio->status = NBIO_STATUS_TRANSFER_PARSE;
         break;
      case NBIO_STATUS_TRANSFER_PARSE_FREE:
         rarch_main_data_nbio_iterate_parse_free(nbio);
         nbio->status = NBIO_STATUS_POLL;
         break;
      case NBIO_STATUS_POLL:
      default:
         if (rarch_main_data_nbio_iterate_poll(nbio) == 0)
            nbio->status = NBIO_STATUS_TRANSFER;
         break;
   }
}
Ejemplo n.º 2
0
static void rarch_main_data_nbio_iterate(nbio_handle_t *nbio)
{
   if (!nbio)
      return;

   if (nbio->handle)
   {
      if (!nbio->is_blocking)
      {
         if (rarch_main_data_nbio_iterate_transfer(nbio) == -1)
            rarch_main_data_nbio_iterate_parse(nbio);
      }
      else if (nbio->is_finished)
         rarch_main_data_nbio_iterate_parse_free(nbio);
   }
   else
      rarch_main_data_nbio_iterate_poll(nbio);

   if (nbio->image.handle)
   {
      if (nbio->image.is_blocking_on_processing)
      {
         if (rarch_main_data_image_iterate_process_transfer(nbio) == -1)
            rarch_main_data_image_iterate_process_transfer_parse(nbio);
      }
      else if (!nbio->image.is_blocking)
      {
         if (rarch_main_data_image_iterate_transfer(nbio) == -1)
            rarch_main_data_image_iterate_transfer_parse(nbio);
      }
      else if (nbio->image.is_finished)
         rarch_main_data_image_iterate_parse_free(nbio);
   }
   else
      rarch_main_data_image_iterate_poll(nbio);
}