forked from dolphin-emu/dolphin
		
	git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4 8ced0084-cf51-0410-be5f-012b33b47a6e
		
			
				
	
	
		
			155 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (C) 2003-2008 Dolphin Project.
 | |
| 
 | |
| // This program is free software: you can redistribute it and/or modify
 | |
| // it under the terms of the GNU General Public License as published by
 | |
| // the Free Software Foundation, version 2.0.
 | |
| 
 | |
| // This program is distributed in the hope that it will be useful,
 | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| // GNU General Public License 2.0 for more details.
 | |
| 
 | |
| // A copy of the GPL 2.0 should have been included with the program.
 | |
| // If not, see http://www.gnu.org/licenses/
 | |
| 
 | |
| // Official SVN repository and contact information can be found at
 | |
| // http://code.google.com/p/dolphin-emu/
 | |
| /////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| // M O D U L E  B E G I N ///////////////////////////////////////////////////////////////////////////
 | |
| /////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #include "stdafx.h"
 | |
| 
 | |
| #include "IniFile.h"
 | |
| 
 | |
| /////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| // I M P L E M E N T A T I O N //////////////////////////////////////////////////////////////////////
 | |
| /////////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // constructor
 | |
| //
 | |
| IniFile::IniFile(void)
 | |
| {
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // destructor
 | |
| //
 | |
| IniFile::~IniFile(void)
 | |
| {
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // SetFile
 | |
| //
 | |
| void 
 | |
| IniFile::SetFile(const TCHAR* _filename)
 | |
| {
 | |
| 	if (_filename)
 | |
| 	{
 | |
| 		char path_buffer[_MAX_PATH], drive[_MAX_DRIVE] ,dir[_MAX_DIR];
 | |
| 		char fname[_MAX_FNAME],ext[_MAX_EXT];
 | |
| 
 | |
| 		GetModuleFileName(NULL,path_buffer,sizeof(path_buffer));
 | |
| 		_splitpath( path_buffer, drive, dir, fname, ext );
 | |
| 		_makepath( filename, drive, dir, _filename, ".ini");
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // SetSection
 | |
| //
 | |
| void 
 | |
| IniFile::SetSection(const TCHAR *_section)
 | |
| {
 | |
| 	_tcscpy(section,_section);
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // ReadInt
 | |
| //
 | |
| int  
 | |
| IniFile::ReadInt(const TCHAR *key, int def)
 | |
| {
 | |
| 	return GetPrivateProfileInt(section, key, def, filename);
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // WriteInt
 | |
| //
 | |
| void 
 | |
| IniFile::WriteInt(const TCHAR *key, int value)
 | |
| {
 | |
| 	char temp[256];
 | |
| 	WritePrivateProfileString(section, key, _itoa(value,temp,10), filename);	
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // ReadBool
 | |
| //
 | |
| bool 
 | |
| IniFile::ReadBool(const TCHAR *key, bool def)
 | |
| {
 | |
| 	return ReadInt(key,def?1:0) == 0 ? false : true;
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // WriteBool
 | |
| //
 | |
| void 
 | |
| IniFile::WriteBool(const TCHAR *key, bool value)
 | |
| {
 | |
| 	WriteInt(key,value?1:0);
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // ReadString
 | |
| //
 | |
| void 
 | |
| IniFile::ReadString(const TCHAR *key, const TCHAR *def, TCHAR *out, int size)
 | |
| {
 | |
| 	GetPrivateProfileString(section, key, def, out, size, filename);	
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // WriteString
 | |
| //
 | |
| void 
 | |
| IniFile::WriteString(const TCHAR *key, const TCHAR *value)
 | |
| {
 | |
| 	WritePrivateProfileString(section, key, value, filename);	
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // ReadStringList
 | |
| //
 | |
| void 
 | |
| IniFile::ReadStringList(const TCHAR *key, std::vector<std::string> &list)
 | |
| {
 | |
| 	int count = ReadInt(key);
 | |
| 	for (int i=0; i<count; i++)
 | |
| 	{
 | |
| 		char temp[256], temp2[256]; 
 | |
| 		sprintf(temp,"%s%i",key,i);
 | |
| 		ReadString(temp,"",temp2,256);
 | |
| 		list.push_back(std::string(temp2));
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // ________________________________________________________________________________________ __________
 | |
| // WriteStringList
 | |
| //
 | |
| void 
 | |
| IniFile::WriteStringList(const TCHAR *key, std::vector<std::string> &list)
 | |
| {
 | |
| 	WriteInt(key,(int)list.size());
 | |
| 	int i=0;
 | |
| 	for (std::vector<std::string>::iterator iter = list.begin(); iter!=list.end(); iter++)
 | |
| 	{
 | |
| 		char temp[256];
 | |
| 		sprintf(temp,"%s%i",key,i);
 | |
| 		WriteString(temp,iter->c_str());
 | |
| 		i++;
 | |
| 	}
 | |
| } |