mirror of
https://github.com/libretro/RetroArch
synced 2025-02-06 00:39:53 +00:00
Get rid of rarch_system_info_get_ptr
This commit is contained in:
parent
10f934dc70
commit
fc6505e408
@ -160,7 +160,9 @@ void driver_camera_stop(void)
|
|||||||
**/
|
**/
|
||||||
void driver_camera_poll(void)
|
void driver_camera_poll(void)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (camera_driver && camera_driver->poll && camera_data)
|
if (camera_driver && camera_driver->poll && camera_data)
|
||||||
camera_driver->poll(camera_data,
|
camera_driver->poll(camera_data,
|
||||||
@ -171,7 +173,9 @@ void driver_camera_poll(void)
|
|||||||
void init_camera(void)
|
void init_camera(void)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
/* Resource leaks will follow if camera is initialized twice. */
|
/* Resource leaks will follow if camera is initialized twice. */
|
||||||
if (camera_data)
|
if (camera_data)
|
||||||
@ -199,7 +203,8 @@ void init_camera(void)
|
|||||||
|
|
||||||
static void uninit_camera(void)
|
static void uninit_camera(void)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (camera_data && camera_driver)
|
if (camera_data && camera_driver)
|
||||||
{
|
{
|
||||||
|
@ -70,11 +70,15 @@
|
|||||||
**/
|
**/
|
||||||
static void event_disk_control_set_eject(bool new_state, bool print_log)
|
static void event_disk_control_set_eject(bool new_state, bool print_log)
|
||||||
{
|
{
|
||||||
char msg[128] = {0};
|
char msg[128] = {0};
|
||||||
bool error = false;
|
bool error = false;
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
rarch_system_info_t *info = NULL;
|
||||||
const struct retro_disk_control_callback *control =
|
const struct retro_disk_control_callback *control = NULL;
|
||||||
info ? (const struct retro_disk_control_callback*)&info->disk_control : NULL;
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
|
if (info)
|
||||||
|
control = (const struct retro_disk_control_callback*)&info->disk_control;
|
||||||
|
|
||||||
if (!control || !control->get_num_images)
|
if (!control || !control->get_num_images)
|
||||||
return;
|
return;
|
||||||
@ -116,9 +120,13 @@ static void event_disk_control_set_index(unsigned idx)
|
|||||||
unsigned num_disks;
|
unsigned num_disks;
|
||||||
bool error = false;
|
bool error = false;
|
||||||
char msg[128] = {0};
|
char msg[128] = {0};
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
rarch_system_info_t *info = NULL;
|
||||||
const struct retro_disk_control_callback *control =
|
const struct retro_disk_control_callback *control = NULL;
|
||||||
info ? (const struct retro_disk_control_callback*)&info->disk_control : NULL;
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
|
if (info)
|
||||||
|
control = (const struct retro_disk_control_callback*)&info->disk_control;
|
||||||
|
|
||||||
if (!control || !control->get_num_images)
|
if (!control || !control->get_num_images)
|
||||||
return;
|
return;
|
||||||
@ -166,13 +174,16 @@ static void event_disk_control_set_index(unsigned idx)
|
|||||||
void event_disk_control_append_image(const char *path)
|
void event_disk_control_append_image(const char *path)
|
||||||
{
|
{
|
||||||
unsigned new_idx;
|
unsigned new_idx;
|
||||||
char msg[128] = {0};
|
char msg[128] = {0};
|
||||||
struct retro_game_info info = {0};
|
struct retro_game_info info = {0};
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *sysinfo = rarch_system_info_get_ptr();
|
const struct retro_disk_control_callback *control = NULL;
|
||||||
const struct retro_disk_control_callback *control =
|
rarch_system_info_t *sysinfo = NULL;
|
||||||
sysinfo ? (const struct retro_disk_control_callback*)&sysinfo->disk_control
|
|
||||||
: NULL;
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &sysinfo);
|
||||||
|
|
||||||
|
if (sysinfo)
|
||||||
|
control = (const struct retro_disk_control_callback*)&sysinfo->disk_control;
|
||||||
|
|
||||||
if (!control)
|
if (!control)
|
||||||
return;
|
return;
|
||||||
@ -309,7 +320,9 @@ static void event_init_controllers(void)
|
|||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
rarch_system_info_t *info = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
for (i = 0; i < MAX_USERS; i++)
|
for (i = 0; i < MAX_USERS; i++)
|
||||||
{
|
{
|
||||||
@ -869,11 +882,13 @@ static bool event_update_system_info(struct retro_system_info *_info,
|
|||||||
**/
|
**/
|
||||||
bool event_command(enum event_command cmd)
|
bool event_command(enum event_command cmd)
|
||||||
{
|
{
|
||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
bool boolean = false;
|
bool boolean = false;
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
rarch_system_info_t *info = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
(void)i;
|
(void)i;
|
||||||
|
|
||||||
|
@ -1923,7 +1923,9 @@ bool config_load_override(void)
|
|||||||
bool should_append = false;
|
bool should_append = false;
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!global || !settings || !system)
|
if (!global || !settings || !system)
|
||||||
{
|
{
|
||||||
@ -2111,7 +2113,9 @@ bool config_load_remap(void)
|
|||||||
char game_path[PATH_MAX_LENGTH] = {0}; /* final path for game-specific configuration (prefix+suffix) */
|
char game_path[PATH_MAX_LENGTH] = {0}; /* final path for game-specific configuration (prefix+suffix) */
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
/* Early return in case a library isn't loaded or remapping is disabled */
|
/* Early return in case a library isn't loaded or remapping is disabled */
|
||||||
if (!system->info.library_name || !strcmp(system->info.library_name,"No Core"))
|
if (!system->info.library_name || !strcmp(system->info.library_name,"No Core"))
|
||||||
|
@ -394,7 +394,9 @@ static bool load_content_need_fullpath(
|
|||||||
char new_basedir[PATH_MAX_LENGTH] = {0};
|
char new_basedir[PATH_MAX_LENGTH] = {0};
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *sys_info= rarch_system_info_get_ptr();
|
rarch_system_info_t *sys_info= NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &sys_info);
|
||||||
|
|
||||||
if (sys_info && sys_info->info.block_extract)
|
if (sys_info && sys_info->info.block_extract)
|
||||||
return true;
|
return true;
|
||||||
@ -552,11 +554,13 @@ bool init_content_file(void)
|
|||||||
bool ret = false;
|
bool ret = false;
|
||||||
struct string_list *content = NULL;
|
struct string_list *content = NULL;
|
||||||
const struct retro_subsystem_info *special = NULL;
|
const struct retro_subsystem_info *special = NULL;
|
||||||
|
rarch_system_info_t *system = NULL;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
temporary_content = string_list_new();
|
temporary_content = string_list_new();
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!temporary_content)
|
if (!temporary_content)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
9
driver.c
9
driver.c
@ -231,8 +231,9 @@ void init_drivers_pre(void)
|
|||||||
|
|
||||||
static void driver_adjust_system_rates(void)
|
static void driver_adjust_system_rates(void)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
audio_driver_ctl(RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES, NULL);
|
audio_driver_ctl(RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES, NULL);
|
||||||
video_driver_ctl(RARCH_DISPLAY_CTL_MONITOR_ADJUST_SYSTEM_RATES, NULL);
|
video_driver_ctl(RARCH_DISPLAY_CTL_MONITOR_ADJUST_SYSTEM_RATES, NULL);
|
||||||
|
|
||||||
@ -271,9 +272,11 @@ void driver_set_refresh_rate(float hz)
|
|||||||
void driver_set_nonblock_state(void)
|
void driver_set_nonblock_state(void)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
|
||||||
bool enable = input_driver_ctl(
|
bool enable = input_driver_ctl(
|
||||||
RARCH_INPUT_CTL_IS_NONBLOCK_STATE, NULL);
|
RARCH_INPUT_CTL_IS_NONBLOCK_STATE, NULL);
|
||||||
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
/* Only apply non-block-state for video if we're using vsync. */
|
/* Only apply non-block-state for video if we're using vsync. */
|
||||||
if (video_driver_ctl(RARCH_DISPLAY_CTL_IS_ACTIVE, NULL)
|
if (video_driver_ctl(RARCH_DISPLAY_CTL_IS_ACTIVE, NULL)
|
||||||
|
@ -606,7 +606,9 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
|||||||
unsigned p;
|
unsigned p;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (ignore_environment_cb)
|
if (ignore_environment_cb)
|
||||||
return false;
|
return false;
|
||||||
|
@ -152,7 +152,9 @@ static void history_playlist_push(content_playlist_t *playlist,
|
|||||||
{
|
{
|
||||||
char tmp[PATH_MAX_LENGTH] = {0};
|
char tmp[PATH_MAX_LENGTH] = {0};
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!playlist || (global->inited.core.type == CORE_TYPE_DUMMY) || !info)
|
if (!playlist || (global->inited.core.type == CORE_TYPE_DUMMY) || !info)
|
||||||
return;
|
return;
|
||||||
@ -285,7 +287,9 @@ int rarch_main(int argc, char *argv[], void *data)
|
|||||||
{
|
{
|
||||||
char *fullpath = NULL;
|
char *fullpath = NULL;
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath);
|
runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath);
|
||||||
|
|
||||||
|
@ -597,16 +597,18 @@ error:
|
|||||||
static bool init_video(void)
|
static bool init_video(void)
|
||||||
{
|
{
|
||||||
unsigned max_dim, scale, width, height;
|
unsigned max_dim, scale, width, height;
|
||||||
video_viewport_t *custom_vp = NULL;
|
video_viewport_t *custom_vp = NULL;
|
||||||
const input_driver_t *tmp = NULL;
|
const input_driver_t *tmp = NULL;
|
||||||
const struct retro_game_geometry *geom = NULL;
|
const struct retro_game_geometry *geom = NULL;
|
||||||
video_info_t video = {0};
|
rarch_system_info_t *system = NULL;
|
||||||
static uint16_t dummy_pixels[32] = {0};
|
video_info_t video = {0};
|
||||||
settings_t *settings = config_get_ptr();
|
static uint16_t dummy_pixels[32] = {0};
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
struct retro_system_av_info *av_info =
|
struct retro_system_av_info *av_info =
|
||||||
video_viewport_get_system_av_info();
|
video_viewport_get_system_av_info();
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
init_video_filter(video_driver_state.pix_fmt);
|
init_video_filter(video_driver_state.pix_fmt);
|
||||||
event_command(EVENT_CMD_SHADER_DIR_INIT);
|
event_command(EVENT_CMD_SHADER_DIR_INIT);
|
||||||
|
|
||||||
@ -1016,7 +1018,9 @@ bool video_monitor_get_fps(char *buf, size_t size,
|
|||||||
static retro_time_t curr_time;
|
static retro_time_t curr_time;
|
||||||
static retro_time_t fps_time;
|
static retro_time_t fps_time;
|
||||||
retro_time_t new_time = retro_get_time_usec();
|
retro_time_t new_time = retro_get_time_usec();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
*buf = '\0';
|
*buf = '\0';
|
||||||
|
|
||||||
@ -1153,10 +1157,12 @@ static void video_monitor_adjust_system_rates(void)
|
|||||||
{
|
{
|
||||||
float timing_skew;
|
float timing_skew;
|
||||||
const struct retro_system_timing *info = NULL;
|
const struct retro_system_timing *info = NULL;
|
||||||
struct retro_system_av_info *av_info =
|
struct retro_system_av_info *av_info =
|
||||||
video_viewport_get_system_av_info();
|
video_viewport_get_system_av_info();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!system)
|
if (!system)
|
||||||
return;
|
return;
|
||||||
@ -1197,6 +1203,7 @@ void video_driver_menu_settings(void **list_data, void *list_info_data,
|
|||||||
rarch_setting_group_info_t *group_info = (rarch_setting_group_info_t*)group_data;
|
rarch_setting_group_info_t *group_info = (rarch_setting_group_info_t*)group_data;
|
||||||
rarch_setting_group_info_t *subgroup_info = (rarch_setting_group_info_t*)subgroup_data;
|
rarch_setting_group_info_t *subgroup_info = (rarch_setting_group_info_t*)subgroup_data;
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
|
|
||||||
(void)list;
|
(void)list;
|
||||||
(void)list_info;
|
(void)list_info;
|
||||||
(void)group_info;
|
(void)group_info;
|
||||||
|
@ -237,7 +237,9 @@ void input_keyboard_event(bool down, unsigned code,
|
|||||||
uint32_t character, uint16_t mod, unsigned device)
|
uint32_t character, uint16_t mod, unsigned device)
|
||||||
{
|
{
|
||||||
static bool deferred_wait_keys;
|
static bool deferred_wait_keys;
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (deferred_wait_keys)
|
if (deferred_wait_keys)
|
||||||
{
|
{
|
||||||
|
@ -191,7 +191,9 @@ bool driver_location_get_position(double *lat, double *lon,
|
|||||||
|
|
||||||
void init_location(void)
|
void init_location(void)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
/* Resource leaks will follow if location interface is initialized twice. */
|
/* Resource leaks will follow if location interface is initialized twice. */
|
||||||
if (location_data)
|
if (location_data)
|
||||||
@ -213,7 +215,9 @@ void init_location(void)
|
|||||||
|
|
||||||
static void uninit_location(void)
|
static void uninit_location(void)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (location_data && location_driver)
|
if (location_data && location_driver)
|
||||||
{
|
{
|
||||||
|
@ -510,10 +510,12 @@ enum
|
|||||||
static int general_push(menu_displaylist_info_t *info, unsigned id, unsigned type)
|
static int general_push(menu_displaylist_info_t *info, unsigned id, unsigned type)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
const char *exts = core_info_list_get_all_extensions();
|
const char *exts = core_info_list_get_all_extensions();
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case PUSH_DEFAULT:
|
case PUSH_DEFAULT:
|
||||||
|
@ -566,10 +566,11 @@ static void menu_action_setting_disp_set_label_menu_disk_index(
|
|||||||
const char *path,
|
const char *path,
|
||||||
char *s2, size_t len2)
|
char *s2, size_t len2)
|
||||||
{
|
{
|
||||||
unsigned images = 0, current = 0;
|
unsigned images = 0, current = 0;
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
struct retro_disk_control_callback *control = NULL;
|
struct retro_disk_control_callback *control = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
if (!system)
|
if (!system)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -948,8 +949,10 @@ static void menu_action_setting_disp_set_label_core_option_create(
|
|||||||
const char *path,
|
const char *path,
|
||||||
char *s2, size_t len2)
|
char *s2, size_t len2)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
if (!system)
|
if (!system)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -972,8 +975,10 @@ static void menu_action_setting_disp_set_label(file_list_t* list,
|
|||||||
const char *path,
|
const char *path,
|
||||||
char *s2, size_t len2)
|
char *s2, size_t len2)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
uint32_t hash_label = menu_hash_calculate(label);
|
uint32_t hash_label = menu_hash_calculate(label);
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
*s = '\0';
|
*s = '\0';
|
||||||
*w = 19;
|
*w = 19;
|
||||||
|
@ -887,9 +887,14 @@ static int generic_action_ok_remap_file_save(const char *path,
|
|||||||
char file[PATH_MAX_LENGTH];
|
char file[PATH_MAX_LENGTH];
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
rarch_system_info_t *info = NULL;
|
||||||
const char *game_name = NULL;
|
const char *game_name = NULL;
|
||||||
const char *core_name = info ? info->info.library_name : NULL;
|
const char *core_name = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
|
if (info)
|
||||||
|
core_name = info->info.library_name;
|
||||||
|
|
||||||
fill_pathname_join(directory, settings->input_remapping_directory, core_name, PATH_MAX_LENGTH);
|
fill_pathname_join(directory, settings->input_remapping_directory, core_name, PATH_MAX_LENGTH);
|
||||||
|
|
||||||
@ -1266,16 +1271,17 @@ static int action_ok_disk_cycle_tray_status(const char *path,
|
|||||||
static int action_ok_option_create(const char *path,
|
static int action_ok_option_create(const char *path,
|
||||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
const char *core_name = NULL;
|
const char *core_name = NULL;
|
||||||
const char *game_name = NULL;
|
const char *game_name = NULL;
|
||||||
char core_path[PATH_MAX_LENGTH] = {0};
|
char core_path[PATH_MAX_LENGTH] = {0};
|
||||||
char game_path[PATH_MAX_LENGTH] = {0};
|
char game_path[PATH_MAX_LENGTH] = {0};
|
||||||
char config_directory[PATH_MAX_LENGTH] = {0};
|
char config_directory[PATH_MAX_LENGTH] = {0};
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
/* Config directory: config_directory.
|
/* Config directory: config_directory.
|
||||||
* Try config directory setting first,
|
* Try config directory setting first,
|
||||||
* fallback to the location of the current configuration file. */
|
* fallback to the location of the current configuration file. */
|
||||||
|
@ -247,8 +247,10 @@ static int action_start_cheat_num_passes(unsigned type, const char *label)
|
|||||||
static int action_start_core_setting(unsigned type,
|
static int action_start_core_setting(unsigned type,
|
||||||
const char *label)
|
const char *label)
|
||||||
{
|
{
|
||||||
unsigned idx = type - MENU_SETTINGS_CORE_OPTION_START;
|
unsigned idx = type - MENU_SETTINGS_CORE_OPTION_START;
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (system)
|
if (system)
|
||||||
core_option_set_default(system->core_options, idx);
|
core_option_set_default(system->core_options, idx);
|
||||||
|
@ -1716,7 +1716,9 @@ static int menu_displaylist_parse_load_content_settings(menu_displaylist_info_t
|
|||||||
|
|
||||||
if (global->inited.main && (global->inited.core.type != CORE_TYPE_DUMMY))
|
if (global->inited.main && (global->inited.core.type != CORE_TYPE_DUMMY))
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
menu_entries_push(info->list,
|
menu_entries_push(info->list,
|
||||||
menu_hash_to_str(MENU_LABEL_VALUE_RESUME_CONTENT),
|
menu_hash_to_str(MENU_LABEL_VALUE_RESUME_CONTENT),
|
||||||
@ -2019,9 +2021,11 @@ static int menu_displaylist_parse_options_remappings(menu_displaylist_info_t *in
|
|||||||
{
|
{
|
||||||
unsigned p, retro_id;
|
unsigned p, retro_id;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
for (p = 0; p < settings->input.max_users; p++)
|
for (p = 0; p < settings->input.max_users; p++)
|
||||||
{
|
{
|
||||||
char key_type[PATH_MAX_LENGTH], key_analog[PATH_MAX_LENGTH];
|
char key_type[PATH_MAX_LENGTH], key_analog[PATH_MAX_LENGTH];
|
||||||
@ -2406,7 +2410,9 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
|||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (menu_driver_list_push(info, type))
|
if (menu_driver_list_push(info, type))
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -286,7 +286,9 @@ static void menu_driver_toggle(bool latch)
|
|||||||
const menu_ctx_driver_t *menu_driver = menu_ctx_driver_get_ptr();
|
const menu_ctx_driver_t *menu_driver = menu_ctx_driver_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (menu_driver->toggle)
|
if (menu_driver->toggle)
|
||||||
menu_driver->toggle(menu_driver_data->userdata, latch);
|
menu_driver->toggle(menu_driver_data->userdata, latch);
|
||||||
|
@ -458,11 +458,13 @@ bool menu_entries_show_back(void)
|
|||||||
* (shown at the top of the UI). */
|
* (shown at the top of the UI). */
|
||||||
int menu_entries_get_core_title(char *s, size_t len)
|
int menu_entries_get_core_title(char *s, size_t len)
|
||||||
{
|
{
|
||||||
|
rarch_system_info_t *info = NULL;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
|
||||||
const char *core_name = g_system_menu.library_name;
|
const char *core_name = g_system_menu.library_name;
|
||||||
const char *core_version = g_system_menu.library_version;
|
const char *core_version = g_system_menu.library_version;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
if (!settings->menu.core_enable)
|
if (!settings->menu.core_enable)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -972,10 +972,12 @@ static void setting_get_string_representation_uint_libretro_device(void *data,
|
|||||||
{
|
{
|
||||||
unsigned index_offset;
|
unsigned index_offset;
|
||||||
const struct retro_controller_description *desc = NULL;
|
const struct retro_controller_description *desc = NULL;
|
||||||
const char *name = NULL;
|
const char *name = NULL;
|
||||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!setting)
|
if (!setting)
|
||||||
return;
|
return;
|
||||||
@ -2183,7 +2185,9 @@ static int setting_action_start_libretro_device_type(void *data)
|
|||||||
const struct retro_controller_info *desc = NULL;
|
const struct retro_controller_info *desc = NULL;
|
||||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (setting_generic_action_start_default(setting) != 0)
|
if (setting_generic_action_start_default(setting) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -2326,9 +2330,11 @@ static int setting_action_left_libretro_device_type(
|
|||||||
unsigned current_device, current_idx, i, devices[128],
|
unsigned current_device, current_idx, i, devices[128],
|
||||||
types = 0, port = 0;
|
types = 0, port = 0;
|
||||||
const struct retro_controller_info *desc = NULL;
|
const struct retro_controller_info *desc = NULL;
|
||||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!setting)
|
if (!setting)
|
||||||
return -1;
|
return -1;
|
||||||
@ -2384,9 +2390,11 @@ static int setting_action_right_libretro_device_type(
|
|||||||
unsigned current_device, current_idx, i, devices[128],
|
unsigned current_device, current_idx, i, devices[128],
|
||||||
types = 0, port = 0;
|
types = 0, port = 0;
|
||||||
const struct retro_controller_info *desc = NULL;
|
const struct retro_controller_info *desc = NULL;
|
||||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!setting)
|
if (!setting)
|
||||||
return -1;
|
return -1;
|
||||||
@ -2756,10 +2764,12 @@ void general_write_handler(void *data)
|
|||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0);
|
file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0);
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
uint32_t hash = setting ? menu_hash_calculate(setting->name) : 0;
|
uint32_t hash = setting ? menu_hash_calculate(setting->name) : 0;
|
||||||
uint64_t flags = menu_setting_get_flags(setting);
|
uint64_t flags = menu_setting_get_flags(setting);
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (!setting)
|
if (!setting)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -3005,7 +3015,9 @@ static bool setting_append_list_input_player_options(
|
|||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
const struct retro_keybind* const defaults =
|
const struct retro_keybind* const defaults =
|
||||||
(user == 0) ? retro_keybinds_1 : retro_keybinds_rest;
|
(user == 0) ? retro_keybinds_1 : retro_keybinds_rest;
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
snprintf(buffer[user], sizeof(buffer[user]),
|
snprintf(buffer[user], sizeof(buffer[user]),
|
||||||
"%s %u", menu_hash_to_str(MENU_VALUE_USER), user + 1);
|
"%s %u", menu_hash_to_str(MENU_VALUE_USER), user + 1);
|
||||||
|
@ -888,10 +888,15 @@ static uint32_t implementation_magic_value(void)
|
|||||||
{
|
{
|
||||||
size_t i, len;
|
size_t i, len;
|
||||||
uint32_t res = 0;
|
uint32_t res = 0;
|
||||||
|
rarch_system_info_t *info = NULL;
|
||||||
|
const char *lib = NULL;
|
||||||
const char *ver = PACKAGE_VERSION;
|
const char *ver = PACKAGE_VERSION;
|
||||||
unsigned api = core.retro_api_version();
|
unsigned api = core.retro_api_version();
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
|
||||||
const char *lib = info ? info->info.library_name : NULL;
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
|
if (info)
|
||||||
|
lib = info->info.library_name;
|
||||||
|
|
||||||
res |= api;
|
res |= api;
|
||||||
|
|
||||||
|
13
retroarch.c
13
retroarch.c
@ -352,14 +352,17 @@ const char *rarch_get_current_savefile_dir(void)
|
|||||||
|
|
||||||
static void set_paths_redirect(const char *path)
|
static void set_paths_redirect(const char *path)
|
||||||
{
|
{
|
||||||
|
uint32_t global_library_name_hash = 0;
|
||||||
bool check_global_library_name_hash = false;
|
bool check_global_library_name_hash = false;
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *info = rarch_system_info_get_ptr();
|
rarch_system_info_t *info = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &info);
|
||||||
|
|
||||||
uint32_t global_library_name_hash = ((global && info->info.library_name &&
|
if (global && info->info.library_name &&
|
||||||
(info->info.library_name[0] != '\0'))
|
(info->info.library_name[0] != '\0'))
|
||||||
? msg_hash_calculate(info->info.library_name) : 0);
|
global_library_name_hash = msg_hash_calculate(info->info.library_name);
|
||||||
|
|
||||||
/* Initialize current save directories with the values from the config */
|
/* Initialize current save directories with the values from the config */
|
||||||
strlcpy(current_savefile_dir,
|
strlcpy(current_savefile_dir,
|
||||||
@ -971,7 +974,9 @@ static void parse_input(int argc, char *argv[])
|
|||||||
static void rarch_init_savefile_paths(void)
|
static void rarch_init_savefile_paths(void)
|
||||||
{
|
{
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
event_command(EVENT_CMD_SAVEFILES_DEINIT);
|
event_command(EVENT_CMD_SAVEFILES_DEINIT);
|
||||||
|
|
||||||
|
110
runloop.c
110
runloop.c
@ -70,7 +70,6 @@
|
|||||||
#define DEFAULT_EXT ""
|
#define DEFAULT_EXT ""
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static rarch_system_info_t g_system;
|
|
||||||
|
|
||||||
#ifdef HAVE_MENU
|
#ifdef HAVE_MENU
|
||||||
struct retro_system_info g_system_menu;
|
struct retro_system_info g_system_menu;
|
||||||
@ -93,10 +92,6 @@ global_t *global_get_ptr(void)
|
|||||||
return &g_extern;
|
return &g_extern;
|
||||||
}
|
}
|
||||||
|
|
||||||
rarch_system_info_t *rarch_system_info_get_ptr(void)
|
|
||||||
{
|
|
||||||
return &g_system;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *runloop_msg_queue_pull(void)
|
const char *runloop_msg_queue_pull(void)
|
||||||
{
|
{
|
||||||
@ -413,16 +408,17 @@ static void check_shader_dir(bool pressed_next, bool pressed_prev)
|
|||||||
**/
|
**/
|
||||||
static bool rarch_game_specific_options(char **output)
|
static bool rarch_game_specific_options(char **output)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
const char *core_name = NULL;
|
const char *core_name = NULL;
|
||||||
const char *game_name = NULL;
|
const char *game_name = NULL;
|
||||||
config_file_t *option_file = NULL;
|
config_file_t *option_file = NULL;
|
||||||
char game_path[PATH_MAX_LENGTH] = {0};
|
char game_path[PATH_MAX_LENGTH] = {0};
|
||||||
char config_directory[PATH_MAX_LENGTH] = {0};
|
char config_directory[PATH_MAX_LENGTH] = {0};
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
core_name = system ? system->info.library_name : NULL;
|
core_name = system ? system->info.library_name : NULL;
|
||||||
game_name = global ? path_basename(global->name.base) : NULL;
|
game_name = global ? path_basename(global->name.base) : NULL;
|
||||||
|
|
||||||
@ -472,6 +468,7 @@ static void runloop_data_clear_state(void)
|
|||||||
bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
||||||
{
|
{
|
||||||
static char runloop_fullpath[PATH_MAX_LENGTH];
|
static char runloop_fullpath[PATH_MAX_LENGTH];
|
||||||
|
static rarch_system_info_t runloop_system;
|
||||||
static unsigned runloop_max_frames = false;
|
static unsigned runloop_max_frames = false;
|
||||||
static bool runloop_frame_time_last = false;
|
static bool runloop_frame_time_last = false;
|
||||||
static bool runloop_set_frame_limit = false;
|
static bool runloop_set_frame_limit = false;
|
||||||
@ -487,7 +484,6 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
|||||||
static slock_t *runloop_msg_queue_lock = NULL;
|
static slock_t *runloop_msg_queue_lock = NULL;
|
||||||
#endif
|
#endif
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
|
||||||
|
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
@ -497,54 +493,62 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
|||||||
case RUNLOOP_CTL_SHADER_DIR_INIT:
|
case RUNLOOP_CTL_SHADER_DIR_INIT:
|
||||||
return shader_dir_init();
|
return shader_dir_init();
|
||||||
case RUNLOOP_CTL_SYSTEM_INFO_INIT:
|
case RUNLOOP_CTL_SYSTEM_INFO_INIT:
|
||||||
core.retro_get_system_info(&system->info);
|
core.retro_get_system_info(&runloop_system.info);
|
||||||
|
|
||||||
if (!system->info.library_name)
|
if (!runloop_system.info.library_name)
|
||||||
system->info.library_name = msg_hash_to_str(MSG_UNKNOWN);
|
runloop_system.info.library_name = msg_hash_to_str(MSG_UNKNOWN);
|
||||||
if (!system->info.library_version)
|
if (!runloop_system.info.library_version)
|
||||||
system->info.library_version = "v0";
|
runloop_system.info.library_version = "v0";
|
||||||
|
|
||||||
#ifndef RARCH_CONSOLE
|
#ifndef RARCH_CONSOLE
|
||||||
strlcpy(system->title_buf,
|
strlcpy(runloop_system.title_buf,
|
||||||
msg_hash_to_str(MSG_PROGRAM), sizeof(system->title_buf));
|
msg_hash_to_str(MSG_PROGRAM), sizeof(runloop_system.title_buf));
|
||||||
strlcat(system->title_buf, " : ", sizeof(system->title_buf));
|
strlcat(runloop_system.title_buf, " : ", sizeof(runloop_system.title_buf));
|
||||||
#endif
|
#endif
|
||||||
strlcat(system->title_buf, system->info.library_name, sizeof(system->title_buf));
|
strlcat(runloop_system.title_buf, runloop_system.info.library_name, sizeof(runloop_system.title_buf));
|
||||||
strlcat(system->title_buf, " ", sizeof(system->title_buf));
|
strlcat(runloop_system.title_buf, " ", sizeof(runloop_system.title_buf));
|
||||||
strlcat(system->title_buf, system->info.library_version, sizeof(system->title_buf));
|
strlcat(runloop_system.title_buf, runloop_system.info.library_version, sizeof(runloop_system.title_buf));
|
||||||
strlcpy(system->valid_extensions, system->info.valid_extensions ?
|
strlcpy(runloop_system.valid_extensions, runloop_system.info.valid_extensions ?
|
||||||
system->info.valid_extensions : DEFAULT_EXT,
|
runloop_system.info.valid_extensions : DEFAULT_EXT,
|
||||||
sizeof(system->valid_extensions));
|
sizeof(runloop_system.valid_extensions));
|
||||||
system->block_extract = system->info.block_extract;
|
runloop_system.block_extract = runloop_system.info.block_extract;
|
||||||
break;
|
break;
|
||||||
case RUNLOOP_CTL_GET_CORE_OPTION_SIZE:
|
case RUNLOOP_CTL_GET_CORE_OPTION_SIZE:
|
||||||
{
|
{
|
||||||
unsigned *idx = (unsigned*)data;
|
unsigned *idx = (unsigned*)data;
|
||||||
if (!idx)
|
if (!idx)
|
||||||
return false;
|
return false;
|
||||||
*idx = core_option_size(system->core_options);
|
*idx = core_option_size(runloop_system.core_options);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
case RUNLOOP_CTL_HAS_CORE_OPTIONS:
|
case RUNLOOP_CTL_HAS_CORE_OPTIONS:
|
||||||
return system && system->core_options;
|
return runloop_system.core_options;
|
||||||
case RUNLOOP_CTL_SYSTEM_INFO_FREE:
|
case RUNLOOP_CTL_SYSTEM_INFO_GET:
|
||||||
if (system->core_options)
|
|
||||||
{
|
{
|
||||||
core_option_flush(system->core_options);
|
rarch_system_info_t **system = (rarch_system_info_t**)data;
|
||||||
core_option_free(system->core_options);
|
if (!system)
|
||||||
|
return false;
|
||||||
|
*system = &runloop_system;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
case RUNLOOP_CTL_SYSTEM_INFO_FREE:
|
||||||
|
if (runloop_system.core_options)
|
||||||
|
{
|
||||||
|
core_option_flush(runloop_system.core_options);
|
||||||
|
core_option_free(runloop_system.core_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
system->core_options = NULL;
|
runloop_system.core_options = NULL;
|
||||||
|
|
||||||
/* No longer valid. */
|
/* No longer valid. */
|
||||||
if (system->special)
|
if (runloop_system.special)
|
||||||
free(system->special);
|
free(runloop_system.special);
|
||||||
system->special = NULL;
|
runloop_system.special = NULL;
|
||||||
if (system->ports)
|
if (runloop_system.ports)
|
||||||
free(system->ports);
|
free(runloop_system.ports);
|
||||||
system->ports = NULL;
|
runloop_system.ports = NULL;
|
||||||
|
|
||||||
memset(&g_system, 0, sizeof(rarch_system_info_t));
|
memset(&runloop_system, 0, sizeof(rarch_system_info_t));
|
||||||
break;
|
break;
|
||||||
case RUNLOOP_CTL_IS_FRAME_COUNT_END:
|
case RUNLOOP_CTL_IS_FRAME_COUNT_END:
|
||||||
{
|
{
|
||||||
@ -998,14 +1002,14 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
|||||||
rarch_task_deinit();
|
rarch_task_deinit();
|
||||||
break;
|
break;
|
||||||
case RUNLOOP_CTL_IS_CORE_OPTION_UPDATED:
|
case RUNLOOP_CTL_IS_CORE_OPTION_UPDATED:
|
||||||
return system->core_options ?
|
return runloop_system.core_options ?
|
||||||
core_option_updated(system->core_options) : false;
|
core_option_updated(runloop_system.core_options) : false;
|
||||||
case RUNLOOP_CTL_CORE_OPTION_PREV:
|
case RUNLOOP_CTL_CORE_OPTION_PREV:
|
||||||
{
|
{
|
||||||
unsigned *idx = (unsigned*)data;
|
unsigned *idx = (unsigned*)data;
|
||||||
if (!idx)
|
if (!idx)
|
||||||
return false;
|
return false;
|
||||||
core_option_prev(system->core_options, *idx);
|
core_option_prev(runloop_system.core_options, *idx);
|
||||||
if (ui_companion_is_on_foreground())
|
if (ui_companion_is_on_foreground())
|
||||||
ui_companion_driver_notify_refresh();
|
ui_companion_driver_notify_refresh();
|
||||||
}
|
}
|
||||||
@ -1015,7 +1019,7 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
|||||||
unsigned *idx = (unsigned*)data;
|
unsigned *idx = (unsigned*)data;
|
||||||
if (!idx)
|
if (!idx)
|
||||||
return false;
|
return false;
|
||||||
core_option_next(system->core_options, *idx);
|
core_option_next(runloop_system.core_options, *idx);
|
||||||
if (ui_companion_is_on_foreground())
|
if (ui_companion_is_on_foreground())
|
||||||
ui_companion_driver_notify_refresh();
|
ui_companion_driver_notify_refresh();
|
||||||
}
|
}
|
||||||
@ -1024,11 +1028,11 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
|||||||
{
|
{
|
||||||
struct retro_variable *var = (struct retro_variable*)data;
|
struct retro_variable *var = (struct retro_variable*)data;
|
||||||
|
|
||||||
if (!system || !system->core_options || !var)
|
if (!runloop_system.core_options || !var)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
RARCH_LOG("Environ GET_VARIABLE %s:\n", var->key);
|
RARCH_LOG("Environ GET_VARIABLE %s:\n", var->key);
|
||||||
core_option_get(system->core_options, var);
|
core_option_get(runloop_system.core_options, var);
|
||||||
RARCH_LOG("\t%s\n", var->value ? var->value : "N/A");
|
RARCH_LOG("\t%s\n", var->value ? var->value : "N/A");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -1054,22 +1058,22 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
|
|||||||
|
|
||||||
if(ret)
|
if(ret)
|
||||||
{
|
{
|
||||||
system->core_options = core_option_new(game_options_path, vars);
|
runloop_system.core_options = core_option_new(game_options_path, vars);
|
||||||
free(game_options_path);
|
free(game_options_path);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
system->core_options = core_option_new(options_path, vars);
|
runloop_system.core_options = core_option_new(options_path, vars);
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RUNLOOP_CTL_CORE_OPTIONS_DEINIT:
|
case RUNLOOP_CTL_CORE_OPTIONS_DEINIT:
|
||||||
if (!system->core_options)
|
if (!runloop_system.core_options)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
core_option_flush(system->core_options);
|
core_option_flush(runloop_system.core_options);
|
||||||
core_option_free(system->core_options);
|
core_option_free(runloop_system.core_options);
|
||||||
|
|
||||||
system->core_options = NULL;
|
runloop_system.core_options = NULL;
|
||||||
return true;
|
return true;
|
||||||
case RUNLOOP_CTL_NONE:
|
case RUNLOOP_CTL_NONE:
|
||||||
default:
|
default:
|
||||||
@ -1174,12 +1178,14 @@ int runloop_iterate(unsigned *sleep_ms)
|
|||||||
static retro_input_t last_input = 0;
|
static retro_input_t last_input = 0;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
rarch_system_info_t *system = NULL;
|
||||||
|
|
||||||
cmd.state[1] = last_input;
|
cmd.state[1] = last_input;
|
||||||
cmd.state[0] = input_keys_pressed();
|
cmd.state[0] = input_keys_pressed();
|
||||||
last_input = cmd.state[0];
|
last_input = cmd.state[0];
|
||||||
|
|
||||||
|
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||||
|
|
||||||
if (runloop_ctl(RUNLOOP_CTL_IS_FRAME_TIME_LAST, NULL))
|
if (runloop_ctl(RUNLOOP_CTL_IS_FRAME_TIME_LAST, NULL))
|
||||||
{
|
{
|
||||||
frame_time_last = 0;
|
frame_time_last = 0;
|
||||||
|
@ -100,6 +100,7 @@ enum runloop_ctl_state
|
|||||||
RUNLOOP_CTL_CORE_OPTIONS_DEINIT,
|
RUNLOOP_CTL_CORE_OPTIONS_DEINIT,
|
||||||
RUNLOOP_CTL_SHADER_DIR_DEINIT,
|
RUNLOOP_CTL_SHADER_DIR_DEINIT,
|
||||||
RUNLOOP_CTL_SHADER_DIR_INIT,
|
RUNLOOP_CTL_SHADER_DIR_INIT,
|
||||||
|
RUNLOOP_CTL_SYSTEM_INFO_GET,
|
||||||
RUNLOOP_CTL_SYSTEM_INFO_INIT,
|
RUNLOOP_CTL_SYSTEM_INFO_INIT,
|
||||||
RUNLOOP_CTL_SYSTEM_INFO_FREE,
|
RUNLOOP_CTL_SYSTEM_INFO_FREE,
|
||||||
RUNLOOP_CTL_PREPARE_DUMMY
|
RUNLOOP_CTL_PREPARE_DUMMY
|
||||||
|
Loading…
x
Reference in New Issue
Block a user