From: <man...@us...> - 2014-11-09 16:49:59
|
Revision: 4572 http://sourceforge.net/p/modplug/code/4572 Author: manxorist Date: 2014-11-09 16:49:43 +0000 (Sun, 09 Nov 2014) Log Message: ----------- [Ref] Convert SettingPath to mpt::ustring using AnyStringLocale. [Ref] Convert SettingValue to mpt::ustring. [Ref] Convert BinToHex and HexToBin to mpt::ustring. Modified Paths: -------------- trunk/OpenMPT/common/misc_util.cpp trunk/OpenMPT/common/misc_util.h trunk/OpenMPT/mptrack/Moptions.cpp trunk/OpenMPT/mptrack/Settings.cpp trunk/OpenMPT/mptrack/Settings.h trunk/OpenMPT/sounddev/SoundDevice.h trunk/OpenMPT/test/test.cpp Modified: trunk/OpenMPT/common/misc_util.cpp =================================================================== --- trunk/OpenMPT/common/misc_util.cpp 2014-11-09 10:18:46 UTC (rev 4571) +++ trunk/OpenMPT/common/misc_util.cpp 2014-11-09 16:49:43 UTC (rev 4572) @@ -560,33 +560,37 @@ { -static const wchar_t EncodeNibble[16] = { L'0', L'1', L'2', L'3', L'4', L'5', L'6', L'7', L'8', L'9', L'A', L'B', L'C', L'D', L'E', L'F' }; +static const MPT_UCHAR_TYPE EncodeNibble[16] = { + MPT_UCHAR('0'), MPT_UCHAR('1'), MPT_UCHAR('2'), MPT_UCHAR('3'), + MPT_UCHAR('4'), MPT_UCHAR('5'), MPT_UCHAR('6'), MPT_UCHAR('7'), + MPT_UCHAR('8'), MPT_UCHAR('9'), MPT_UCHAR('A'), MPT_UCHAR('B'), + MPT_UCHAR('C'), MPT_UCHAR('D'), MPT_UCHAR('E'), MPT_UCHAR('F') }; -static inline bool DecodeByte(uint8 &byte, wchar_t c1, wchar_t c2) +static inline bool DecodeByte(uint8 &byte, MPT_UCHAR_TYPE c1, MPT_UCHAR_TYPE c2) { byte = 0; - if(L'0' <= c1 && c1 <= L'9') + if(MPT_UCHAR('0') <= c1 && c1 <= MPT_UCHAR('9')) { - byte += static_cast<uint8>((c1 - L'0') << 4); - } else if(L'A' <= c1 && c1 <= L'F') + byte += static_cast<uint8>((c1 - MPT_UCHAR('0')) << 4); + } else if(MPT_UCHAR('A') <= c1 && c1 <= MPT_UCHAR('F')) { - byte += static_cast<uint8>((c1 - L'A' + 10) << 4); - } else if(L'a' <= c1 && c1 <= L'f') + byte += static_cast<uint8>((c1 - MPT_UCHAR('A') + 10) << 4); + } else if(MPT_UCHAR('a') <= c1 && c1 <= MPT_UCHAR('f')) { - byte += static_cast<uint8>((c1 - L'a' + 10) << 4); + byte += static_cast<uint8>((c1 - MPT_UCHAR('a') + 10) << 4); } else { return false; } - if(L'0' <= c2 && c2 <= L'9') + if(MPT_UCHAR('0') <= c2 && c2 <= MPT_UCHAR('9')) { - byte += static_cast<uint8>(c2 - L'0'); - } else if(L'A' <= c2 && c2 <= L'F') + byte += static_cast<uint8>(c2 - MPT_UCHAR('0')); + } else if(MPT_UCHAR('A') <= c2 && c2 <= MPT_UCHAR('F')) { - byte += static_cast<uint8>(c2 - L'A' + 10); - } else if(L'a' <= c2 && c2 <= L'f') + byte += static_cast<uint8>(c2 - MPT_UCHAR('A') + 10); + } else if(MPT_UCHAR('a') <= c2 && c2 <= MPT_UCHAR('f')) { - byte += static_cast<uint8>(c2 - L'a' + 10); + byte += static_cast<uint8>(c2 - MPT_UCHAR('a') + 10); } else { return false; @@ -594,9 +598,9 @@ return true; } -std::wstring BinToHex(const std::vector<char> &src) +mpt::ustring BinToHex(const std::vector<char> &src) { - std::wstring result; + mpt::ustring result; for(std::size_t i = 0; i < src.size(); ++i) { uint8 byte = src[i]; @@ -606,7 +610,7 @@ return result; } -std::vector<char> HexToBin(const std::wstring &src) +std::vector<char> HexToBin(const mpt::ustring &src) { std::vector<char> result; for(std::size_t i = 0; i+1 < src.size(); i += 2) Modified: trunk/OpenMPT/common/misc_util.h =================================================================== --- trunk/OpenMPT/common/misc_util.h 2014-11-09 10:18:46 UTC (rev 4571) +++ trunk/OpenMPT/common/misc_util.h 2014-11-09 16:49:43 UTC (rev 4572) @@ -111,7 +111,15 @@ } #endif +#if MPT_USTRING_MODE_UTF8 +template<typename T> +inline ConvertStrTo(const mpt::ustring &str) +{ + return ConvertStrTo<T>(mpt::ToCharset(mpt::CharsetUTF8, str)); +} +#endif + namespace mpt { namespace String { // Combine a vector of values into a string, separated with the given separator. @@ -703,8 +711,8 @@ namespace Util { -std::wstring BinToHex(const std::vector<char> &src); -std::vector<char> HexToBin(const std::wstring &src); +mpt::ustring BinToHex(const std::vector<char> &src); +std::vector<char> HexToBin(const mpt::ustring &src); } // namespace Util Modified: trunk/OpenMPT/mptrack/Moptions.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moptions.cpp 2014-11-09 10:18:46 UTC (rev 4571) +++ trunk/OpenMPT/mptrack/Moptions.cpp 2014-11-09 16:49:43 UTC (rev 4572) @@ -828,7 +828,7 @@ static CString FormatSetting(const SettingPath &path, const SettingValue &val) //---------------------------------------------------------------------------- { - return mpt::ToCString(path.FormatAsString() + L" = " + val.FormatAsString()); + return mpt::ToCString(path.FormatAsString() + MPT_USTRING(" = ") + val.FormatAsString()); } @@ -918,7 +918,7 @@ { return; } - val.SetFromString(mpt::ToWide(inputDlg.resultString)); + val.SetFromString(inputDlg.resultString); } theApp.GetSettings().Write(path, val); m_List.DeleteString(index); Modified: trunk/OpenMPT/mptrack/Settings.cpp =================================================================== --- trunk/OpenMPT/mptrack/Settings.cpp 2014-11-09 10:18:46 UTC (rev 4571) +++ trunk/OpenMPT/mptrack/Settings.cpp 2014-11-09 16:49:43 UTC (rev 4572) @@ -26,55 +26,55 @@ OPENMPT_NAMESPACE_BEGIN -std::wstring SettingValue::FormatTypeAsString() const +mpt::ustring SettingValue::FormatTypeAsString() const { if(GetType() == SettingTypeNone) { - return L"nil"; + return MPT_USTRING("nil"); } - std::wstring result; + mpt::ustring result; switch(GetType()) { case SettingTypeBool: - result += L"bool"; + result += MPT_USTRING("bool"); break; case SettingTypeInt: - result += L"int"; + result += MPT_USTRING("int"); break; case SettingTypeFloat: - result += L"float"; + result += MPT_USTRING("float"); break; case SettingTypeString: - result += L"string"; + result += MPT_USTRING("string"); break; case SettingTypeBinary: - result += L"binary"; + result += MPT_USTRING("binary"); break; case SettingTypeNone: default: - result += L"nil"; + result += MPT_USTRING("nil"); break; } if(HasTypeTag() && !GetTypeTag().empty()) { - result += L":" + mpt::ToWide(mpt::CharsetASCII, GetTypeTag()); + result += MPT_USTRING(":") + mpt::ToUnicode(mpt::CharsetASCII, GetTypeTag()); } return result; } -std::wstring SettingValue::FormatValueAsString() const +mpt::ustring SettingValue::FormatValueAsString() const { switch(GetType()) { case SettingTypeBool: - return StringifyW(valueBool); + return mpt::ToUString(valueBool); break; case SettingTypeInt: - return StringifyW(valueInt); + return mpt::ToUString(valueInt); break; case SettingTypeFloat: - return StringifyW(valueFloat); + return mpt::ToUString(valueFloat); break; case SettingTypeString: return valueString; @@ -84,19 +84,19 @@ break; case SettingTypeNone: default: - return std::wstring(); + return mpt::ustring(); break; } } -std::wstring SettingValue::FormatAsString() const +mpt::ustring SettingValue::FormatAsString() const { - return L"(" + FormatTypeAsString() + L")" + FormatValueAsString(); + return MPT_USTRING("(") + FormatTypeAsString() + MPT_USTRING(")") + FormatValueAsString(); } -void SettingValue::SetFromString(const std::wstring &newVal) +void SettingValue::SetFromString(const AnyStringLocale &newVal) { switch(GetType()) { @@ -373,11 +373,11 @@ std::wstring IniFileSettingsBackend::GetSection(const SettingPath &path) { - return path.GetSection(); + return mpt::ToWide(path.GetSection()); } std::wstring IniFileSettingsBackend::GetKey(const SettingPath &path) { - return path.GetKey(); + return mpt::ToWide(path.GetKey()); } Modified: trunk/OpenMPT/mptrack/Settings.h =================================================================== --- trunk/OpenMPT/mptrack/Settings.h 2014-11-09 10:18:46 UTC (rev 4571) +++ trunk/OpenMPT/mptrack/Settings.h 2014-11-09 16:49:43 UTC (rev 4572) @@ -44,7 +44,7 @@ bool valueBool; int32 valueInt; double valueFloat; - std::wstring valueString; + mpt::ustring valueString; std::vector<char> valueBinary; SettingType type; std::string typeTag; @@ -53,7 +53,7 @@ valueBool = false; valueInt = 0; valueFloat = 0.0; - valueString = std::wstring(); + valueString = mpt::ustring(); valueBinary.clear(); type = SettingTypeNone; typeTag = std::string(); @@ -121,32 +121,32 @@ { Init(); type = SettingTypeString; - valueString = mpt::ToWide(mpt::CharsetLocale, val); + valueString = mpt::ToUnicode(mpt::CharsetLocale, val); } SettingValue(const std::string &val) { Init(); type = SettingTypeString; - valueString = mpt::ToWide(mpt::CharsetLocale, val); + valueString = mpt::ToUnicode(mpt::CharsetLocale, val); } SettingValue(const wchar_t *val) { Init(); type = SettingTypeString; - valueString = val; + valueString = mpt::ToUnicode(val); } SettingValue(const std::wstring &val) { Init(); type = SettingTypeString; - valueString = val; + valueString = mpt::ToUnicode(val); } #if MPT_USTRING_MODE_UTF8 SettingValue(const mpt::ustring &val) { Init(); type = SettingTypeString; - valueString = mpt::ToWide(val); + valueString = val; } #endif SettingValue(const std::vector<char> &val) @@ -181,28 +181,28 @@ Init(); type = SettingTypeString; typeTag = typeTag_; - valueString = mpt::ToWide(mpt::CharsetLocale, val); + valueString = mpt::ToUnicode(mpt::CharsetLocale, val); } SettingValue(const std::string &val, const std::string &typeTag_) { Init(); type = SettingTypeString; typeTag = typeTag_; - valueString = mpt::ToWide(mpt::CharsetLocale, val); + valueString = mpt::ToUnicode(mpt::CharsetLocale, val); } SettingValue(const wchar_t *val, const std::string &typeTag_) { Init(); type = SettingTypeString; typeTag = typeTag_; - valueString = val; + valueString = mpt::ToUnicode(val); } SettingValue(const std::wstring &val, const std::string &typeTag_) { Init(); type = SettingTypeString; typeTag = typeTag_; - valueString = val; + valueString = mpt::ToUnicode(val); } #if MPT_USTRING_MODE_UTF8 SettingValue(const mpt::ustring &val, const std::string &typeTag_) @@ -210,7 +210,7 @@ Init(); type = SettingTypeString; typeTag = typeTag_; - valueString = mpt::ToWide(val); + valueString = val; } #endif SettingValue(const std::vector<char> &val, const std::string &typeTag_) @@ -260,13 +260,13 @@ operator std::wstring () const { ASSERT(type == SettingTypeString); - return valueString; + return mpt::ToWide(valueString); } #if MPT_USTRING_MODE_UTF8 operator mpt::ustring () const { ASSERT(type == SettingTypeString); - return mpt::ToUnicode(valueString); + return valueString; } #endif operator std::vector<char> () const @@ -274,10 +274,10 @@ ASSERT(type == SettingTypeBinary); return valueBinary; } - std::wstring FormatTypeAsString() const; - std::wstring FormatValueAsString() const; - std::wstring FormatAsString() const; - void SetFromString(const std::wstring &newVal); + mpt::ustring FormatTypeAsString() const; + mpt::ustring FormatValueAsString() const; + mpt::ustring FormatAsString() const; + void SetFromString(const AnyStringLocale &newVal); }; @@ -411,30 +411,24 @@ class SettingPath { private: - std::wstring section; - std::wstring key; + mpt::ustring section; + mpt::ustring key; public: SettingPath() { return; } - SettingPath(const std::wstring §ion_, const std::wstring &key_) + SettingPath(const AnyStringLocale §ion_, const AnyStringLocale &key_) : section(section_) , key(key_) { return; } - SettingPath(const std::string §ion_, const std::string &key_) - : section(mpt::ToWide(mpt::CharsetLocale, section_)) - , key(mpt::ToWide(mpt::CharsetLocale, key_)) + mpt::ustring GetSection() const { - return; - } - std::wstring GetSection() const - { return section; } - std::wstring GetKey() const + mpt::ustring GetKey() const { return key; } @@ -448,9 +442,9 @@ int cmp_key = key.compare(other.key); return cmp_key; } - std::wstring FormatAsString() const + mpt::ustring FormatAsString() const { - return section + L"." + key; + return section + MPT_USTRING(".") + key; } }; @@ -473,10 +467,9 @@ struct SettingMetadata { - std::string description; + mpt::ustring description; SettingMetadata() {} - template<typename T1> - SettingMetadata(const T1 &description) + SettingMetadata(const AnyStringLocale &description) : description(description) { return; @@ -546,54 +539,36 @@ return FromSettingValue<T>(ReadSetting(path, ToSettingValue<T>(def), metadata)); } template <typename T> - T Read(const std::wstring §ion, const std::wstring &key, const T &def = T(), const SettingMetadata &metadata = SettingMetadata()) const + T Read(const AnyStringLocale §ion, const AnyStringLocale &key, const T &def = T(), const SettingMetadata &metadata = SettingMetadata()) const { return FromSettingValue<T>(ReadSetting(SettingPath(section, key), ToSettingValue<T>(def), metadata)); } template <typename T> - T Read(const std::string §ion, const std::string &key, const T &def = T(), const SettingMetadata &metadata = SettingMetadata()) const - { - return FromSettingValue<T>(ReadSetting(SettingPath(section, key), ToSettingValue<T>(def), metadata)); - } - template <typename T> void Write(const SettingPath &path, const T &val, SettingFlushMode flushMode = SettingWriteBack) { WriteSetting(path, ToSettingValue<T>(val), flushMode); } template <typename T> - void Write(const std::wstring §ion, const std::wstring &key, const T &val, SettingFlushMode flushMode = SettingWriteBack) + void Write(const AnyStringLocale §ion, const AnyStringLocale &key, const T &val, SettingFlushMode flushMode = SettingWriteBack) { WriteSetting(SettingPath(section, key), ToSettingValue<T>(val), flushMode); } - template <typename T> - void Write(const std::string §ion, const std::string &key, const T &val, SettingFlushMode flushMode = SettingWriteBack) - { - WriteSetting(SettingPath(section, key), ToSettingValue<T>(val), flushMode); - } void Forget(const SettingPath &path) { ForgetSetting(path); } - void Forget(const std::wstring §ion, const std::wstring &key) + void Forget(const AnyStringLocale §ion, const AnyStringLocale &key) { ForgetSetting(SettingPath(section, key)); } - void Forget(const std::string §ion, const std::string &key) - { - ForgetSetting(SettingPath(section, key)); - } void Remove(const SettingPath &path) { RemoveSetting(path); } - void Remove(const std::wstring §ion, const std::wstring &key) + void Remove(const AnyStringLocale §ion, const AnyStringLocale &key) { RemoveSetting(SettingPath(section, key)); } - void Remove(const std::string §ion, const std::string &key) - { - RemoveSetting(SettingPath(section, key)); - } void Flush(); ~SettingsContainer(); @@ -642,18 +617,12 @@ return; } public: - Setting(SettingsContainer &conf_, const std::string §ion, const std::string &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) + Setting(SettingsContainer &conf_, const AnyStringLocale §ion, const AnyStringLocale &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) : conf(conf_) , path(section, key) { conf.Read(path, def, metadata); // set default value } - Setting(SettingsContainer &conf_, const std::wstring §ion, const std::wstring &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) - : conf(conf_) - , path(section, key) - { - conf.Read(path, def, metadata); // set default value - } Setting(SettingsContainer &conf_, const SettingPath &path_, const T&def, const SettingMetadata &metadata = SettingMetadata()) : conf(conf_) , path(path_) @@ -704,7 +673,7 @@ conf.Register(this, path); } public: - CachedSetting(SettingsContainer &conf_, const std::string §ion, const std::string &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) + CachedSetting(SettingsContainer &conf_, const AnyStringLocale §ion, const AnyStringLocale &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) : value(def) , conf(conf_) , path(section, key) @@ -712,14 +681,6 @@ value = conf.Read(path, def, metadata); conf.Register(this, path); } - CachedSetting(SettingsContainer &conf_, const std::wstring §ion, const std::wstring &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) - : value(def) - , conf(conf_) - , path(section, key) - { - value = conf.Read(path, def, metadata); - conf.Register(this, path); - } CachedSetting(SettingsContainer &conf_, const SettingPath &path_, const T&def, const SettingMetadata &metadata = SettingMetadata()) : value(def) , conf(conf_) @@ -788,20 +749,13 @@ return; } public: - Setting(SettingsContainer &conf_, const std::string §ion, const std::string &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) + Setting(SettingsContainer &conf_, const AnyStringLocale §ion, const AnyStringLocale &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) : value(def) , conf(conf_) , path(section, key) { value = conf.Read(path, def, metadata); } - Setting(SettingsContainer &conf_, const std::wstring §ion, const std::wstring &key, const T&def, const SettingMetadata &metadata = SettingMetadata()) - : value(def) - , conf(conf_) - , path(section, key) - { - value = conf.Read(path, def, metadata); - } Setting(SettingsContainer &conf_, const SettingPath &path_, const T&def, const SettingMetadata &metadata = SettingMetadata()) : value(def) , conf(conf_) Modified: trunk/OpenMPT/sounddev/SoundDevice.h =================================================================== --- trunk/OpenMPT/sounddev/SoundDevice.h 2014-11-09 10:18:46 UTC (rev 4571) +++ trunk/OpenMPT/sounddev/SoundDevice.h 2014-11-09 16:49:43 UTC (rev 4572) @@ -196,7 +196,7 @@ // UTF8-encode the name and convert the utf8 to hex. // This ensures that no special characters are contained in the configuration key. std::string utf8String = mpt::ToCharset(mpt::CharsetUTF8, name); - mpt::ustring hexString = mpt::ToUnicode(Util::BinToHex(std::vector<char>(utf8String.begin(), utf8String.end()))); + mpt::ustring hexString = Util::BinToHex(std::vector<char>(utf8String.begin(), utf8String.end())); result += hexString; } else { Modified: trunk/OpenMPT/test/test.cpp =================================================================== --- trunk/OpenMPT/test/test.cpp 2014-11-09 10:18:46 UTC (rev 4571) +++ trunk/OpenMPT/test/test.cpp 2014-11-09 16:49:43 UTC (rev 4572) @@ -912,7 +912,7 @@ { DefaultSettingsContainer conf; - int32 foobar = conf.Read("Test", "bar", 23, "foobar"); + int32 foobar = conf.Read("Test", "bar", 23, SettingMetadata("foobar")); conf.Write("Test", "bar", 64); conf.Write("Test", "bar", 42); conf.Read("Test", "baz", 4711); @@ -922,7 +922,7 @@ { DefaultSettingsContainer conf; - int32 foobar = conf.Read("Test", "bar", 28, "foobar"); + int32 foobar = conf.Read("Test", "bar", 28, SettingMetadata("foobar")); VERIFY_EQUAL(foobar, 42); conf.Write("Test", "bar", 43); } @@ -930,7 +930,7 @@ { DefaultSettingsContainer conf; - int32 foobar = conf.Read("Test", "bar", 123, "foobar"); + int32 foobar = conf.Read("Test", "bar", 123, SettingMetadata("foobar")); VERIFY_EQUAL(foobar, 43); conf.Write("Test", "bar", 88); } @@ -938,7 +938,7 @@ { DefaultSettingsContainer conf; - Setting<int> foo(conf, "Test", "bar", 99, "something"); + Setting<int> foo(conf, "Test", "bar", 99, SettingMetadata("something")); VERIFY_EQUAL(foo, 88); @@ -948,7 +948,7 @@ { DefaultSettingsContainer conf; - Setting<int> foo(conf, "Test", "bar", 99, "something"); + Setting<int> foo(conf, "Test", "bar", 99, SettingMetadata("something")); VERIFY_EQUAL(foo, 7); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |