/** * 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; }
/** * 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; }