{
using namespace TagLib;
- inline String::Type wcharByteOrder()
- {
- if(Utils::systemByteOrder() == Utils::LittleEndian)
- return String::UTF16LE;
- else
- return String::UTF16BE;
- }
-
inline size_t UTF16toUTF8(
const wchar_t *src, size_t srcLength, char *dst, size_t dstLength)
{
// This looks ugly but needed for the compatibility with TagLib1.8.
// Should be removed in TabLib2.0.
if (t == UTF16BE)
- t = wcharByteOrder();
+ t = WCharByteOrder;
else if (t == UTF16LE)
- t = (wcharByteOrder() == UTF16LE ? UTF16BE : UTF16LE);
+ t = (WCharByteOrder == UTF16LE ? UTF16BE : UTF16LE);
copyFromUTF16(s.c_str(), s.length(), t);
}
// This looks ugly but needed for the compatibility with TagLib1.8.
// Should be removed in TabLib2.0.
if (t == UTF16BE)
- t = wcharByteOrder();
+ t = WCharByteOrder;
else if (t == UTF16LE)
- t = (wcharByteOrder() == UTF16LE ? UTF16BE : UTF16LE);
+ t = (WCharByteOrder == UTF16LE ? UTF16BE : UTF16LE);
copyFromUTF16(s, ::wcslen(s), t);
}
length--;
}
else
- swap = (t != wcharByteOrder());
+ swap = (t != WCharByteOrder);
d->data.resize(length);
if(length > 0) {
length -= 2;
}
else
- swap = (t != wcharByteOrder());
+ swap = (t != WCharByteOrder);
d->data.resize(length / 2);
for(size_t i = 0; i < length / 2; ++i) {
}
}
+const String::Type String::WCharByteOrder
+ = (Utils::systemByteOrder() == Utils::BigEndian) ? String::UTF16BE : String::UTF16LE;
+
}
////////////////////////////////////////////////////////////////////////////////
*/
void copyFromUTF16(const char *s, size_t length, Type t);
+ /*!
+ * Indicates which byte order of UTF-16 is used to store strings internally.
+ *
+ * \note \e String::UTF16BE or \e String::UTF16LE
+ */
+ static const Type WCharByteOrder;
+
class StringPrivate;
StringPrivate *d;
};