mirror of
https://github.com/libretro/RetroArch.git
synced 2025-04-02 10:51:52 -04:00
(dynamic.c) Use rarch_system_info_get_ptr
This commit is contained in:
parent
bee3c5f11d
commit
fa8bbabce7
1 changed files with 62 additions and 59 deletions
121
dynamic.c
121
dynamic.c
|
@ -514,8 +514,9 @@ void init_libretro_sym(enum rarch_core_type type)
|
||||||
**/
|
**/
|
||||||
void uninit_libretro_sym(void)
|
void uninit_libretro_sym(void)
|
||||||
{
|
{
|
||||||
driver_t *driver = driver_get_ptr();
|
driver_t *driver = driver_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
|
rarch_system_info_t *system = rarch_system_info_get_ptr();
|
||||||
|
|
||||||
#ifdef HAVE_DYNAMIC
|
#ifdef HAVE_DYNAMIC
|
||||||
if (lib_handle)
|
if (lib_handle)
|
||||||
|
@ -523,15 +524,15 @@ void uninit_libretro_sym(void)
|
||||||
lib_handle = NULL;
|
lib_handle = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (global->system.core_options)
|
if (system->core_options)
|
||||||
{
|
{
|
||||||
core_option_flush(global->system.core_options);
|
core_option_flush(system->core_options);
|
||||||
core_option_free(global->system.core_options);
|
core_option_free(system->core_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No longer valid. */
|
/* No longer valid. */
|
||||||
free(global->system.special);
|
free(system->special);
|
||||||
free(global->system.ports);
|
free(system->ports);
|
||||||
memset(&global->system, 0, sizeof(global->system));
|
memset(&global->system, 0, sizeof(global->system));
|
||||||
driver->camera_active = false;
|
driver->camera_active = false;
|
||||||
driver->location_active = false;
|
driver->location_active = false;
|
||||||
|
@ -592,6 +593,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
driver_t *driver = driver_get_ptr();
|
driver_t *driver = 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();
|
||||||
|
|
||||||
if (ignore_environment_cb)
|
if (ignore_environment_cb)
|
||||||
return false;
|
return false;
|
||||||
|
@ -614,8 +616,8 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
struct retro_variable *var = (struct retro_variable*)data;
|
struct retro_variable *var = (struct retro_variable*)data;
|
||||||
RARCH_LOG("Environ GET_VARIABLE %s:\n", var->key);
|
RARCH_LOG("Environ GET_VARIABLE %s:\n", var->key);
|
||||||
|
|
||||||
if (global->system.core_options)
|
if (system && system->core_options)
|
||||||
core_option_get(global->system.core_options, var);
|
core_option_get(system->core_options, var);
|
||||||
else
|
else
|
||||||
var->value = NULL;
|
var->value = NULL;
|
||||||
|
|
||||||
|
@ -624,18 +626,18 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
case RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE:
|
case RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE:
|
||||||
*(bool*)data = global->system.core_options ?
|
*(bool*)data = system->core_options ?
|
||||||
core_option_updated(global->system.core_options) : false;
|
core_option_updated(system->core_options) : false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RETRO_ENVIRONMENT_SET_VARIABLES:
|
case RETRO_ENVIRONMENT_SET_VARIABLES:
|
||||||
{
|
{
|
||||||
RARCH_LOG("Environ SET_VARIABLES.\n");
|
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_flush(system->core_options);
|
||||||
core_option_free(global->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));
|
"retroarch-core-options.cfg", sizeof(buf));
|
||||||
options_path = buf;
|
options_path = buf;
|
||||||
}
|
}
|
||||||
global->system.core_options = core_option_new(options_path, vars);
|
|
||||||
|
system->core_options = core_option_new(options_path, vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -670,7 +673,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
if (!settings->video.allow_rotate)
|
if (!settings->video.allow_rotate)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
global->system.rotation = rotation;
|
system->rotation = rotation;
|
||||||
|
|
||||||
if (!video_driver_set_rotation(rotation))
|
if (!video_driver_set_rotation(rotation))
|
||||||
return false;
|
return false;
|
||||||
|
@ -679,14 +682,14 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
|
|
||||||
case RETRO_ENVIRONMENT_SHUTDOWN:
|
case RETRO_ENVIRONMENT_SHUTDOWN:
|
||||||
RARCH_LOG("Environ SHUTDOWN.\n");
|
RARCH_LOG("Environ SHUTDOWN.\n");
|
||||||
global->system.shutdown = true;
|
system->shutdown = true;
|
||||||
global->core_shutdown_initiated = true;
|
global->core_shutdown_initiated = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL:
|
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",
|
RARCH_LOG("Environ PERFORMANCE_LEVEL: %u.\n",
|
||||||
global->system.performance_level);
|
system->performance_level);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY:
|
case RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY:
|
||||||
|
@ -746,8 +749,8 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
unsigned retro_id, retro_port;
|
unsigned retro_id, retro_port;
|
||||||
const struct retro_input_descriptor *desc = NULL;
|
const struct retro_input_descriptor *desc = NULL;
|
||||||
|
|
||||||
memset(global->system.input_desc_btn, 0,
|
memset(system->input_desc_btn, 0,
|
||||||
sizeof(global->system.input_desc_btn));
|
sizeof(system->input_desc_btn));
|
||||||
|
|
||||||
desc = (const struct retro_input_descriptor*)data;
|
desc = (const struct retro_input_descriptor*)data;
|
||||||
|
|
||||||
|
@ -775,12 +778,12 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
switch (desc->index)
|
switch (desc->index)
|
||||||
{
|
{
|
||||||
case RETRO_DEVICE_INDEX_ANALOG_LEFT:
|
case RETRO_DEVICE_INDEX_ANALOG_LEFT:
|
||||||
global->system.input_desc_btn[retro_port][RARCH_ANALOG_LEFT_X_PLUS] = desc->description;
|
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_MINUS] = desc->description;
|
||||||
break;
|
break;
|
||||||
case RETRO_DEVICE_INDEX_ANALOG_RIGHT:
|
case RETRO_DEVICE_INDEX_ANALOG_RIGHT:
|
||||||
global->system.input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_X_PLUS] = desc->description;
|
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_MINUS] = desc->description;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -788,19 +791,19 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
switch (desc->index)
|
switch (desc->index)
|
||||||
{
|
{
|
||||||
case RETRO_DEVICE_INDEX_ANALOG_LEFT:
|
case RETRO_DEVICE_INDEX_ANALOG_LEFT:
|
||||||
global->system.input_desc_btn[retro_port][RARCH_ANALOG_LEFT_Y_PLUS] = desc->description;
|
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_MINUS] = desc->description;
|
||||||
break;
|
break;
|
||||||
case RETRO_DEVICE_INDEX_ANALOG_RIGHT:
|
case RETRO_DEVICE_INDEX_ANALOG_RIGHT:
|
||||||
global->system.input_desc_btn[retro_port][RARCH_ANALOG_RIGHT_Y_PLUS] = desc->description;
|
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_MINUS] = desc->description;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
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[] = {
|
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++)
|
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)
|
if (!description)
|
||||||
continue;
|
continue;
|
||||||
|
@ -836,14 +839,14 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
(const struct retro_keyboard_callback*)data;
|
(const struct retro_keyboard_callback*)data;
|
||||||
|
|
||||||
RARCH_LOG("Environ SET_KEYBOARD_CALLBACK.\n");
|
RARCH_LOG("Environ SET_KEYBOARD_CALLBACK.\n");
|
||||||
global->system.key_event = info->callback;
|
system->key_event = info->callback;
|
||||||
global->frontend_key_event = global->system.key_event;
|
global->frontend_key_event = system->key_event;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE:
|
case RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE:
|
||||||
RARCH_LOG("Environ SET_DISK_CONTROL_INTERFACE.\n");
|
RARCH_LOG("Environ SET_DISK_CONTROL_INTERFACE.\n");
|
||||||
global->system.disk_control =
|
system->disk_control =
|
||||||
*(const struct retro_disk_control_callback*)data;
|
*(const struct retro_disk_control_callback*)data;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -923,7 +926,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
{
|
{
|
||||||
bool state = *(const bool*)data;
|
bool state = *(const bool*)data;
|
||||||
RARCH_LOG("Environ SET_SUPPORT_NO_GAME: %s.\n", state ? "yes" : "no");
|
RARCH_LOG("Environ SET_SUPPORT_NO_GAME: %s.\n", state ? "yes" : "no");
|
||||||
global->system.no_content = state;
|
system->no_content = state;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -975,7 +978,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
global->system.frame_time = *info;
|
system->frame_time = *info;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1019,9 +1022,9 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
(struct retro_camera_callback*)data;
|
(struct retro_camera_callback*)data;
|
||||||
|
|
||||||
RARCH_LOG("Environ GET_CAMERA_INTERFACE.\n");
|
RARCH_LOG("Environ GET_CAMERA_INTERFACE.\n");
|
||||||
cb->start = driver_camera_start;
|
cb->start = driver_camera_start;
|
||||||
cb->stop = driver_camera_stop;
|
cb->stop = driver_camera_stop;
|
||||||
global->system.camera_callback = *cb;
|
system->camera_callback = *cb;
|
||||||
driver->camera_active = cb->caps != 0;
|
driver->camera_active = cb->caps != 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1032,12 +1035,12 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
(struct retro_location_callback*)data;
|
(struct retro_location_callback*)data;
|
||||||
|
|
||||||
RARCH_LOG("Environ GET_LOCATION_INTERFACE.\n");
|
RARCH_LOG("Environ GET_LOCATION_INTERFACE.\n");
|
||||||
cb->start = driver_location_start;
|
cb->start = driver_location_start;
|
||||||
cb->stop = driver_location_stop;
|
cb->stop = driver_location_stop;
|
||||||
cb->get_position = driver_location_get_position;
|
cb->get_position = driver_location_get_position;
|
||||||
cb->set_interval = driver_location_set_interval;
|
cb->set_interval = driver_location_set_interval;
|
||||||
global->system.location_callback = *cb;
|
system->location_callback = *cb;
|
||||||
driver->location_active = true;
|
driver->location_active = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,16 +1108,16 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(global->system.special);
|
free(system->special);
|
||||||
global->system.special = (struct retro_subsystem_info*)
|
system->special = (struct retro_subsystem_info*)
|
||||||
calloc(i, sizeof(*global->system.special));
|
calloc(i, sizeof(*system->special));
|
||||||
|
|
||||||
if (!global->system.special)
|
if (!system->special)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
memcpy(global->system.special, info,
|
memcpy(system->special, info,
|
||||||
i * sizeof(*global->system.special));
|
i * sizeof(*system->special));
|
||||||
global->system.num_special = i;
|
system->num_special = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1134,15 +1137,15 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
||||||
info[i].types[j].id);
|
info[i].types[j].id);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(global->system.ports);
|
free(system->ports);
|
||||||
global->system.ports = (struct retro_controller_info*)
|
system->ports = (struct retro_controller_info*)
|
||||||
calloc(i, sizeof(*global->system.ports));
|
calloc(i, sizeof(*system->ports));
|
||||||
if (!global->system.ports)
|
if (!system->ports)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
memcpy(global->system.ports, info,
|
memcpy(system->ports, info,
|
||||||
i * sizeof(*global->system.ports));
|
i * sizeof(*system->ports));
|
||||||
global->system.num_ports = i;
|
system->num_ports = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue