/**************************************************************************** * Copyright (C) 2010 * by Dimok * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any * damages arising from the use of this software. * * Permission is granted to anyone to use this software for any * purpose, including commercial applications, and to alter it and * redistribute it freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you * must not claim that you wrote the original software. If you use * this software in a product, an acknowledgment in the product * documentation would be appreciated but is not required. * * 2. Altered source versions must be plainly marked as such, and * must not be misrepresented as being the original software. * * 3. This notice may not be removed or altered from any source * distribution. ***************************************************************************/ #ifndef _CSETTINGS_H_ #define _CSETTINGS_H_ #include #include #include #include #include "SettingsEnums.h" #include "GameCube/DML_Config.h" #include "GameCube/DEVO_Config.h" #include "GameCube/NIN_Config.h" class CSettings { public: //!Constructor CSettings(); //!Destructor ~CSettings(); //!Set Default Settings void SetDefault(); //!Load Settings bool Load(); //!Save Settings bool Save(); //!Reset Settings bool Reset(); //!Load a languagefile //!\param language bool LoadLanguage(const char *path, int language = -1); //! System settings stuff bool widescreen; bool PAL50; bool NTSC; /** Variables **/ char BootDevice[10]; char unlockCode[20]; char db_language[10]; char returnTo[20]; char ConfigPath[80]; char covers_path[100]; char coversFull_path[100]; char covers2d_path[100]; char theme_path[100]; char theme[100]; char disc_path[100]; char titlestxt_path[100]; char language_path[100]; char languagefiles_path[100]; char ogg_path[150]; char Cheatcodespath[100]; char TxtCheatcodespath[100]; char BcaCodepath[100]; char WipCodepath[100]; char dolpath[100]; char homebrewapps_path[100]; char WDMpath[100]; char WiinnertagPath[100]; char NandEmuPath[50]; char NandEmuChanPath[50]; char BNRCachePath[100]; char GameHeaderCachePath[100]; char GameCubePath[100]; char GameCubeSDPath[100]; char DEVOLoaderPath[100]; char NINLoaderPath[100]; char CustomAddress[300]; char URL_Banners[300]; char URL_Covers2D[300]; char URL_Covers3D[300]; char URL_CoversFull[300]; char URL_CoversFullHQ[300]; char URL_Discs[300]; char URL_DiscsCustom[300]; char URL_GameTDB[300]; char URL_Cheats[300]; char ProxyUsername[33]; char ProxyPassword[33]; char ProxyAddress[256]; u16 ProxyPort; short ProxyUseSystem; short videomode; short language; short ocarina; short videopatch; short videoPatchDol; short patchFix480p; short deflicker; short sinfo; short hddinfo; short rumble; short xflip; short volume; short sfxvolume; short gamesoundvolume; short tooltips; short parentalcontrol; short videoWidth; u8 BootIOS; u8 LoaderIOS; u8 cios; short AutoIOS; short quickboot; short wsprompt; short keyset; short GameSort; short wiilight; short gameDisplay; short patchcountrystrings; short screensaver; short partition; short musicloopmode; short godmode; short TitlesType; short CacheCheck; u32 CacheCheckCRC; short CacheTitles; short gridRows; short autonetwork; short discart; short coversfull; short CoverAction; short gamesound; short marknewtitles; short InstallToDir; short GameSplit; short PlaylogUpdate; short ShowFreeSpace; short ShowGameCount; short HomeMenu; short MultiplePartitions; short USBPort; short USBAutoMount; short BlockIOSReload; u32 InstallPartitions; u32 ParentalBlocks; f32 WSFactor; f32 FontScaleFactor; f32 ClockFontScaleFactor; f32 PointerSpeed; short Wiinnertag; short SelectedGame; short GameListOffset; short RememberLastGame; short sneekVideoPatch; std::vector EnabledCategories; std::vector RequiredCategories; std::vector ForbiddenCategories; u8 EntryIOS; short NandEmuMode; short NandEmuChanMode; short UseSystemFont; short AutobootDiscs; short AutobootDiscsDelay; short Hooktype; short WiirdDebugger; short WiirdDebuggerPause; short ShowPlayCount; short bannerFavIcon; short RememberUnlock; short LoaderMode; short SearchMode; short GameAspectRatio; short UseChanLauncher; int AdjustOverscanX; int AdjustOverscanY; short TooltipDelay; short GameWindowMode; short CacheBNRFiles; short BannerAnimStart; float BannerGridSpeed; short BannerZoomDuration; float BannerProjectionOffsetX; float BannerProjectionOffsetY; float BannerProjectionWidth; float BannerProjectionHeight; float GCBannerScale; short GameCubeMode; short GameCubeSource; short MultiDiscPrompt; short DMLVideo; short DMLProgPatch; short DMLNMM; short DMLActivityLED; short DMLPADHOOK; short DMLNoDisc2; short DMLWidescreen; short DMLScreenshot; short DMLJPNPatch; short DMLDebug; short NINDeflicker; short NINPal50Patch; short NINWiiUWide; short NINVideoScale; short NINVideoOffset; short NINRemlimit; short NINArcadeMode; short NINCCRumble; short NINSkipIPL; short NINBBA; short NINBBAProfile; s8 NINMCEmulation; short NINMCSize; short NINAutoboot; short NINSettings; short NINUSBHID; short NINMaxPads; short NINNativeSI; short NINOSReport; short NINLED; short NINLog; short DEVOMCEmulation; short DEVOWidescreen; short DEVOActivityLED; short DEVOFZeroAX; short DEVOTimerFix; short DEVODButtons; short DEVOCropOverscan; short DEVODiscDelay; short GCInstallCompressed; short GCInstallAligned; short PrivateServer; // These variables are not saved to the settings file bool FirstTimeRun; bool skipSaving; short SDMode; protected: bool ValidVersion(FILE * file); bool ValidateURL(char *value, int type = 0); bool SetSetting(char *name, char *value); //!Find the config file in the default paths bool FindConfig(); void ParseLine(char *line); void TrimLine(char *dest, char *src, int size); }; extern CSettings Settings; #endif