|
|
@@ -317,6 +317,43 @@ void Config::ReadValues() {
|
|
|
sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_x", 15);
|
|
|
Settings::values.touchscreen.diameter_y =
|
|
|
sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_y", 15);
|
|
|
+
|
|
|
+ int num_touch_from_button_maps =
|
|
|
+ sdl2_config->GetInteger("ControlsGeneral", "touch_from_button_map", 0);
|
|
|
+ if (num_touch_from_button_maps > 0) {
|
|
|
+ for (int i = 0; i < num_touch_from_button_maps; ++i) {
|
|
|
+ Settings::TouchFromButtonMap map;
|
|
|
+ map.name = sdl2_config->Get("ControlsGeneral",
|
|
|
+ std::string("touch_from_button_maps_") + std::to_string(i) +
|
|
|
+ std::string("_name"),
|
|
|
+ "default");
|
|
|
+ const int num_touch_maps = sdl2_config->GetInteger(
|
|
|
+ "ControlsGeneral",
|
|
|
+ std::string("touch_from_button_maps_") + std::to_string(i) + std::string("_count"),
|
|
|
+ 0);
|
|
|
+ map.buttons.reserve(num_touch_maps);
|
|
|
+
|
|
|
+ for (int j = 0; j < num_touch_maps; ++j) {
|
|
|
+ std::string touch_mapping =
|
|
|
+ sdl2_config->Get("ControlsGeneral",
|
|
|
+ std::string("touch_from_button_maps_") + std::to_string(i) +
|
|
|
+ std::string("_bind_") + std::to_string(j),
|
|
|
+ "");
|
|
|
+ map.buttons.emplace_back(std::move(touch_mapping));
|
|
|
+ }
|
|
|
+
|
|
|
+ Settings::values.touch_from_button_maps.emplace_back(std::move(map));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Settings::values.touch_from_button_maps.emplace_back(
|
|
|
+ Settings::TouchFromButtonMap{"default", {}});
|
|
|
+ num_touch_from_button_maps = 1;
|
|
|
+ }
|
|
|
+ Settings::values.use_touch_from_button =
|
|
|
+ sdl2_config->GetBoolean("ControlsGeneral", "use_touch_from_button", false);
|
|
|
+ Settings::values.touch_from_button_map_index =
|
|
|
+ std::clamp(Settings::values.touch_from_button_map_index, 0, num_touch_from_button_maps - 1);
|
|
|
+
|
|
|
Settings::values.udp_input_servers =
|
|
|
sdl2_config->Get("Controls", "udp_input_address", InputCommon::CemuhookUDP::DEFAULT_SRV);
|
|
|
|