summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/InputConfig.cpp
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2019-01-24 20:02:23 -0500
committerGitHub <noreply@github.com>2019-01-24 20:02:23 -0500
commitddb1fbf7017644666f0670d3d8de1b05787c8f96 (patch)
tree68930de37be124b0f1d8f92db9c393aad7de9cb7 /Source/Core/InputCommon/InputConfig.cpp
parentf64b30156f83a4d3c70c2cc0ebd649967788f990 (diff)
parente15af5077f8c9605248a58e3172c8c1c45bd8589 (diff)
Merge pull request #7500 from zackhow/pointer
Android: Add IR pointer control to touch overlay
Diffstat (limited to 'Source/Core/InputCommon/InputConfig.cpp')
-rw-r--r--Source/Core/InputCommon/InputConfig.cpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp
index 65cfdef086..0a6a82d540 100644
--- a/Source/Core/InputCommon/InputConfig.cpp
+++ b/Source/Core/InputCommon/InputConfig.cpp
@@ -33,6 +33,11 @@ bool InputConfig::LoadConfig(bool isGC)
std::string profile[MAX_BBMOTES];
std::string path;
+#if defined(ANDROID)
+ bool use_ir_config = false;
+ std::string ir_values[3];
+#endif
+
if (SConfig::GetInstance().GetGameID() != "00000000")
{
std::string type;
@@ -73,6 +78,18 @@ bool InputConfig::LoadConfig(bool isGC)
}
}
}
+#if defined(ANDROID)
+ // For use on android touchscreen IR pointer
+ // Check for IR values
+ if (control_section->Exists("IRWidth") && control_section->Exists("IRHeight") &&
+ control_section->Exists("IRCenter"))
+ {
+ use_ir_config = true;
+ control_section->Get("IRWidth", &ir_values[0]);
+ control_section->Get("IRHeight", &ir_values[1]);
+ control_section->Get("IRCenter", &ir_values[2]);
+ }
+#endif
}
if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + m_ini_name + ".ini"))
@@ -80,6 +97,7 @@ bool InputConfig::LoadConfig(bool isGC)
int n = 0;
for (auto& controller : m_controllers)
{
+ IniFile::Section config;
// Load settings from ini
if (useProfile[n])
{
@@ -91,13 +109,22 @@ bool InputConfig::LoadConfig(bool isGC)
IniFile profile_ini;
profile_ini.Load(profile[n]);
- controller->LoadConfig(profile_ini.GetOrCreateSection("Profile"));
+ config = *profile_ini.GetOrCreateSection("Profile");
}
else
{
- controller->LoadConfig(inifile.GetOrCreateSection(controller->GetName()));
+ config = *inifile.GetOrCreateSection(controller->GetName());
}
-
+#if defined(ANDROID)
+ // Only set for wii pads
+ if (!isGC && use_ir_config)
+ {
+ config.Set("IR/Width", ir_values[0]);
+ config.Set("IR/Height", ir_values[1]);
+ config.Set("IR/Center", ir_values[2]);
+ }
+#endif
+ controller->LoadConfig(&config);
// Update refs
controller->UpdateReferences(g_controller_interface);