diff options
Diffstat (limited to '')
-rw-r--r-- | src/base/config.cpp | 14 | ||||
-rw-r--r-- | src/base/config.hpp | 12 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/base/config.cpp b/src/base/config.cpp index d1824187..0bcac232 100644 --- a/src/base/config.cpp +++ b/src/base/config.cpp @@ -31,10 +31,13 @@ namespace usdx log4cpp::Category::getInstance("usdx.base.config"); Config::Config() + : graphics_resolution(800,600) { try { // TODO: handling different paths read_ini("config.ini", this->pt); + + graphics_resolution = pt.get("graphics.resolution", graphics_resolution); } catch(...) { log << log4cpp::Priority::ERROR << "Loading of configuration failed."; @@ -56,4 +59,15 @@ namespace usdx log << log4cpp::Priority::ERROR << "Saving of configuration failed."; } } + + void Config::set_graphics_resolution(Dimension<int> value) + { + graphics_resolution = value; + pt.put("graphics.resolution", value); + } + + Dimension<int> Config::get_graphics_resolution(void) const + { + return graphics_resolution; + } }; diff --git a/src/base/config.hpp b/src/base/config.hpp index 49c2e53a..a71e26c7 100644 --- a/src/base/config.hpp +++ b/src/base/config.hpp @@ -27,6 +27,8 @@ #include <log4cpp/Category.hh> #include <boost/property_tree/ptree.hpp> +#include "utils/dimension.hpp" +#include "utils/dimension_translator.hpp" namespace usdx { @@ -40,12 +42,22 @@ namespace usdx */ boost::property_tree::ptree pt; + /* Following all the available configuration options. They get filled + * with default or saved values within the constructor. They should be + * only accessible via getter/setter and setting a new value sould + * update the apropriate entry in the property tree instance. + */ + Dimension<int> graphics_resolution; + public: Config(); virtual ~Config(); /* Save the current status of the configuration items. */ void save(void) const; + + void set_graphics_resolution(Dimension<int> value); + Dimension<int> get_graphics_resolution(void) const; }; }; |