citra: fix cemuhook module crash
fixes #4144. Updated inih to use the newly added GetString function which returns the default value on empty string.
This commit is contained in:
parent
4ee914c7a8
commit
b459164c2a
2
externals/inih/inih
vendored
2
externals/inih/inih
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 56edbbbef9ba432521442ee47ba7d1c8de37e63d
|
Subproject commit 2023872dfffb38b6a98f2c45a0eb25652aaea91f
|
@ -74,7 +74,7 @@ void Config::ReadValues() {
|
|||||||
for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
|
for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
|
||||||
std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
|
std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
|
||||||
Settings::values.buttons[i] =
|
Settings::values.buttons[i] =
|
||||||
sdl2_config->Get("Controls", Settings::NativeButton::mapping[i], default_param);
|
sdl2_config->GetString("Controls", Settings::NativeButton::mapping[i], default_param);
|
||||||
if (Settings::values.buttons[i].empty())
|
if (Settings::values.buttons[i].empty())
|
||||||
Settings::values.buttons[i] = default_param;
|
Settings::values.buttons[i] = default_param;
|
||||||
}
|
}
|
||||||
@ -84,18 +84,18 @@ void Config::ReadValues() {
|
|||||||
default_analogs[i][0], default_analogs[i][1], default_analogs[i][2],
|
default_analogs[i][0], default_analogs[i][1], default_analogs[i][2],
|
||||||
default_analogs[i][3], default_analogs[i][4], 0.5f);
|
default_analogs[i][3], default_analogs[i][4], 0.5f);
|
||||||
Settings::values.analogs[i] =
|
Settings::values.analogs[i] =
|
||||||
sdl2_config->Get("Controls", Settings::NativeAnalog::mapping[i], default_param);
|
sdl2_config->GetString("Controls", Settings::NativeAnalog::mapping[i], default_param);
|
||||||
if (Settings::values.analogs[i].empty())
|
if (Settings::values.analogs[i].empty())
|
||||||
Settings::values.analogs[i] = default_param;
|
Settings::values.analogs[i] = default_param;
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::values.motion_device =
|
Settings::values.motion_device = sdl2_config->GetString(
|
||||||
sdl2_config->Get("Controls", "motion_device",
|
"Controls", "motion_device",
|
||||||
"engine:motion_emu,update_period:100,sensitivity:0.01,tilt_clamp:90.0");
|
"engine:motion_emu,update_period:100,sensitivity:0.01,tilt_clamp:90.0");
|
||||||
Settings::values.touch_device =
|
Settings::values.touch_device =
|
||||||
sdl2_config->Get("Controls", "touch_device", "engine:emu_window");
|
sdl2_config->GetString("Controls", "touch_device", "engine:emu_window");
|
||||||
Settings::values.udp_input_address =
|
Settings::values.udp_input_address = sdl2_config->GetString(
|
||||||
sdl2_config->Get("Controls", "udp_input_address", InputCommon::CemuhookUDP::DEFAULT_ADDR);
|
"Controls", "udp_input_address", InputCommon::CemuhookUDP::DEFAULT_ADDR);
|
||||||
Settings::values.udp_input_port = static_cast<u16>(sdl2_config->GetInteger(
|
Settings::values.udp_input_port = static_cast<u16>(sdl2_config->GetInteger(
|
||||||
"Controls", "udp_input_port", InputCommon::CemuhookUDP::DEFAULT_PORT));
|
"Controls", "udp_input_port", InputCommon::CemuhookUDP::DEFAULT_PORT));
|
||||||
|
|
||||||
@ -155,10 +155,10 @@ void Config::ReadValues() {
|
|||||||
static_cast<u16>(sdl2_config->GetInteger("Layout", "custom_bottom_bottom", 480));
|
static_cast<u16>(sdl2_config->GetInteger("Layout", "custom_bottom_bottom", 480));
|
||||||
|
|
||||||
// Audio
|
// Audio
|
||||||
Settings::values.sink_id = sdl2_config->Get("Audio", "output_engine", "auto");
|
Settings::values.sink_id = sdl2_config->GetString("Audio", "output_engine", "auto");
|
||||||
Settings::values.enable_audio_stretching =
|
Settings::values.enable_audio_stretching =
|
||||||
sdl2_config->GetBoolean("Audio", "enable_audio_stretching", true);
|
sdl2_config->GetBoolean("Audio", "enable_audio_stretching", true);
|
||||||
Settings::values.audio_device_id = sdl2_config->Get("Audio", "output_device", "auto");
|
Settings::values.audio_device_id = sdl2_config->GetString("Audio", "output_device", "auto");
|
||||||
Settings::values.volume = sdl2_config->GetReal("Audio", "volume", 1);
|
Settings::values.volume = sdl2_config->GetReal("Audio", "volume", 1);
|
||||||
|
|
||||||
// Data Storage
|
// Data Storage
|
||||||
@ -181,7 +181,7 @@ void Config::ReadValues() {
|
|||||||
t.tm_year = 100;
|
t.tm_year = 100;
|
||||||
t.tm_isdst = 0;
|
t.tm_isdst = 0;
|
||||||
std::istringstream string_stream(
|
std::istringstream string_stream(
|
||||||
sdl2_config->Get("System", "init_time", "2000-01-01 00:00:01"));
|
sdl2_config->GetString("System", "init_time", "2000-01-01 00:00:01"));
|
||||||
string_stream >> std::get_time(&t, "%Y-%m-%d %H:%M:%S");
|
string_stream >> std::get_time(&t, "%Y-%m-%d %H:%M:%S");
|
||||||
if (string_stream.fail()) {
|
if (string_stream.fail()) {
|
||||||
LOG_ERROR(Config, "Failed To parse init_time. Using 2000-01-01 00:00:01");
|
LOG_ERROR(Config, "Failed To parse init_time. Using 2000-01-01 00:00:01");
|
||||||
@ -195,26 +195,26 @@ void Config::ReadValues() {
|
|||||||
// Camera
|
// Camera
|
||||||
using namespace Service::CAM;
|
using namespace Service::CAM;
|
||||||
Settings::values.camera_name[OuterRightCamera] =
|
Settings::values.camera_name[OuterRightCamera] =
|
||||||
sdl2_config->Get("Camera", "camera_outer_right_name", "blank");
|
sdl2_config->GetString("Camera", "camera_outer_right_name", "blank");
|
||||||
Settings::values.camera_config[OuterRightCamera] =
|
Settings::values.camera_config[OuterRightCamera] =
|
||||||
sdl2_config->Get("Camera", "camera_outer_right_config", "");
|
sdl2_config->GetString("Camera", "camera_outer_right_config", "");
|
||||||
Settings::values.camera_flip[OuterRightCamera] =
|
Settings::values.camera_flip[OuterRightCamera] =
|
||||||
sdl2_config->GetInteger("Camera", "camera_outer_right_flip", 0);
|
sdl2_config->GetInteger("Camera", "camera_outer_right_flip", 0);
|
||||||
Settings::values.camera_name[InnerCamera] =
|
Settings::values.camera_name[InnerCamera] =
|
||||||
sdl2_config->Get("Camera", "camera_inner_name", "blank");
|
sdl2_config->GetString("Camera", "camera_inner_name", "blank");
|
||||||
Settings::values.camera_config[InnerCamera] =
|
Settings::values.camera_config[InnerCamera] =
|
||||||
sdl2_config->Get("Camera", "camera_inner_config", "");
|
sdl2_config->GetString("Camera", "camera_inner_config", "");
|
||||||
Settings::values.camera_flip[InnerCamera] =
|
Settings::values.camera_flip[InnerCamera] =
|
||||||
sdl2_config->GetInteger("Camera", "camera_inner_flip", 0);
|
sdl2_config->GetInteger("Camera", "camera_inner_flip", 0);
|
||||||
Settings::values.camera_name[OuterLeftCamera] =
|
Settings::values.camera_name[OuterLeftCamera] =
|
||||||
sdl2_config->Get("Camera", "camera_outer_left_name", "blank");
|
sdl2_config->GetString("Camera", "camera_outer_left_name", "blank");
|
||||||
Settings::values.camera_config[OuterLeftCamera] =
|
Settings::values.camera_config[OuterLeftCamera] =
|
||||||
sdl2_config->Get("Camera", "camera_outer_left_config", "");
|
sdl2_config->GetString("Camera", "camera_outer_left_config", "");
|
||||||
Settings::values.camera_flip[OuterLeftCamera] =
|
Settings::values.camera_flip[OuterLeftCamera] =
|
||||||
sdl2_config->GetInteger("Camera", "camera_outer_left_flip", 0);
|
sdl2_config->GetInteger("Camera", "camera_outer_left_flip", 0);
|
||||||
|
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
Settings::values.log_filter = sdl2_config->Get("Miscellaneous", "log_filter", "*:Info");
|
Settings::values.log_filter = sdl2_config->GetString("Miscellaneous", "log_filter", "*:Info");
|
||||||
|
|
||||||
// Debugging
|
// Debugging
|
||||||
Settings::values.use_gdbstub = sdl2_config->GetBoolean("Debugging", "use_gdbstub", false);
|
Settings::values.use_gdbstub = sdl2_config->GetBoolean("Debugging", "use_gdbstub", false);
|
||||||
@ -230,9 +230,9 @@ void Config::ReadValues() {
|
|||||||
Settings::values.enable_telemetry =
|
Settings::values.enable_telemetry =
|
||||||
sdl2_config->GetBoolean("WebService", "enable_telemetry", true);
|
sdl2_config->GetBoolean("WebService", "enable_telemetry", true);
|
||||||
Settings::values.web_api_url =
|
Settings::values.web_api_url =
|
||||||
sdl2_config->Get("WebService", "web_api_url", "https://api.citra-emu.org");
|
sdl2_config->GetString("WebService", "web_api_url", "https://api.citra-emu.org");
|
||||||
Settings::values.citra_username = sdl2_config->Get("WebService", "citra_username", "");
|
Settings::values.citra_username = sdl2_config->GetString("WebService", "citra_username", "");
|
||||||
Settings::values.citra_token = sdl2_config->Get("WebService", "citra_token", "");
|
Settings::values.citra_token = sdl2_config->GetString("WebService", "citra_token", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Config::Reload() {
|
void Config::Reload() {
|
||||||
|
Loading…
Reference in New Issue
Block a user