Esempio n. 1
0
/**
 * uninit_drivers:
 * @flags              : Bitmask of drivers to deinitialize.
 *
 * Deinitializes drivers.
 * @flags determines which drivers get deinitialized.
 **/
void uninit_drivers(int flags)
{
   driver_t *driver = driver_get_ptr();

   if (flags & DRIVER_AUDIO)
      uninit_audio();

   if (flags & DRIVER_VIDEO)
   {
      global_t *global = global_get_ptr();

      if (global->system.hw_render_callback.context_destroy &&
               !driver->video_cache_context)
            global->system.hw_render_callback.context_destroy();
   }

#ifdef HAVE_MENU
   if (flags & DRIVER_MENU)
   {
      menu_driver_context_destroy();

      if (!driver->menu_data_own)
      {
         menu_free_list(driver->menu);
         menu_free(driver->menu);
         driver->menu = NULL;
      }
   }
#endif

   if (flags & DRIVERS_VIDEO_INPUT)
      uninit_video_input();

   if ((flags & DRIVER_VIDEO) && !driver->video_data_own)
      driver->video_data = NULL;

   if ((flags & DRIVER_CAMERA) && !driver->camera_data_own)
   {
      uninit_camera();
      driver->camera_data = NULL;
   }

   if ((flags & DRIVER_LOCATION) && !driver->location_data_own)
   {
      uninit_location();
      driver->location_data = NULL;
   }
   
   if ((flags & DRIVER_INPUT) && !driver->input_data_own)
      driver->input_data = NULL;

   if ((flags & DRIVER_AUDIO) && !driver->audio_data_own)
      driver->audio_data = NULL;
}
Esempio n. 2
0
/**
 * uninit_drivers:
 * @flags              : Bitmask of drivers to deinitialize.
 *
 * Deinitializes drivers.
 * @flags determines which drivers get deinitialized.
 **/
void uninit_drivers(int flags)
{
   driver_t *driver = driver_get_ptr();

#ifdef HAVE_MENU
   if (flags & DRIVER_MENU)
   {
      menu_driver_context_destroy();

      if (!driver->menu_data_own)
      {
         menu_free(driver->menu);
         driver->menu = NULL;
      }
   }
#endif

   if ((flags & DRIVER_LOCATION) && !driver->location_data_own)
   {
      uninit_location();
      driver->location_data = NULL;
   }

   if ((flags & DRIVER_CAMERA) && !driver->camera_data_own)
   {
      uninit_camera();
      driver->camera_data = NULL;
   }

   if (flags & DRIVER_AUDIO)
      uninit_audio();

   if (flags & DRIVERS_VIDEO_INPUT)
      uninit_video_input();

   if (flags & DRIVER_VIDEO)
   {
      const struct retro_hw_render_callback *hw_render = 
         (const struct retro_hw_render_callback*)video_driver_callback();

      if (hw_render->context_destroy && !driver->video_cache_context)
            hw_render->context_destroy();
   }

   if ((flags & DRIVER_VIDEO) && !driver->video_data_own)
      driver->video_data = NULL;

   if ((flags & DRIVER_INPUT) && !driver->input_data_own)
      driver->input_data = NULL;

   if ((flags & DRIVER_AUDIO) && !driver->audio_data_own)
      driver->audio_data = NULL;
}
Esempio n. 3
0
void uninit_drivers(void)
{
   uninit_audio();

   if (g_extern.system.hw_render_callback.context_destroy && !driver.video_cache_context)
      g_extern.system.hw_render_callback.context_destroy();

#ifdef HAVE_MENU
   if (driver.menu && driver.menu_ctx && driver.menu_ctx->context_destroy)
      driver.menu_ctx->context_destroy(driver.menu);

   if (!driver.menu_data_own)
   {
      menu_free(driver.menu);
      driver.menu = NULL;
   }
#endif

   uninit_video_input();

   if (!driver.video_data_own)
      driver.video_data = NULL;

#ifdef HAVE_CAMERA
   if (!driver.camera_data_own)
   {
      uninit_camera();
      driver.camera_data = NULL;
   }
#endif

#ifdef HAVE_LOCATION
   if (!driver.location_data_own)
   {
      uninit_location();
      driver.location_data = NULL;
   }
#endif
   
#ifdef HAVE_OSK
   if (!driver.osk_data_own)
   {
      uninit_osk();
      driver.osk_data = NULL;
   }
#endif

   if (!driver.input_data_own)
      driver.input_data = NULL;

   if (!driver.audio_data_own)
      driver.audio_data = NULL;
}
Esempio n. 4
0
void uninit_drivers(void)
{
   uninit_audio();

   if (g_extern.system.hw_render_callback.context_destroy && !driver.video_cache_context)
      g_extern.system.hw_render_callback.context_destroy();

   uninit_video_input();

#ifdef HAVE_CAMERA
   uninit_camera();

   if (driver.camera_data_own)
      driver.camera_data = NULL;
#endif

#ifdef HAVE_LOCATION
   uninit_location();

   if (driver.location_data_own)
      driver.location_data = NULL;
#endif
   
#ifdef HAVE_OSK
   uninit_osk();

   if (driver.osk_data_own)
      driver.osk_data = NULL;
#endif
   if (driver.video_data_own)
      driver.video_data = NULL;
   if (driver.audio_data_own)
      driver.audio_data = NULL;
   if (driver.input_data_own)
      driver.input_data = NULL;

#ifdef HAVE_CAMERA
   driver.camera_data_own = false;
#endif
#ifdef HAVE_LOCATION
   driver.location_data_own = false;
#endif
#ifdef HAVE_OSK
   driver.osk_data_own    = false;
#endif
   driver.video_data_own  = false;
   driver.audio_data_own  = false;
   driver.input_data_own  = false;
}
Esempio n. 5
0
bool camera_driver_ctl(enum rarch_camera_ctl_state state, void *data)
{
   static bool camera_driver_active              = false;
   static bool camera_driver_data_own            = false;

   switch (state)
   {
      case RARCH_CAMERA_CTL_DESTROY:
         camera_driver_active   = false;
         camera_driver_data_own = false;
         camera_driver          = NULL;
         break;
      case RARCH_CAMERA_CTL_SET_OWN_DRIVER:
         camera_driver_data_own = true;
         break;
      case RARCH_CAMERA_CTL_UNSET_OWN_DRIVER:
         camera_driver_data_own = false;
         break;
      case RARCH_CAMERA_CTL_OWNS_DRIVER:
         return camera_driver_data_own;
      case RARCH_CAMERA_CTL_SET_ACTIVE:
         camera_driver_active = true; 
         break;
      case RARCH_CAMERA_CTL_UNSET_ACTIVE:
         camera_driver_active = false; 
         break;
      case RARCH_CAMERA_CTL_IS_ACTIVE:
        return camera_driver_active; 
      case RARCH_CAMERA_CTL_DEINIT:
        uninit_camera();
        break;
      default:
         break;
   }
   
   return false;
}