/** * init_drivers_pre: * * Attempts to find a default driver for * all driver types. * * Should be run before init_drivers(). **/ void init_drivers_pre(void) { find_audio_driver(); find_video_driver(); find_input_driver(); find_camera_driver(); find_location_driver(); #ifdef HAVE_MENU find_menu_driver(); #endif }
void init_drivers_pre(void) { find_audio_driver(); find_video_driver(); find_input_driver(); #ifdef HAVE_CAMERA find_camera_driver(); #endif #ifdef HAVE_LOCATION find_location_driver(); #endif #ifdef HAVE_OSK find_osk_driver(); #endif }
void init_location(void) { // Resource leaks will follow if location interface is initialized twice. if (driver.location_data) return; find_location_driver(); driver.location_data = driver.location->init(); if (!driver.location_data) { RARCH_ERR("Failed to initialize location driver. Will continue without location.\n"); g_extern.location_active = false; } if (g_extern.system.location_callback.initialized) g_extern.system.location_callback.initialized(); }
void init_location(void) { driver_t *driver = driver_get_ptr(); rarch_system_info_t *system = rarch_system_info_get_ptr(); /* Resource leaks will follow if location interface is initialized twice. */ if (driver->location_data) return; find_location_driver(); driver->location_data = driver->location->init(); if (!driver->location_data) { RARCH_ERR("Failed to initialize location driver. Will continue without location.\n"); driver->location_active = false; } if (system->location_callback.initialized) system->location_callback.initialized(); }
void init_location(void) { rarch_system_info_t *system = NULL; runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system); /* Resource leaks will follow if location interface is initialized twice. */ if (location_data) return; find_location_driver(); location_data = location_driver->init(); if (!location_data) { RARCH_ERR("Failed to initialize location driver. Will continue without location.\n"); location_driver_ctl(RARCH_LOCATION_CTL_UNSET_ACTIVE, NULL); } if (system->location_callback.initialized) system->location_callback.initialized(); }
bool driver_ctl(enum driver_ctl_state state, void *data) { switch (state) { case RARCH_DRIVER_CTL_DEINIT: video_driver_destroy(); audio_driver_destroy(); input_driver_destroy(); #ifdef HAVE_MENU menu_driver_destroy(); #endif location_driver_ctl(RARCH_LOCATION_CTL_DESTROY, NULL); camera_driver_ctl(RARCH_CAMERA_CTL_DESTROY, NULL); wifi_driver_ctl(RARCH_WIFI_CTL_DESTROY, NULL); core_uninit_libretro_callbacks(); break; case RARCH_DRIVER_CTL_INIT_PRE: audio_driver_find_driver(); video_driver_find_driver(); input_driver_find_driver(); camera_driver_ctl(RARCH_CAMERA_CTL_FIND_DRIVER, NULL); wifi_driver_ctl(RARCH_WIFI_CTL_FIND_DRIVER, NULL); find_location_driver(); #ifdef HAVE_MENU menu_driver_ctl(RARCH_MENU_CTL_FIND_DRIVER, NULL); #endif break; case RARCH_DRIVER_CTL_SET_REFRESH_RATE: { float *hz = (float*)data; video_monitor_set_refresh_rate(*hz); audio_driver_monitor_set_rate(); driver_adjust_system_rates(); } break; case RARCH_DRIVER_CTL_UPDATE_SYSTEM_AV_INFO: { const struct retro_system_av_info **info = (const struct retro_system_av_info**)data; if (info) return driver_update_system_av_info(*info); } return false; case RARCH_DRIVER_CTL_FIND_FIRST: { driver_ctx_info_t *drv = (driver_ctx_info_t*)data; if (!drv) return false; return driver_find_first(drv->label, drv->s, drv->len); } case RARCH_DRIVER_CTL_FIND_LAST: { driver_ctx_info_t *drv = (driver_ctx_info_t*)data; if (!drv) return false; return driver_find_last(drv->label, drv->s, drv->len); } case RARCH_DRIVER_CTL_FIND_PREV: { driver_ctx_info_t *drv = (driver_ctx_info_t*)data; if (!drv) return false; return driver_find_prev(drv->label, drv->s, drv->len); } case RARCH_DRIVER_CTL_FIND_NEXT: { driver_ctx_info_t *drv = (driver_ctx_info_t*)data; if (!drv) return false; return driver_find_next(drv->label, drv->s, drv->len); } case RARCH_DRIVER_CTL_FIND_INDEX: { driver_ctx_info_t *drv = (driver_ctx_info_t*)data; if (!drv) return false; drv->len = driver_find_index(drv->label, drv->s); } break; case RARCH_DRIVER_CTL_NONE: default: break; } return true; }