diff options
Diffstat (limited to 'Source/Plugins/InputPluginCommon/Src/Config.cpp')
| -rw-r--r-- | Source/Plugins/InputPluginCommon/Src/Config.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Source/Plugins/InputPluginCommon/Src/Config.cpp b/Source/Plugins/InputPluginCommon/Src/Config.cpp new file mode 100644 index 0000000000..417867c175 --- /dev/null +++ b/Source/Plugins/InputPluginCommon/Src/Config.cpp @@ -0,0 +1,57 @@ + +#include "Config.h" + +Plugin::Plugin( const char* const _ini_name, const char* const _gui_name, const char* const _profile_name ) + : ini_name(_ini_name) + , gui_name(_gui_name) + , profile_name(_profile_name) +{ + // GCPads + //for ( unsigned int i = 0; i<4; ++i ) + //controllers.push_back( new GCPad( i ) ); + // Wiimotes / disabled, cause it only the GUI half is done + //for ( unsigned int i = 0; i<4; ++i ) + // controllers.push_back( new Wiimote( i ) ); +}; + +Plugin::~Plugin() +{ + // delete pads + std::vector<ControllerEmu*>::const_iterator i = controllers.begin(), + e = controllers.end(); + for ( ; i != e; ++i ) + delete *i; +} + +void Plugin::LoadConfig() +{ + IniFile inifile; + + std::ifstream file; + file.open( (std::string(File::GetUserPath(D_CONFIG_IDX)) + ini_name + ".ini" ).c_str() ); + inifile.Load( file ); + file.close(); + + std::vector< ControllerEmu* >::const_iterator i = controllers.begin(), + e = controllers.end(); + for ( ; i!=e; ++i ) + (*i)->LoadConfig( inifile[ (*i)->GetName() ] ); +} + +void Plugin::SaveConfig() +{ + IniFile inifile; + + std::vector< ControllerEmu* >::const_iterator i = controllers.begin(), + e = controllers.end(); + for ( ; i!=e; ++i ) + (*i)->SaveConfig( inifile[ (*i)->GetName() ] ); + + // dont need to save empty values + //inifile.Clean(); + + std::ofstream file; + file.open( (std::string(File::GetUserPath(D_CONFIG_IDX)) + ini_name + ".ini" ).c_str() ); + inifile.Save( file ); + file.close(); +} |
