From 9946459c0cd65c3b66719a2aefc42c7ab2a29c04 Mon Sep 17 00:00:00 2001 From: erihel Date: Thu, 9 Aug 2012 23:04:29 +0200 Subject: * changed 0, NULL to nullptr * changed profile.cpp to use SimpleIni to load config files * added new CProfile singleton class for loading config * added SimpleIni to lib/ dir * added config loading tests --- src/common/profile.h | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'src/common/profile.h') diff --git a/src/common/profile.h b/src/common/profile.h index 2c76a0b..ae67e52 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -18,13 +18,32 @@ #pragma once +#include -extern bool InitCurrentDirectory(); -extern bool SetLocalProfileString(char* section, char* key, char* string); -extern bool GetLocalProfileString(char* section, char* key, char* buffer, int max); -extern bool SetLocalProfileInt(char* section, char* key, int value); -extern bool GetLocalProfileInt(char* section, char* key, int &value); -extern bool SetLocalProfileFloat(char* section, char* key, float value); -extern bool GetLocalProfileFloat(char* section, char* key, float &value); +#include +#include + +class CProfile : public CSingleton +{ + public: + CProfile(); + ~CProfile(); + + bool InitCurrentDirectory(); + bool SetLocalProfileString(std::string section, std::string key, std::string value); + bool GetLocalProfileString(std::string section, std::string key, std::string& buffer); + + bool SetLocalProfileInt(std::string section, std::string key, int value); + bool GetLocalProfileInt(std::string section, std::string key, int &value); + + bool SetLocalProfileFloat(std::string section, std::string key, float value); + bool GetLocalProfileFloat(std::string section, std::string key, float &value); + + static CProfile& GetInstance(); + static CProfile* GetInstancePointer(); + + private: + CSimpleIniA *m_ini; +}; -- cgit v1.2.3-1-g7c22 From 5e271e550dbb88f0bbea5f46aad9f0fd1d750eb3 Mon Sep 17 00:00:00 2001 From: erihel Date: Sun, 12 Aug 2012 15:00:37 +0200 Subject: * New CPluginManager class for managing plugins based on colobot.ini * Moved sound plugin into sound dir * Minor changes in logger and profile --- src/common/profile.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) (limited to 'src/common/profile.h') diff --git a/src/common/profile.h b/src/common/profile.h index ae67e52..0886522 100644 --- a/src/common/profile.h +++ b/src/common/profile.h @@ -19,31 +19,96 @@ #pragma once #include +#include +#include #include #include +/** + * @file common/profile.h + * @brief Class for loading profile (currently for loading ini config file) + */ + +/** +* @class CProfile +* +* @brief Class for loading profile (currently for loading ini config file) +* +*/ class CProfile : public CSingleton { public: CProfile(); ~CProfile(); + /** Loads colobot.ini from current directory + * @return return true on success + */ bool InitCurrentDirectory(); + + /** Sets string value in section under specified key + * @param std::string section + * @param std::string key + * @param std::string value + * @return return true on success + */ bool SetLocalProfileString(std::string section, std::string key, std::string value); + + /** Gets string value in section under specified key + * @param std::string section + * @param std::string key + * @param std::string& buffer + * @return return true on success + */ bool GetLocalProfileString(std::string section, std::string key, std::string& buffer); + /** Sets int value in section under specified key + * @param std::string section + * @param std::string key + * @param int value + * @return return true on success + */ bool SetLocalProfileInt(std::string section, std::string key, int value); + + /** Gets int value in section under specified key + * @param std::string section + * @param std::string key + * @param int& value + * @return return true on success + */ bool GetLocalProfileInt(std::string section, std::string key, int &value); + /** Sets float value in section under specified key + * @param std::string section + * @param std::string key + * @param float value + * @return return true on success + */ bool SetLocalProfileFloat(std::string section, std::string key, float value); + + /** Gets float value in section under specified key + * @param std::string section + * @param std::string key + * @param float& value + * @return return true on success + */ bool GetLocalProfileFloat(std::string section, std::string key, float &value); - static CProfile& GetInstance(); - static CProfile* GetInstancePointer(); + /** Gets all values in section under specified key + * @param std::string section + * @param std::string key + * @return vector of values + */ + std::vector< std::string > GetLocalProfileSection(std::string section, std::string key); private: CSimpleIniA *m_ini; }; + +//! Global function to get profile instance +inline CProfile* GetProfile() { + return CProfile::GetInstancePointer(); +} -- cgit v1.2.3-1-g7c22