From 34692ab826abc8f8faa61bdb2280b742424528f1 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sat, 7 Dec 2013 15:14:29 -0500 Subject: Remove unnecessary Src/ folders --- Source/Core/InputCommon/InputConfig.cpp | 104 ++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 Source/Core/InputCommon/InputConfig.cpp (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp new file mode 100644 index 0000000000..d627d047ad --- /dev/null +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -0,0 +1,104 @@ +// Copyright 2013 Dolphin Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. + +#include "InputConfig.h" +#include "CommonPaths.h" +#include "../Core/ConfigManager.h" +#include "../Core/HW/Wiimote.h" + +InputPlugin::~InputPlugin() +{ + // delete pads + std::vector::const_iterator i = controllers.begin(), + e = controllers.end(); + for ( ; i != e; ++i ) + delete *i; +} + +bool InputPlugin::LoadConfig(bool isGC) +{ + IniFile inifile; + IniFile game_ini; + bool useProfile[MAX_BBMOTES] = {false, false, false, false, false}; + std::string num[MAX_BBMOTES] = {"1", "2", "3", "4", "BB"}; + std::string profile[MAX_BBMOTES]; + std::string path; + + if (SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() != "00000000") + { + std::string type; + if (isGC) + { + type = "Pad"; + path = "Profiles/GCPad/"; + } + else + { + type = "Wiimote"; + path = "Profiles/Wiimote/"; + } + game_ini.Load(File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini"); + game_ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini", true); + for (int i = 0; i < 4; i++) + { + if (game_ini.Exists("Controls", (type + "Profile" + num[i]).c_str())) + { + game_ini.Get("Controls", (type + "Profile" + num[i]).c_str(), &profile[i]); + if (File::Exists(File::GetUserPath(D_CONFIG_IDX) + path + profile[i] + ".ini")) + useProfile[i] = true; + else + { + // TODO: Having a PanicAlert for this is dumb. + PanicAlertT("Selected controller profile does not exist"); + } + } + } + } + + if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + ini_name + ".ini")) + { + std::vector< ControllerEmu* >::const_iterator + i = controllers.begin(), + e = controllers.end(); + for (int n = 0; i!=e; ++i, ++n) + { + // load settings from ini + if (useProfile[n]) + { + IniFile profile_ini; + profile_ini.Load(File::GetUserPath(D_CONFIG_IDX) + path + profile[n] + ".ini"); + (*i)->LoadConfig(profile_ini.GetOrCreateSection("Profile")); + } + else + { + (*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); + } + + // update refs + (*i)->UpdateReferences(g_controller_interface); + } + return true; + } + else + { + controllers[0]->LoadDefaults(g_controller_interface); + controllers[0]->UpdateReferences(g_controller_interface); + return false; + } +} + +void InputPlugin::SaveConfig() +{ + std::string ini_filename = File::GetUserPath(D_CONFIG_IDX) + ini_name + ".ini"; + + IniFile inifile; + inifile.Load(ini_filename); + + std::vector< ControllerEmu* >::const_iterator i = controllers.begin(), + e = controllers.end(); + for ( ; i!=e; ++i ) + (*i)->SaveConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); + + inifile.Save(ini_filename); +} -- cgit v1.2.3 From d91a5abba1d66948cc43cc7a6c80827ede061bc8 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 30 Jan 2014 19:51:21 -0500 Subject: Light cleanup to a little bit of InputCommon. Replaces much of the iterators that litter this section of the codebase. Also clean up a little bit of the comments that describe the interface classes. --- Source/Core/InputCommon/InputConfig.cpp | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index d627d047ad..41f18c8403 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -10,10 +10,8 @@ InputPlugin::~InputPlugin() { // delete pads - std::vector::const_iterator i = controllers.begin(), - e = controllers.end(); - for ( ; i != e; ++i ) - delete *i; + for (ControllerEmu* pad : controllers) + delete pad; } bool InputPlugin::LoadConfig(bool isGC) @@ -58,25 +56,26 @@ bool InputPlugin::LoadConfig(bool isGC) if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + ini_name + ".ini")) { - std::vector< ControllerEmu* >::const_iterator - i = controllers.begin(), - e = controllers.end(); - for (int n = 0; i!=e; ++i, ++n) + int n = 0; + for (ControllerEmu* pad : controllers) { - // load settings from ini + // Load settings from ini if (useProfile[n]) { IniFile profile_ini; profile_ini.Load(File::GetUserPath(D_CONFIG_IDX) + path + profile[n] + ".ini"); - (*i)->LoadConfig(profile_ini.GetOrCreateSection("Profile")); + pad->LoadConfig(profile_ini.GetOrCreateSection("Profile")); } else { - (*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); + pad->LoadConfig(inifile.GetOrCreateSection(pad->GetName().c_str())); } - // update refs - (*i)->UpdateReferences(g_controller_interface); + // Update refs + pad->UpdateReferences(g_controller_interface); + + // Next profile + n++; } return true; } @@ -95,10 +94,8 @@ void InputPlugin::SaveConfig() IniFile inifile; inifile.Load(ini_filename); - std::vector< ControllerEmu* >::const_iterator i = controllers.begin(), - e = controllers.end(); - for ( ; i!=e; ++i ) - (*i)->SaveConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); + for (ControllerEmu* pad : controllers) + pad->SaveConfig(inifile.GetOrCreateSection(pad->GetName().c_str())); inifile.Save(ini_filename); } -- cgit v1.2.3 From 3fe05e0a9f6908c1cf9a3caad6bff1d8decf04a3 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Sat, 8 Feb 2014 18:50:37 +1300 Subject: Fix IniFile to use string& instead of char* Also removes .c_str() usages where found. --- Source/Core/InputCommon/InputConfig.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index 41f18c8403..e3e6d318af 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -40,15 +40,17 @@ bool InputPlugin::LoadConfig(bool isGC) game_ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini", true); for (int i = 0; i < 4; i++) { - if (game_ini.Exists("Controls", (type + "Profile" + num[i]).c_str())) + if (game_ini.Exists("Controls", type + "Profile" + num[i])) { - game_ini.Get("Controls", (type + "Profile" + num[i]).c_str(), &profile[i]); - if (File::Exists(File::GetUserPath(D_CONFIG_IDX) + path + profile[i] + ".ini")) - useProfile[i] = true; - else + if (game_ini.Get("Controls", type + "Profile" + num[i], &profile[i])) { - // TODO: Having a PanicAlert for this is dumb. - PanicAlertT("Selected controller profile does not exist"); + if (File::Exists(File::GetUserPath(D_CONFIG_IDX) + path + profile[i] + ".ini")) + useProfile[i] = true; + else + { + // TODO: Having a PanicAlert for this is dumb. + PanicAlertT("Selected controller profile does not exist"); + } } } } @@ -68,7 +70,7 @@ bool InputPlugin::LoadConfig(bool isGC) } else { - pad->LoadConfig(inifile.GetOrCreateSection(pad->GetName().c_str())); + pad->LoadConfig(inifile.GetOrCreateSection(pad->GetName())); } // Update refs @@ -95,7 +97,7 @@ void InputPlugin::SaveConfig() inifile.Load(ini_filename); for (ControllerEmu* pad : controllers) - pad->SaveConfig(inifile.GetOrCreateSection(pad->GetName().c_str())); + pad->SaveConfig(inifile.GetOrCreateSection(pad->GetName())); inifile.Save(ini_filename); } -- cgit v1.2.3 From 2afe2152712981e21d6bda6f029292ed2b1cf91e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 17 Feb 2014 05:18:15 -0500 Subject: Convert all includes to relative paths. --- Source/Core/InputCommon/InputConfig.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index e3e6d318af..94ec1a2b46 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -2,10 +2,10 @@ // Licensed under GPLv2 // Refer to the license.txt file included. -#include "InputConfig.h" #include "CommonPaths.h" -#include "../Core/ConfigManager.h" -#include "../Core/HW/Wiimote.h" +#include "Core/ConfigManager.h" +#include "Core/HW/Wiimote.h" +#include "InputCommon/InputConfig.h" InputPlugin::~InputPlugin() { -- cgit v1.2.3 From dc1db82f70b58e97b425a1a586f60dc2d3be8eb0 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Tue, 18 Feb 2014 12:09:38 +0100 Subject: Fix Linux build --- Source/Core/InputCommon/InputConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index 94ec1a2b46..859036c69e 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -2,7 +2,7 @@ // Licensed under GPLv2 // Refer to the license.txt file included. -#include "CommonPaths.h" +#include "Common/CommonPaths.h" #include "Core/ConfigManager.h" #include "Core/HW/Wiimote.h" #include "InputCommon/InputConfig.h" -- cgit v1.2.3 From f05d3f6e5d6da8be530c0cd4ffaaec0382240ec5 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 16 Jun 2014 01:12:43 -0400 Subject: Use only section-based ini reading. --- Source/Core/InputCommon/InputConfig.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index 859036c69e..b2f972fecb 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -36,16 +36,21 @@ bool InputPlugin::LoadConfig(bool isGC) type = "Wiimote"; path = "Profiles/Wiimote/"; } + game_ini.Load(File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini"); game_ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini", true); + IniFile::Section* control_section = game_ini.GetOrCreateSection("Controls"); + for (int i = 0; i < 4; i++) { - if (game_ini.Exists("Controls", type + "Profile" + num[i])) + if (control_section->Exists(type + "Profile" + num[i])) { - if (game_ini.Get("Controls", type + "Profile" + num[i], &profile[i])) + if (control_section->Get(type + "Profile" + num[i], &profile[i])) { if (File::Exists(File::GetUserPath(D_CONFIG_IDX) + path + profile[i] + ".ini")) + { useProfile[i] = true; + } else { // TODO: Having a PanicAlert for this is dumb. -- cgit v1.2.3 From 1a3ebbb83193cb3b76a16b22c183089bfa329403 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 31 Aug 2014 00:04:15 -0400 Subject: InputCommon: Rename class InputPlugin to InputConfig --- Source/Core/InputCommon/InputConfig.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index b2f972fecb..5920b39b99 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -7,14 +7,14 @@ #include "Core/HW/Wiimote.h" #include "InputCommon/InputConfig.h" -InputPlugin::~InputPlugin() +InputConfig::~InputConfig() { // delete pads for (ControllerEmu* pad : controllers) delete pad; } -bool InputPlugin::LoadConfig(bool isGC) +bool InputConfig::LoadConfig(bool isGC) { IniFile inifile; IniFile game_ini; @@ -94,7 +94,7 @@ bool InputPlugin::LoadConfig(bool isGC) } } -void InputPlugin::SaveConfig() +void InputConfig::SaveConfig() { std::string ini_filename = File::GetUserPath(D_CONFIG_IDX) + ini_name + ".ini"; -- cgit v1.2.3 From f9d6c17c08f0aca5ac9f72432e5de780d50bafdf Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 7 Feb 2015 21:27:26 +0100 Subject: Use CoreParameter's game INI functions in more places --- Source/Core/InputCommon/InputConfig.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index 5920b39b99..da5bb5081a 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -17,7 +17,6 @@ InputConfig::~InputConfig() bool InputConfig::LoadConfig(bool isGC) { IniFile inifile; - IniFile game_ini; bool useProfile[MAX_BBMOTES] = {false, false, false, false, false}; std::string num[MAX_BBMOTES] = {"1", "2", "3", "4", "BB"}; std::string profile[MAX_BBMOTES]; @@ -37,8 +36,7 @@ bool InputConfig::LoadConfig(bool isGC) path = "Profiles/Wiimote/"; } - game_ini.Load(File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini"); - game_ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + SConfig::GetInstance().m_LocalCoreStartupParameter.GetUniqueID() + ".ini", true); + IniFile game_ini = SConfig::GetInstance().m_LocalCoreStartupParameter.LoadGameIni(); IniFile::Section* control_section = game_ini.GetOrCreateSection("Controls"); for (int i = 0; i < 4; i++) @@ -53,7 +51,7 @@ bool InputConfig::LoadConfig(bool isGC) } else { - // TODO: Having a PanicAlert for this is dumb. + // TODO: PanicAlert shouldn't be used for this. PanicAlertT("Selected controller profile does not exist"); } } -- cgit v1.2.3 From 780eef68f6ec7deee1a11f8bc1386f70133b6cc0 Mon Sep 17 00:00:00 2001 From: skidau Date: Thu, 5 Mar 2015 19:49:10 +1100 Subject: Fixed the crash that would occur when the Refresh button was pressed in the controllers config. - Simplified the locking mechanism when controllers were updated - Reloaded the config of the controls instead of re-initialising the control plugins - Fixed controls being unresponsive after the Refresh button was pressed - Disables the hotkeys while the controller config is open --- Source/Core/InputCommon/InputConfig.cpp | 7 ------- 1 file changed, 7 deletions(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index da5bb5081a..ef517d407d 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -7,13 +7,6 @@ #include "Core/HW/Wiimote.h" #include "InputCommon/InputConfig.h" -InputConfig::~InputConfig() -{ - // delete pads - for (ControllerEmu* pad : controllers) - delete pad; -} - bool InputConfig::LoadConfig(bool isGC) { IniFile inifile; -- cgit v1.2.3 From cefcb0ace9d363b3679b4e93bcc9ec05f1e5f4f8 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Mon, 18 May 2015 01:08:10 +0200 Subject: Update license headers to GPLv2+ --- Source/Core/InputCommon/InputConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index ef517d407d..5bf2d2f73e 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -1,5 +1,5 @@ // Copyright 2013 Dolphin Emulator Project -// Licensed under GPLv2 +// Licensed under GPLv2+ // Refer to the license.txt file included. #include "Common/CommonPaths.h" -- cgit v1.2.3 From 30ebb2459eb97ba544547183854775df8460b475 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sun, 24 May 2015 06:55:12 +0200 Subject: Set copyright year to when a file was created --- Source/Core/InputCommon/InputConfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/InputCommon/InputConfig.cpp') diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index 5bf2d2f73e..d17d02d085 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Dolphin Emulator Project +// Copyright 2010 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. -- cgit v1.2.3