mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-09-10 06:42:57 +02:00
If settings found in the registry, create ini, fill with settings and then delete the settings stored in the registry. If no settings found in registry, load from ini.
138 lines
4.5 KiB
C++
138 lines
4.5 KiB
C++
/* PCSX2 - PS2 Emulator for PCs
|
|
* Copyright (C) 2002-2014 David Quintana [gigaherz]
|
|
*
|
|
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
|
* of the GNU Lesser General Public License as published by the Free Software Found-
|
|
* ation, either version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* PCSX2 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 for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with PCSX2.
|
|
* If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <winsock2.h>
|
|
#include "..\DEV9.h"
|
|
|
|
#define GetKeyV(name, var, s, t) \
|
|
size = s; type = t; \
|
|
RegQueryValueEx(myKey, name, 0, &type, (LPBYTE) var, &size);
|
|
|
|
#define GetKeyVdw(name, var) \
|
|
GetKeyV(name, var, 4, REG_DWORD);
|
|
|
|
//#define SetKeyV(name, var, s, t) \
|
|
// RegSetValueEx(myKey, name, 0, t, (LPBYTE) var, s);
|
|
|
|
//#define SetKeyVdw(name, var) \
|
|
// SetKeyV(name, var, 4, REG_DWORD);
|
|
|
|
BOOL WritePrivateProfileInt(LPCSTR lpAppName, LPCSTR lpKeyName, int intvar, LPCSTR lpFileName)
|
|
{
|
|
return WritePrivateProfileString(lpAppName, lpKeyName, std::to_string(intvar).c_str(), lpFileName);
|
|
}
|
|
bool FileExists(std::string szPath)
|
|
{
|
|
DWORD dwAttrib = GetFileAttributes(szPath.c_str());
|
|
return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
|
|
!(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
|
|
}
|
|
|
|
void SaveConf() {
|
|
const std::string file(s_strIniPath + "/dev9ghz.ini");
|
|
DeleteFile(file.c_str());
|
|
|
|
WritePrivateProfileString("DEV9", "Eth", config.Eth, file.c_str());
|
|
WritePrivateProfileString("DEV9", "Hdd", config.Hdd, file.c_str());
|
|
WritePrivateProfileInt("DEV9", "HddSize", config.HddSize, file.c_str());
|
|
WritePrivateProfileInt("DEV9", "ethEnable", config.ethEnable, file.c_str());
|
|
WritePrivateProfileInt("DEV9", "hddEnable", config.hddEnable, file.c_str());
|
|
}
|
|
|
|
void DeleteRegConf() {
|
|
HKEY myKey;
|
|
//DWORD type, size;
|
|
|
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\PS2Eplugin\\DEV9\\DEV9linuz", 0, KEY_ALL_ACCESS, &myKey) != ERROR_SUCCESS) {
|
|
return;
|
|
}
|
|
RegDeleteKey(myKey, "Eth");
|
|
RegDeleteKey(myKey, "Hdd");
|
|
RegDeleteKey(myKey, "HddSize");
|
|
RegDeleteKey(myKey, "ethEnable");
|
|
RegDeleteKey(myKey, "hddEnable");
|
|
RegCloseKey(myKey);
|
|
//Delete Key Software\PS2Eplugin\DEV9\DEV9linuz
|
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\PS2Eplugin\\DEV9", 0, KEY_ALL_ACCESS, &myKey) != ERROR_SUCCESS) {
|
|
emu_printf("Error Opening Key DEV9\n");
|
|
return;
|
|
}
|
|
if (RegDeleteKey(myKey, "DEV9linuz") != ERROR_SUCCESS) {
|
|
emu_printf("Error Removing Key DEV9linuz\n");
|
|
RegCloseKey(myKey);
|
|
return;
|
|
}
|
|
RegCloseKey(myKey);
|
|
//Delete Key Software\PS2Eplugin\DEV9
|
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\PS2Eplugin", 0, KEY_ALL_ACCESS, &myKey) != ERROR_SUCCESS) {
|
|
emu_printf("Error Opening Key PS2Eplugin\n");
|
|
return;
|
|
}
|
|
if (RegDeleteKey(myKey, "DEV9") != ERROR_SUCCESS) {
|
|
emu_printf("Error Removing Key DEV9\n");
|
|
RegCloseKey(myKey);
|
|
return;
|
|
}
|
|
RegCloseKey(myKey);
|
|
}
|
|
|
|
void LoadIniConf() {
|
|
//memset(&config, 0, sizeof(config));
|
|
//strcpy(config.Hdd, HDD_DEF);
|
|
//config.HddSize = 8 * 1024;
|
|
//strcpy(config.Eth, ETH_DEF);
|
|
|
|
const std::string file(s_strIniPath + "/dev9ghz.ini");
|
|
if (FileExists(file.c_str()) == false) {
|
|
SaveConf();
|
|
return;
|
|
}
|
|
GetPrivateProfileString("DEV9", "Eth", ETH_DEF, config.Eth, sizeof(config.Eth), file.c_str());
|
|
GetPrivateProfileString("DEV9", "Hdd", HDD_DEF, config.Hdd, sizeof(config.Hdd), file.c_str());
|
|
config.HddSize = GetPrivateProfileInt("DEV9", "HddSize", config.HddSize, file.c_str());
|
|
config.ethEnable = GetPrivateProfileInt("DEV9", "ethEnable", config.ethEnable, file.c_str());
|
|
config.hddEnable = GetPrivateProfileInt("DEV9", "hddEnable", config.hddEnable, file.c_str());
|
|
}
|
|
|
|
void LoadConf() {
|
|
HKEY myKey;
|
|
DWORD type, size;
|
|
|
|
memset(&config, 0, sizeof(config));
|
|
strcpy(config.Hdd, HDD_DEF);
|
|
config.HddSize = 8 * 1024;
|
|
strcpy(config.Eth, ETH_DEF);
|
|
|
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\PS2Eplugin\\DEV9\\DEV9linuz", 0, KEY_ALL_ACCESS, &myKey)!=ERROR_SUCCESS) {
|
|
LoadIniConf();
|
|
return;
|
|
}
|
|
printf("Importing Settings\n");
|
|
//Import old settings if user has upgraded this plugin
|
|
GetKeyV("Eth", config.Eth, sizeof(config.Eth), REG_SZ);
|
|
GetKeyV("Hdd", config.Hdd, sizeof(config.Hdd), REG_SZ);
|
|
GetKeyVdw("HddSize", &config.HddSize);
|
|
GetKeyVdw("ethEnable", &config.ethEnable);
|
|
GetKeyVdw("hddEnable", &config.hddEnable);
|
|
|
|
RegCloseKey(myKey);
|
|
SaveConf();
|
|
DeleteRegConf();
|
|
}
|
|
|