winport: path settings support unicode now (fixes #669). old ini files may malfunction since they're now expected to be written with unicode. old ones can't be effectively upgraded (consequence of using obsolete ini file apis).
This commit is contained in:
parent
3cefa5d78e
commit
3511e14ac6
|
@ -272,7 +272,7 @@ void HK_PrintScreen(int param, bool justPressed)
|
|||
|
||||
dir = Path::GetFileDirectoryPath(outFilename);
|
||||
path.setpath(path.SCREENSHOTS, dir);
|
||||
WritePrivateProfileString(SECTION, SCREENSHOTKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, SCREENSHOTKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
}
|
||||
|
||||
if(unpause) NDS_UnPause(false);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "MMU.h"
|
||||
#include "NDSSystem.h"
|
||||
#include "utils/advanscene.h"
|
||||
#include "utils/xstring.h"
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
|
@ -190,7 +191,7 @@ bool importSave(HWND hwnd, HINSTANCE hAppInst)
|
|||
{
|
||||
std::string dir = Path::GetFileDirectoryPath(SavFName);
|
||||
path.setpath(path.SRAM_IMPORT_EXPORT, dir);
|
||||
WritePrivateProfileString(SECTION, SRAMIMPORTKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, SRAMIMPORTKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
|
||||
res = MMU_new.backupDevice.importData(SavFName, save_types[res+1].size);
|
||||
if (res)
|
||||
|
@ -227,7 +228,7 @@ bool exportSave(HWND hwnd, HINSTANCE hAppInst)
|
|||
|
||||
dir = Path::GetFileDirectoryPath(SavFName);
|
||||
path.setpath(path.SRAM_IMPORT_EXPORT, dir);
|
||||
WritePrivateProfileString(SECTION, SRAMIMPORTKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, SRAMIMPORTKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
|
||||
if (ofn.nFilterIndex == 2) strcat(SavFName, "*");
|
||||
|
||||
|
|
|
@ -2937,7 +2937,7 @@ void AviRecordTo()
|
|||
|
||||
dir = Path::GetFileDirectoryPath(outFilename);
|
||||
path.setpath(path.AVI_FILES, dir);
|
||||
WritePrivateProfileString(SECTION, AVIKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, AVIKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
}
|
||||
|
||||
NDS_UnPause();
|
||||
|
@ -3063,7 +3063,7 @@ void WavRecordTo(int wavmode)
|
|||
|
||||
dir = Path::GetFileDirectoryPath(outFilename);
|
||||
path.setpath(path.AVI_FILES, dir);
|
||||
WritePrivateProfileString(SECTION, AVIKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, AVIKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
}
|
||||
|
||||
NDS_UnPause();
|
||||
|
@ -3192,7 +3192,7 @@ LRESULT OpenFile()
|
|||
{
|
||||
std::string dir = Path::GetFileDirectoryPath(wcstombs(filename));
|
||||
path.setpath(path.ROMS, dir);
|
||||
WritePrivateProfileString(SECTION, ROMKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, ROMKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4780,7 +4780,7 @@ DOKEYDOWN:
|
|||
|
||||
std::string utf8dir = Path::GetFileDirectoryPath(wcstombs(SavName));
|
||||
path.setpath(path.STATES, utf8dir);
|
||||
WritePrivateProfileString(SECTION, STATEKEY, utf8dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, STATEKEY, mbstowcs(utf8dir).c_str(), IniNameW);
|
||||
|
||||
savestate_load(wcstombs(SavName).c_str());
|
||||
UpdateToolWindows();
|
||||
|
@ -4811,7 +4811,7 @@ DOKEYDOWN:
|
|||
|
||||
std::string utf8dir = Path::GetFileDirectoryPath(wcstombs(SavName));
|
||||
path.setpath(path.STATES, utf8dir);
|
||||
WritePrivateProfileString(SECTION, STATEKEY, utf8dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, STATEKEY, mbstowcs(utf8dir).c_str(), IniNameW);
|
||||
|
||||
if(unpause) NDS_UnPause();
|
||||
return 0;
|
||||
|
@ -6174,7 +6174,7 @@ LRESULT CALLBACK EmulationSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, L
|
|||
{
|
||||
std::string dir = Path::GetFileDirectoryPath(fileName);
|
||||
path.setpath(path.FIRMWARE, dir);
|
||||
WritePrivateProfileString(SECTION, FIRMWAREKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, FIRMWAREKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
|
||||
HWND cur;
|
||||
|
||||
|
@ -6294,7 +6294,7 @@ LRESULT CALLBACK MicrophoneSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
|
|||
{
|
||||
std::string dir = Path::GetFileDirectoryPath(fileName);
|
||||
path.setpath(path.SOUNDS, dir);
|
||||
WritePrivateProfileString(SECTION, SOUNDKEY, dir.c_str(), IniName);
|
||||
WritePrivateProfileStringW(LSECTION, SOUNDKEY, mbstowcs(dir).c_str(), IniNameW);
|
||||
|
||||
HWND cur;
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "main.h"
|
||||
#include "path.h"
|
||||
#include "pathsettings.h"
|
||||
#include "utils/xstring.h"
|
||||
|
||||
extern bool autoLoadLua;
|
||||
|
||||
|
@ -105,18 +106,18 @@ void DoAssociations()
|
|||
|
||||
void WritePathSettings()
|
||||
{
|
||||
WritePrivateProfileString(SECTION, ROMKEY, path.pathToRoms, IniName);
|
||||
WritePrivateProfileString(SECTION, BATTERYKEY, path.pathToBattery, IniName);
|
||||
WritePrivateProfileString(SECTION, SRAMIMPORTKEY, path.pathToSramImportExport, IniName);
|
||||
WritePrivateProfileString(SECTION, STATEKEY, path.pathToStates, IniName);
|
||||
WritePrivateProfileString(SECTION, STATESLOTKEY, path.pathToStateSlots, IniName);
|
||||
WritePrivateProfileString(SECTION, SCREENSHOTKEY, path.pathToScreenshots, IniName);
|
||||
WritePrivateProfileString(SECTION, AVIKEY, path.pathToAviFiles, IniName);
|
||||
WritePrivateProfileString(SECTION, CHEATKEY, path.pathToCheats, IniName);
|
||||
WritePrivateProfileStringW(LSECTION, ROMKEY, mbstowcs((std::string)path.pathToRoms).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, BATTERYKEY, mbstowcs((std::string)path.pathToBattery).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, SRAMIMPORTKEY, mbstowcs((std::string)path.pathToSramImportExport).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, STATEKEY, mbstowcs((std::string)path.pathToStates).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, STATESLOTKEY, mbstowcs((std::string)path.pathToStateSlots).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, SCREENSHOTKEY, mbstowcs((std::string)path.pathToScreenshots).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, AVIKEY, mbstowcs((std::string)path.pathToAviFiles).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, CHEATKEY, mbstowcs((std::string)path.pathToCheats).c_str(), IniNameW);
|
||||
WritePrivateProfileInt(SECTION, R4FORMATKEY, path.r4Format, IniName);
|
||||
WritePrivateProfileString(SECTION, SOUNDKEY, path.pathToSounds, IniName);
|
||||
WritePrivateProfileString(SECTION, FIRMWAREKEY, path.pathToFirmware, IniName);
|
||||
WritePrivateProfileString(SECTION, LUAKEY, path.pathToLua, IniName);
|
||||
WritePrivateProfileStringW(LSECTION, SOUNDKEY, mbstowcs((std::string)path.pathToSounds).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, FIRMWAREKEY, mbstowcs((std::string)path.pathToFirmware).c_str(), IniNameW);
|
||||
WritePrivateProfileStringW(LSECTION, LUAKEY, mbstowcs((std::string)path.pathToLua).c_str(), IniNameW);
|
||||
|
||||
WritePrivateProfileInt(SECTION, DEFAULTFORMATKEY, path.currentimageformat, IniName);
|
||||
WritePrivateProfileString(SECTION, FORMATKEY, path.screenshotFormat, IniName);
|
||||
|
@ -171,15 +172,15 @@ BOOL PathSettings_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam)
|
|||
|
||||
SetWindowPos(toolTip, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
|
||||
|
||||
SetDlgItemText(hDlg, IDC_ROMPATHEDIT, path.pathToRoms);
|
||||
SetDlgItemText(hDlg, IDC_SAVERAMPATHEDIT, path.pathToBattery);
|
||||
SetDlgItemText(hDlg, IDC_SRAMIMPORTPATHEDIT, path.pathToSramImportExport);
|
||||
SetDlgItemText(hDlg, IDC_STATEPATHEDIT, path.pathToStates);
|
||||
SetDlgItemText(hDlg, IDC_STATESLOTPATHEDIT, path.pathToStateSlots);
|
||||
SetDlgItemText(hDlg, IDC_SCREENSHOTPATHEDIT, path.pathToScreenshots);
|
||||
SetDlgItemText(hDlg, IDC_AVIPATHEDIT, path.pathToAviFiles);
|
||||
SetDlgItemText(hDlg, IDC_CHEATPATHEDIT, path.pathToCheats);
|
||||
SetDlgItemText(hDlg, IDC_LUAPATHEDIT, path.pathToLua);
|
||||
SetDlgItemTextW(hDlg, IDC_ROMPATHEDIT, mbstowcs(path.pathToRoms).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_SAVERAMPATHEDIT, mbstowcs(path.pathToBattery).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_SRAMIMPORTPATHEDIT, mbstowcs(path.pathToSramImportExport).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_STATEPATHEDIT, mbstowcs(path.pathToStates).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_STATESLOTPATHEDIT, mbstowcs(path.pathToStateSlots).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_SCREENSHOTPATHEDIT, mbstowcs(path.pathToScreenshots).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_AVIPATHEDIT, mbstowcs(path.pathToAviFiles).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_CHEATPATHEDIT, mbstowcs(path.pathToCheats).c_str());
|
||||
SetDlgItemTextW(hDlg, IDC_LUAPATHEDIT, mbstowcs(path.pathToLua).c_str());
|
||||
|
||||
TOOLINFO ti;
|
||||
ZeroMemory(&ti, sizeof(ti));
|
||||
|
@ -213,7 +214,7 @@ BOOL BrowseForPath(char *pathToBrowse)
|
|||
LPMALLOC shMalloc;
|
||||
BOOL changed = false;
|
||||
LPITEMIDLIST idList;
|
||||
BROWSEINFO bi;
|
||||
BROWSEINFOW bi;
|
||||
|
||||
//stupid shell
|
||||
if(SHGetMalloc( &shMalloc) != S_OK)
|
||||
|
@ -226,7 +227,7 @@ BOOL BrowseForPath(char *pathToBrowse)
|
|||
strncpy(tmp, pathToBrowse, MAX_PATH);
|
||||
|
||||
bi.hwndOwner = MainWindow->getHWnd();
|
||||
bi.lpszTitle = "Choose a Folder";
|
||||
bi.lpszTitle = L"Choose a Folder";
|
||||
bi.ulFlags = BIF_NONEWFOLDERBUTTON | BIF_USENEWUI;
|
||||
|
||||
/*wanted to add a callback function for the folder initialization but it crashes everytime i do
|
||||
|
@ -234,10 +235,12 @@ BOOL BrowseForPath(char *pathToBrowse)
|
|||
bi.lParam = (LPARAM)pathToBrowse;
|
||||
*/
|
||||
|
||||
if( (idList = SHBrowseForFolder(&bi)) )
|
||||
if( (idList = SHBrowseForFolderW(&bi)) )
|
||||
{
|
||||
changed = true;
|
||||
SHGetPathFromIDList(idList, pathToBrowse);
|
||||
wchar_t wPathToBrowse[MAX_PATH];
|
||||
SHGetPathFromIDListW(idList, wPathToBrowse);
|
||||
strcpy(pathToBrowse,wcstombs((std::wstring)wPathToBrowse).c_str());
|
||||
// shMalloc->Free(&idList);
|
||||
}
|
||||
|
||||
|
@ -252,49 +255,49 @@ void PathSettings_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify)
|
|||
case IDC_BROWSEROMS:
|
||||
{
|
||||
if(BrowseForPath(path.pathToRoms))
|
||||
SetDlgItemText(hDlg, IDC_ROMPATHEDIT, path.pathToRoms);
|
||||
SetDlgItemTextW(hDlg, IDC_ROMPATHEDIT, mbstowcs((std::string)path.pathToRoms).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_BROWSESRAM:
|
||||
{
|
||||
if(BrowseForPath(path.pathToBattery))
|
||||
SetDlgItemText(hDlg, IDC_SAVERAMPATHEDIT, path.pathToBattery);
|
||||
SetDlgItemTextW(hDlg, IDC_SAVERAMPATHEDIT, mbstowcs((std::string)path.pathToBattery).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_BROWSESRAMIMPORT:
|
||||
{
|
||||
if(BrowseForPath(path.pathToSramImportExport))
|
||||
SetDlgItemText(hDlg, IDC_SRAMIMPORTPATHEDIT, path.pathToSramImportExport);
|
||||
SetDlgItemTextW(hDlg, IDC_SRAMIMPORTPATHEDIT, mbstowcs((std::string)path.pathToSramImportExport).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_BROWSESTATES:
|
||||
{
|
||||
if(BrowseForPath(path.pathToStates))
|
||||
SetDlgItemText(hDlg, IDC_STATEPATHEDIT, path.pathToStates);
|
||||
SetDlgItemTextW(hDlg, IDC_STATEPATHEDIT, mbstowcs((std::string)path.pathToStates).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_BROWSESTATESLOTS:
|
||||
{
|
||||
if(BrowseForPath(path.pathToStateSlots))
|
||||
SetDlgItemText(hDlg, IDC_STATESLOTPATHEDIT, path.pathToStateSlots);
|
||||
SetDlgItemTextW(hDlg, IDC_STATESLOTPATHEDIT, mbstowcs((std::string)path.pathToStateSlots).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_BROWSESCREENSHOTS:
|
||||
{
|
||||
if(BrowseForPath(path.pathToScreenshots))
|
||||
SetDlgItemText(hDlg, IDC_SCREENSHOTPATHEDIT, path.pathToScreenshots);
|
||||
SetDlgItemTextW(hDlg, IDC_SCREENSHOTPATHEDIT, mbstowcs((std::string)path.pathToScreenshots).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_BROWSEAVI:
|
||||
{
|
||||
if(BrowseForPath(path.pathToAviFiles))
|
||||
SetDlgItemText(hDlg, IDC_AVIPATHEDIT, path.pathToAviFiles);
|
||||
SetDlgItemTextW(hDlg, IDC_AVIPATHEDIT, mbstowcs((std::string)path.pathToAviFiles).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_BROWSECHEATS:
|
||||
{
|
||||
if(BrowseForPath(path.pathToCheats))
|
||||
SetDlgItemText(hDlg, IDC_CHEATPATHEDIT, path.pathToCheats);
|
||||
SetDlgItemTextW(hDlg, IDC_CHEATPATHEDIT, mbstowcs((std::string)path.pathToCheats).c_str());
|
||||
}
|
||||
break;
|
||||
case IDC_R4TYPE1:
|
||||
|
@ -356,15 +359,16 @@ void PathSettings_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify)
|
|||
break;
|
||||
case IDOK:
|
||||
|
||||
GetDlgItemText(hDlg, IDC_ROMPATHEDIT, path.pathToRoms, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_SAVERAMPATHEDIT, path.pathToBattery, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_SRAMIMPORTPATHEDIT, path.pathToSramImportExport, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_STATEPATHEDIT, path.pathToStates, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_STATESLOTPATHEDIT, path.pathToStateSlots, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_SCREENSHOTPATHEDIT, path.pathToScreenshots, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_AVIPATHEDIT, path.pathToAviFiles, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_CHEATPATHEDIT, path.pathToCheats, MAX_PATH);
|
||||
GetDlgItemText(hDlg, IDC_LUAPATHEDIT, path.pathToLua, MAX_PATH);
|
||||
wchar_t wtmp[MAX_PATH];
|
||||
GetDlgItemTextW(hDlg, IDC_ROMPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToRoms,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_SAVERAMPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToBattery,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_SRAMIMPORTPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToSramImportExport,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_STATEPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToStates,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_STATESLOTPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToStateSlots,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_SCREENSHOTPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToScreenshots,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_AVIPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToAviFiles,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_CHEATPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToCheats,wcstombs((std::wstring)wtmp).c_str());
|
||||
GetDlgItemTextW(hDlg, IDC_LUAPATHEDIT, wtmp, MAX_PATH); strcpy(path.pathToLua,wcstombs((std::wstring)wtmp).c_str());
|
||||
DoAssociations();
|
||||
WritePathSettings();
|
||||
EndDialog(hDlg, 0);
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "debug.h"
|
||||
#include "NDSSystem.h"
|
||||
#include "path.h"
|
||||
#include "utils/xstring.h"
|
||||
|
||||
#include "resource.h"
|
||||
#include "main.h"
|
||||
|
@ -346,7 +347,7 @@ void slot1Dialog(HWND hwnd)
|
|||
if (strlen(tmp_fs_path))
|
||||
{
|
||||
path.setpath(path.SLOT1D, tmp_fs_path);
|
||||
WritePrivateProfileString(SECTION, SLOT1DKEY, path.pathToSlot1D, IniName);
|
||||
WritePrivateProfileStringW(LSECTION, SLOT1DKEY, mbstowcs((std::string)path.pathToSlot1D).c_str(), IniNameW);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
|
||||
char IniName[MAX_PATH];
|
||||
wchar_t IniNameW[MAX_PATH];
|
||||
|
||||
std::string _hack_alternateModulePathUtf8;
|
||||
|
||||
|
@ -86,6 +87,21 @@ void GetINIPath()
|
|||
}
|
||||
|
||||
FCEUD_MakePathDirs(IniName);
|
||||
wcscpy(IniNameW,mbstowcs(IniName).c_str()); //careful to use locale C-style mbstowcs to get IniName (which is with locale encoding) to unicode
|
||||
|
||||
//write BOM to get unicode
|
||||
FILE* test = fopen(IniName,"rb");
|
||||
if(test)
|
||||
fclose(test);
|
||||
else
|
||||
{
|
||||
test = fopen(IniName,"wb");
|
||||
if(test)
|
||||
{
|
||||
fputs("\xFF\xFE",test);
|
||||
fclose(test);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PreventScreensaver()
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <string>
|
||||
|
||||
extern char IniName[MAX_PATH];
|
||||
extern wchar_t IniNameW[MAX_PATH];
|
||||
|
||||
void GetINIPath();
|
||||
void PreventScreensaver();
|
||||
|
|
|
@ -232,6 +232,25 @@ void PathInfo::GetDefaultPath(char *pathToDefault, const char *key, int maxCount
|
|||
#endif
|
||||
}
|
||||
|
||||
void PathInfo::ReadKeyW(char *pathToRead, const wchar_t *key)
|
||||
{
|
||||
wchar_t wpath[MAX_PATH];
|
||||
#ifdef HOST_WINDOWS
|
||||
GetPrivateProfileStringW(LSECTION, key, key, wpath, MAX_PATH, IniNameW);
|
||||
if (wcscmp(wpath, key) == 0) {
|
||||
//since the variables are all intialized in this file they all use MAX_PATH
|
||||
char temppath[MAX_PATH];
|
||||
temppath[0] = 0;
|
||||
GetDefaultPath(temppath, wcstombs((std::wstring)key).c_str(), MAX_PATH);
|
||||
wcscpy(wpath,mbstowcs((std::string)temppath).c_str());
|
||||
}
|
||||
strcpy(pathToRead,wcstombs((std::wstring)wpath).c_str());
|
||||
#else
|
||||
//since the variables are all intialized in this file they all use MAX_PATH
|
||||
GetDefaultPath(pathToRead, key, MAX_PATH);
|
||||
#endif
|
||||
}
|
||||
|
||||
void PathInfo::ReadKey(char *pathToRead, const char *key)
|
||||
{
|
||||
#ifdef HOST_WINDOWS
|
||||
|
@ -251,18 +270,18 @@ void PathInfo::ReadPathSettings()
|
|||
if ((strcmp(pathToModule, "") == 0) || !pathToModule)
|
||||
LoadModulePath();
|
||||
|
||||
ReadKey(pathToRoms, ROMKEY);
|
||||
ReadKey(pathToBattery, BATTERYKEY);
|
||||
ReadKey(pathToSramImportExport, SRAMIMPORTKEY);
|
||||
ReadKey(pathToStates, STATEKEY);
|
||||
ReadKey(pathToStateSlots, STATESLOTKEY);
|
||||
ReadKey(pathToScreenshots, SCREENSHOTKEY);
|
||||
ReadKey(pathToAviFiles, AVIKEY);
|
||||
ReadKey(pathToCheats, CHEATKEY);
|
||||
ReadKey(pathToSounds, SOUNDKEY);
|
||||
ReadKey(pathToFirmware, FIRMWAREKEY);
|
||||
ReadKey(pathToLua, LUAKEY);
|
||||
ReadKey(pathToSlot1D, SLOT1DKEY);
|
||||
ReadKeyW(pathToRoms, ROMKEY);
|
||||
ReadKeyW(pathToBattery, BATTERYKEY);
|
||||
ReadKeyW(pathToSramImportExport, SRAMIMPORTKEY);
|
||||
ReadKeyW(pathToStates, STATEKEY);
|
||||
ReadKeyW(pathToStateSlots, STATESLOTKEY);
|
||||
ReadKeyW(pathToScreenshots, SCREENSHOTKEY);
|
||||
ReadKeyW(pathToAviFiles, AVIKEY);
|
||||
ReadKeyW(pathToCheats, CHEATKEY);
|
||||
ReadKeyW(pathToSounds, SOUNDKEY);
|
||||
ReadKeyW(pathToFirmware, FIRMWAREKEY);
|
||||
ReadKeyW(pathToLua, LUAKEY);
|
||||
ReadKeyW(pathToSlot1D, SLOT1DKEY);
|
||||
#ifdef HOST_WINDOWS
|
||||
GetPrivateProfileString(SECTION, FORMATKEY, "%f_%s_%r", screenshotFormat, MAX_FORMAT, IniName);
|
||||
savelastromvisit = GetPrivateProfileBool(SECTION, LASTVISITKEY, true, IniName);
|
||||
|
|
|
@ -69,24 +69,25 @@ public:
|
|||
|
||||
#define MAX_FORMAT 20
|
||||
#define SECTION "PathSettings"
|
||||
#define LSECTION L"PathSettings"
|
||||
|
||||
#define ROMKEY "Roms"
|
||||
#define BATTERYKEY "Battery"
|
||||
#define SRAMIMPORTKEY "SramImportExport"
|
||||
#define STATEKEY "States"
|
||||
#define STATESLOTKEY "StateSlots"
|
||||
#define SCREENSHOTKEY "Screenshots"
|
||||
#define AVIKEY "AviFiles"
|
||||
#define CHEATKEY "Cheats"
|
||||
#define ROMKEY L"Roms"
|
||||
#define BATTERYKEY L"Battery"
|
||||
#define SRAMIMPORTKEY L"SramImportExport"
|
||||
#define STATEKEY L"States"
|
||||
#define STATESLOTKEY L"StateSlots"
|
||||
#define SCREENSHOTKEY L"Screenshots"
|
||||
#define AVIKEY L"AviFiles"
|
||||
#define CHEATKEY L"Cheats"
|
||||
#define R4FORMATKEY "R4format"
|
||||
#define SOUNDKEY "SoundSamples"
|
||||
#define FIRMWAREKEY "Firmware"
|
||||
#define SOUNDKEY L"SoundSamples"
|
||||
#define FIRMWAREKEY L"Firmware"
|
||||
#define FORMATKEY "format"
|
||||
#define DEFAULTFORMATKEY "defaultFormat"
|
||||
#define NEEDSSAVINGKEY "needsSaving"
|
||||
#define LASTVISITKEY "lastVisit"
|
||||
#define LUAKEY "Lua"
|
||||
#define SLOT1DKEY "Slot1D"
|
||||
#define LUAKEY L"Lua"
|
||||
#define SLOT1DKEY L"Slot1D"
|
||||
char screenshotFormat[MAX_FORMAT];
|
||||
bool savelastromvisit;
|
||||
|
||||
|
@ -108,19 +109,21 @@ public:
|
|||
MAXKNOWNPATH = MODULE
|
||||
};
|
||||
|
||||
char pathToRoms[MAX_PATH];
|
||||
char pathToBattery[MAX_PATH];
|
||||
char pathToSramImportExport[MAX_PATH];
|
||||
char pathToStates[MAX_PATH];
|
||||
char pathToStateSlots[MAX_PATH];
|
||||
char pathToScreenshots[MAX_PATH];
|
||||
char pathToAviFiles[MAX_PATH];
|
||||
char pathToCheats[MAX_PATH];
|
||||
char pathToSounds[MAX_PATH];
|
||||
char pathToFirmware[MAX_PATH];
|
||||
char pathToModule[MAX_PATH];
|
||||
char pathToLua[MAX_PATH];
|
||||
char pathToSlot1D[MAX_PATH];
|
||||
//ALL UTF8, NOT SYSTEM LOCALE!! BLEGH!
|
||||
//should probably have set locale to utf-8 but it's too late for that
|
||||
char pathToRoms[MAX_PATH*8];
|
||||
char pathToBattery[MAX_PATH*8];
|
||||
char pathToSramImportExport[MAX_PATH*8];
|
||||
char pathToStates[MAX_PATH*8];
|
||||
char pathToStateSlots[MAX_PATH*8];
|
||||
char pathToScreenshots[MAX_PATH*8];
|
||||
char pathToAviFiles[MAX_PATH*8];
|
||||
char pathToCheats[MAX_PATH*8];
|
||||
char pathToSounds[MAX_PATH*8];
|
||||
char pathToFirmware[MAX_PATH*8];
|
||||
char pathToModule[MAX_PATH*8];
|
||||
char pathToLua[MAX_PATH*8];
|
||||
char pathToSlot1D[MAX_PATH*8];
|
||||
|
||||
void init(const char *filename);
|
||||
|
||||
|
@ -135,6 +138,7 @@ public:
|
|||
void GetDefaultPath(char *pathToDefault, const char *key, int maxCount);
|
||||
|
||||
void ReadKey(char *pathToRead, const char *key);
|
||||
void ReadKeyW(char *pathToRead, const wchar_t *key);
|
||||
|
||||
void ReadPathSettings();
|
||||
|
||||
|
|
Loading…
Reference in New Issue