Bundle libOpenMPT as a dynamic framework, which should be safe once again, now that there is only one version to bundle. Also, now it is using the versions of libvorbisfile and libmpg123 that are bundled with the player, instead of compiling minimp3 and stbvorbis. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
98 lines
5.3 KiB
C++
98 lines
5.3 KiB
C++
/*
|
|
* mptStringParse.cpp
|
|
* ------------------
|
|
* Purpose: Convert strings to other types.
|
|
* Notes : (currently none)
|
|
* Authors: OpenMPT Devs
|
|
* The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
|
|
*/
|
|
|
|
|
|
#include "stdafx.h"
|
|
#include "mptStringParse.h"
|
|
|
|
#include "mpt/parse/parse.hpp"
|
|
|
|
|
|
OPENMPT_NAMESPACE_BEGIN
|
|
|
|
|
|
template<typename T>
|
|
inline T ConvertStrToHelper(const std::string &str)
|
|
{
|
|
return mpt::ConvertStringTo<T>(str);
|
|
}
|
|
template<> inline bool ConvertStrToHelper(const std::string &str) { return ConvertStrToHelper<int>(str)?true:false; }
|
|
template<> inline signed char ConvertStrToHelper(const std::string &str) { return static_cast<signed char>(ConvertStrToHelper<signed int>(str)); }
|
|
template<> inline unsigned char ConvertStrToHelper(const std::string &str) { return static_cast<unsigned char>(ConvertStrToHelper<unsigned int>(str)); }
|
|
|
|
#if MPT_WSTRING_FORMAT
|
|
template<typename T>
|
|
inline T ConvertStrToHelper(const std::wstring &str)
|
|
{
|
|
return mpt::ConvertStringTo<T>(str);
|
|
}
|
|
template<> inline bool ConvertStrToHelper(const std::wstring &str) { return ConvertStrToHelper<int>(str)?true:false; }
|
|
template<> inline signed char ConvertStrToHelper(const std::wstring &str) { return static_cast<signed char>(ConvertStrToHelper<signed int>(str)); }
|
|
template<> inline unsigned char ConvertStrToHelper(const std::wstring &str) { return static_cast<unsigned char>(ConvertStrToHelper<unsigned int>(str)); }
|
|
#endif
|
|
|
|
bool ConvertStrToBool(const std::string &str) { return ConvertStrToHelper<bool>(str); }
|
|
signed char ConvertStrToSignedChar(const std::string &str) { return ConvertStrToHelper<signed char>(str); }
|
|
unsigned char ConvertStrToUnsignedChar(const std::string &str) { return ConvertStrToHelper<unsigned char>(str); }
|
|
signed short ConvertStrToSignedShort(const std::string &str) { return ConvertStrToHelper<signed short>(str); }
|
|
unsigned short ConvertStrToUnsignedShort(const std::string &str) { return ConvertStrToHelper<unsigned short>(str); }
|
|
signed int ConvertStrToSignedInt(const std::string &str) { return ConvertStrToHelper<signed int>(str); }
|
|
unsigned int ConvertStrToUnsignedInt(const std::string &str) { return ConvertStrToHelper<unsigned int>(str); }
|
|
signed long ConvertStrToSignedLong(const std::string &str) { return ConvertStrToHelper<signed long>(str); }
|
|
unsigned long ConvertStrToUnsignedLong(const std::string &str) { return ConvertStrToHelper<unsigned long>(str); }
|
|
signed long long ConvertStrToSignedLongLong(const std::string &str) { return ConvertStrToHelper<signed long long>(str); }
|
|
unsigned long long ConvertStrToUnsignedLongLong(const std::string &str) { return ConvertStrToHelper<unsigned long long>(str); }
|
|
float ConvertStrToFloat(const std::string &str) { return ConvertStrToHelper<float>(str); }
|
|
double ConvertStrToDouble(const std::string &str) { return ConvertStrToHelper<double>(str); }
|
|
long double ConvertStrToLongDouble(const std::string &str) { return ConvertStrToHelper<long double>(str); }
|
|
|
|
#if MPT_WSTRING_FORMAT
|
|
bool ConvertStrToBool(const std::wstring &str) { return ConvertStrToHelper<bool>(str); }
|
|
signed char ConvertStrToSignedChar(const std::wstring &str) { return ConvertStrToHelper<signed char>(str); }
|
|
unsigned char ConvertStrToUnsignedChar(const std::wstring &str) { return ConvertStrToHelper<unsigned char>(str); }
|
|
signed short ConvertStrToSignedShort(const std::wstring &str) { return ConvertStrToHelper<signed short>(str); }
|
|
unsigned short ConvertStrToUnsignedShort(const std::wstring &str) { return ConvertStrToHelper<unsigned short>(str); }
|
|
signed int ConvertStrToSignedInt(const std::wstring &str) { return ConvertStrToHelper<signed int>(str); }
|
|
unsigned int ConvertStrToUnsignedInt(const std::wstring &str) { return ConvertStrToHelper<unsigned int>(str); }
|
|
signed long ConvertStrToSignedLong(const std::wstring &str) { return ConvertStrToHelper<signed long>(str); }
|
|
unsigned long ConvertStrToUnsignedLong(const std::wstring &str) { return ConvertStrToHelper<unsigned long>(str); }
|
|
signed long long ConvertStrToSignedLongLong(const std::wstring &str) { return ConvertStrToHelper<signed long long>(str); }
|
|
unsigned long long ConvertStrToUnsignedLongLong(const std::wstring &str) { return ConvertStrToHelper<unsigned long long>(str); }
|
|
float ConvertStrToFloat(const std::wstring &str) { return ConvertStrToHelper<float>(str); }
|
|
double ConvertStrToDouble(const std::wstring &str) { return ConvertStrToHelper<double>(str); }
|
|
long double ConvertStrToLongDouble(const std::wstring &str) { return ConvertStrToHelper<long double>(str); }
|
|
#endif
|
|
|
|
|
|
namespace mpt
|
|
{
|
|
namespace String
|
|
{
|
|
namespace Parse
|
|
{
|
|
|
|
template<typename T>
|
|
T HexToHelper(const std::string &str)
|
|
{
|
|
return mpt::ConvertHexStringTo<T>(str);
|
|
}
|
|
template<> unsigned char HexToHelper(const std::string &str) { return static_cast<unsigned char>(HexToHelper<unsigned int>(str)); }
|
|
|
|
unsigned char HexToUnsignedChar(const std::string &str) { return HexToHelper<unsigned char>(str); }
|
|
unsigned short HexToUnsignedShort(const std::string &str) { return HexToHelper<unsigned short>(str); }
|
|
unsigned int HexToUnsignedInt(const std::string &str) { return HexToHelper<unsigned int>(str); }
|
|
unsigned long HexToUnsignedLong(const std::string &str) { return HexToHelper<unsigned long>(str); }
|
|
unsigned long long HexToUnsignedLongLong(const std::string &str) { return HexToHelper<unsigned long long>(str); }
|
|
|
|
} // namespace Parse
|
|
} // namespace String
|
|
} // namespace mpt
|
|
|
|
|
|
OPENMPT_NAMESPACE_END
|