(dynamic.c) Use rarch_system_info_get_ptr

This commit is contained in:
twinaphex 2015-06-25 12:57:54 +02:00
parent bee3c5f11d
commit fa8bbabce7

121
dynamic.c

@ -514,8 +514,9 @@ void init_libretro_sym(enum rarch_core_type type)
**/
void uninit_libretro_sym(void)
{
driver_t *driver = driver_get_ptr();
global_t *global = global_get_ptr();
driver_t *driver = driver_get_ptr();
global_t *global = global_get_ptr();
rarch_system_info_t *system = rarch_system_info_get_ptr();
#ifdef HAVE_DYNAMIC
if (lib_handle)
@ -523,15 +524,15 @@ void uninit_libretro_sym(void)
lib_handle = NULL;
#endif
if (global->system.core_options)
if (system->core_options)
{
core_option_flush(global->system.core_options);
core_option_free(global->system.core_options);
core_option_flush(system->core_options);
core_option_free(system->core_options);
}
/* No longer valid. */
free(global->system.special);
free(global->system.ports);
free(system->special);
free(system->ports);
memset(&global->system, 0, sizeof(global->system));
driver->camera_active = false;
driver->location_active = false;
@ -592,6 +593,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
driver_t *driver = driver_get_ptr();
settings_t *settings = config_get_ptr();
global_t *global = global_get_ptr();
rarch_system_info_t *system = rarch_system_info_get_ptr();
if (ignore_environment_cb)
return false;
@ -614,8 +616,8 @@ bool rarch_environment_cb(unsigned cmd, void *data)
struct retro_variable *var = (struct retro_variable*)data;
RARCH_LOG("Environ GET_VARIABLE %s:\n", var->key);
if (global->system.core_options)
core_option_get(global->system.core_options, var);
if (system && system->core_options)
core_option_get(system->core_options, var);
else
var->value = NULL;
@ -624,18 +626,18 @@ bool rarch_environment_cb(unsigned cmd, void *data)
}
case RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE:
*(bool*)data = global->system.core_options ?
core_option_updated(global->system.core_options) : false;
*(bool*)data = system->core_options ?
core_option_updated(system->core_options) : false;
break;
case RETRO_ENVIRONMENT_SET_VARIABLES:
{
RARCH_LOG("Environ SET_VARIABLES.\n");
if (global->system.core_options)
if (system && system->core_options)
{
core_option_flush(global->system.core_options);
core_option_free(global->system.core_options);
core_option_flush(system->core_options);
core_option_free(system->core_options);
}
{
@ -649,7 +651,8 @@ bool rarch_environment_cb(unsigned cmd, void *data)
"retroarch-core-options.cfg", sizeof(buf));
options_path = buf;
}
global->system.core_options = core_option_new(options_path, vars);
system->core_options = core_option_new(options_path, vars);
}
break;
@ -670,7 +673,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
if (!settings->video.allow_rotate)
break;
global->system.rotation = rotation;
system->rotation = rotation;
if (!video_driver_set_rotation(rotation))
return false;
@ -679,14 +682,14 @@ bool rarch_environment_cb(unsigned cmd, void *data)
case RETRO_ENVIRONMENT_SHUTDOWN:
RARCH_LOG("Environ SHUTDOWN.\n");
global->system.shutdown = true;
system->shutdown = true;
global->core_shutdown_initiated = true;
break;
case RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL:
global->system.performance_level = *(const unsigned*)data;
system->performance_level = *(const unsigned*)data;
RARCH_LOG("Environ PERFORMANCE_LEVEL: %u.\n",
global->system.performance_level);
system->performance_level);
break;
case RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY:
@ -746,8 +749,8 @@ bool rarch_environment_cb(unsigned cmd, void *data)
unsigned retro_id, retro_port;
const struct retro_input_descriptor *desc = NULL;
memset(global->system.input_desc_btn, 0,
sizeof(global->system.input_desc_btn));
memset(system->input_desc_btn, 0,
sizeof(system->input_desc_btn));
desc = (const struct retro_input_descriptor*)data;
@ -775,12 +778,12 @@ bool rarch_environment_cb(unsigned cmd, void *data)
switch (desc->index)
{
case RETRO_DEVICE_INDEX_ANALOG_LEFT:
global->system.input_desc_btn[retro_port][RARCH_ANALOG_LEFT_X_PLUS] = desc->description;
global->system.input_desc_btn[retro_port][RARCH_ANALOG_LEFT_X_MINUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_LEFT_X_PLUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_LEFT_X_MINUS] = desc->description;
break;
case RETRO_DEVICE_INDEX_ANALOG_RIGHT:
global->system.input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_X_PLUS] = desc->description;
global->system.input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_X_MINUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_X_PLUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_X_MINUS] = desc->description;
break;
}
break;
@ -788,19 +791,19 @@ bool rarch_environment_cb(unsigned cmd, void *data)
switch (desc->index)
{
case RETRO_DEVICE_INDEX_ANALOG_LEFT:
global->system.input_desc_btn[retro_port][RARCH_ANALOG_LEFT_Y_PLUS] = desc->description;
global->system.input_desc_btn[retro_port][RARCH_ANALOG_LEFT_Y_MINUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_LEFT_Y_PLUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_LEFT_Y_MINUS] = desc->description;
break;
case RETRO_DEVICE_INDEX_ANALOG_RIGHT:
global->system.input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_Y_PLUS] = desc->description;
global->system.input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_Y_MINUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_Y_PLUS] = desc->description;
system->input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_Y_MINUS] = desc->description;
break;
}
break;
}
}
else
global->system.input_desc_btn[retro_port][retro_id] = desc->description;
system->input_desc_btn[retro_port][retro_id] = desc->description;
}
static const char *libretro_btn_desc[] = {
@ -815,7 +818,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
{
for (retro_id = 0; retro_id < RARCH_FIRST_CUSTOM_BIND; retro_id++)
{
const char *description = global->system.input_desc_btn[p][retro_id];
const char *description = system->input_desc_btn[p][retro_id];
if (!description)
continue;
@ -836,14 +839,14 @@ bool rarch_environment_cb(unsigned cmd, void *data)
(const struct retro_keyboard_callback*)data;
RARCH_LOG("Environ SET_KEYBOARD_CALLBACK.\n");
global->system.key_event = info->callback;
global->frontend_key_event = global->system.key_event;
system->key_event = info->callback;
global->frontend_key_event = system->key_event;
break;
}
case RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE:
RARCH_LOG("Environ SET_DISK_CONTROL_INTERFACE.\n");
global->system.disk_control =
system->disk_control =
*(const struct retro_disk_control_callback*)data;
break;
@ -923,7 +926,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
{
bool state = *(const bool*)data;
RARCH_LOG("Environ SET_SUPPORT_NO_GAME: %s.\n", state ? "yes" : "no");
global->system.no_content = state;
system->no_content = state;
break;
}
@ -975,7 +978,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
return false;
#endif
global->system.frame_time = *info;
system->frame_time = *info;
break;
}
@ -1019,9 +1022,9 @@ bool rarch_environment_cb(unsigned cmd, void *data)
(struct retro_camera_callback*)data;
RARCH_LOG("Environ GET_CAMERA_INTERFACE.\n");
cb->start = driver_camera_start;
cb->stop = driver_camera_stop;
global->system.camera_callback = *cb;
cb->start = driver_camera_start;
cb->stop = driver_camera_stop;
system->camera_callback = *cb;
driver->camera_active = cb->caps != 0;
break;
}
@ -1032,12 +1035,12 @@ bool rarch_environment_cb(unsigned cmd, void *data)
(struct retro_location_callback*)data;
RARCH_LOG("Environ GET_LOCATION_INTERFACE.\n");
cb->start = driver_location_start;
cb->stop = driver_location_stop;
cb->get_position = driver_location_get_position;
cb->set_interval = driver_location_set_interval;
global->system.location_callback = *cb;
driver->location_active = true;
cb->start = driver_location_start;
cb->stop = driver_location_stop;
cb->get_position = driver_location_get_position;
cb->set_interval = driver_location_set_interval;
system->location_callback = *cb;
driver->location_active = true;
break;
}
@ -1105,16 +1108,16 @@ bool rarch_environment_cb(unsigned cmd, void *data)
}
}
free(global->system.special);
global->system.special = (struct retro_subsystem_info*)
calloc(i, sizeof(*global->system.special));
free(system->special);
system->special = (struct retro_subsystem_info*)
calloc(i, sizeof(*system->special));
if (!global->system.special)
if (!system->special)
return false;
memcpy(global->system.special, info,
i * sizeof(*global->system.special));
global->system.num_special = i;
memcpy(system->special, info,
i * sizeof(*system->special));
system->num_special = i;
break;
}
@ -1134,15 +1137,15 @@ bool rarch_environment_cb(unsigned cmd, void *data)
info[i].types[j].id);
}
free(global->system.ports);
global->system.ports = (struct retro_controller_info*)
calloc(i, sizeof(*global->system.ports));
if (!global->system.ports)
free(system->ports);
system->ports = (struct retro_controller_info*)
calloc(i, sizeof(*system->ports));
if (!system->ports)
return false;
memcpy(global->system.ports, info,
i * sizeof(*global->system.ports));
global->system.num_ports = i;
memcpy(system->ports, info,
i * sizeof(*system->ports));
system->num_ports = i;
break;
}