00001
00002
00003
00004
00005 #pragma once
00006 #ifndef __I_CONFIG_MANAGER_H__
00007 #define __I_CONFIG_MANAGER_H__
00008
00009 #include "IIniFileReader.hpp"
00010 #include "IAudioDevice.hpp"
00011
00012 using namespace nge::audio;
00013 using namespace nge::io;
00014 using namespace irr;
00015 using namespace irr::video;
00016 using namespace irr::core;
00017
00018 namespace nge
00019 {
00020
00021 namespace core
00022 {
00023
00025
00028 class IConfigManager : public virtual IReferenceCounted
00029 {
00030 public:
00032 virtual ~IConfigManager() {}
00033
00035
00041 virtual bool loadConfigFromIni() = 0;
00042
00044
00059 virtual bool createEmptyIniFile(
00060 E_DRIVER_TYPE DriverType,
00061 E_AUDIO_DEVICE AudioDeviceType,
00062 dimension2d<s32> WindowSize,
00063 u32 Bits,
00064 bool Fullscreen,
00065 bool Stencilbuffer,
00066 bool Vsync,
00067 bool AntiAlias,
00068 bool HighPrecisionFPU,
00069 c8* MainFontFile,
00070 c8* IsMediaFolderOrZip,
00071 c8* MediaArchive) = 0;
00072
00074 virtual stringc getIniFilePath() const = 0;
00075
00077
00078 virtual bool saveChanges() = 0;
00079
00081 virtual SIrrlichtCreationParameters& getSDeviceParam() = 0;
00082
00084 virtual E_DRIVER_TYPE getVideoDriverType() const = 0;
00085
00087 virtual E_AUDIO_DEVICE getAudioDeviceType() const = 0;
00088
00090 virtual dimension2di getWindowSize() const = 0;
00091
00093 virtual u32 getBitsPerPixel() const = 0;
00094
00096 virtual bool getFullscreen() const = 0;
00097
00099 virtual bool getStencilbuffer() const = 0;
00100
00102 virtual bool getVsync() const = 0;
00103
00105 virtual bool getAntiAlias() const = 0;
00106
00108 virtual bool getHighPrecisionFPU() const = 0;
00109
00111 virtual c8* getMainFontFileName() const = 0;
00112
00114 virtual c8* isMediaFolderOrZip() const = 0;
00115
00117 virtual c8* getMediaArchivePath() const = 0;
00118
00120 virtual void setSDeviceParam(const SIrrlichtCreationParameters&) = 0;
00121
00123 virtual void setDriverType(E_DRIVER_TYPE) = 0;
00124
00126 virtual void setAudioDeviceType(E_AUDIO_DEVICE) = 0;
00127
00129 virtual void setWindowSize(const s32, const s32) = 0;
00130
00132 virtual void setBitsPerPixel(u32) = 0;
00133
00135 virtual void setFullscreen(bool) = 0;
00136
00138 virtual void setStencilbuffer(bool) = 0;
00139
00141 virtual void setVsync(bool) = 0;
00142
00144 virtual void setAntiAlias(bool) = 0;
00145
00147 virtual void setHighPrecisionFPU(bool) = 0;
00148
00150 virtual void setMainFontFileName(c8*) = 0;
00151
00152 virtual void setMediaFolderOrZip(c8*) = 0;
00153
00155 virtual void setMediaArchivePath(c8*) = 0;
00156 };
00157
00159 IConfigManager* createConfigManager(const c8* file, bool createNewFile = false);
00160
00161 }
00162 }
00163
00164 #endif // __I_CONFIG_MANAGER_H__