/** * 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; }
void menu_rom_close() { selected_element_t *e; if(list != NULL) { menu_free_list(list); } for(e = selected_elements; e != NULL; e = e->next) { free(e->path); free(e->selected); } }
/** * menu_free: * @menu : Menu handle. * * Frees a menu handle **/ void menu_free(menu_handle_t *menu) { global_t *global = global_get_ptr(); if (!menu) return; menu_free_list(menu); #ifdef HAVE_SHADER_MANAGER if (menu->shader) free(menu->shader); menu->shader = NULL; #endif menu_driver_free(menu); #ifdef HAVE_LIBRETRODB menu_database_free(menu); #endif #ifdef HAVE_DYNAMIC libretro_free_system_info(&global->menu.info); #endif if (menu->msg_queue) msg_queue_free(menu->msg_queue); menu->msg_queue = NULL; menu_display_free(menu); if (menu->frame_buf.data) free(menu->frame_buf.data); menu->frame_buf.data = NULL; menu_list_free(menu->menu_list); menu->menu_list = NULL; event_command(EVENT_CMD_HISTORY_DEINIT); if (global->core_info) core_info_list_free(global->core_info); if (global->core_info_current) free(global->core_info_current); free(menu); }
/** * menu_free: * @menu : Menu handle. * * Frees a menu handle **/ void menu_free(menu_handle_t *menu) { global_t *global = global_get_ptr(); menu_display_t *disp = menu_display_get_ptr(); if (!menu || !disp) return; if (menu->playlist) content_playlist_free(menu->playlist); menu->playlist = NULL; menu_shader_free(menu); menu_driver_free(menu); #ifdef HAVE_DYNAMIC libretro_free_system_info(&global->menu.info); #endif menu_display_free(menu); menu_free_list(&menu->entries); event_command(EVENT_CMD_HISTORY_DEINIT); if (global->core_info) core_info_list_free(global->core_info); if (global->core_info_current) free(global->core_info_current); global->core_info_current = NULL; menu_driver_unset_alive(); free(menu); }