Ejemplo 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;
}
Ejemplo 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;
}
Ejemplo 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;
}
Ejemplo 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;
}