26#ifndef TAGLIB_TUTILS_H
27#define TAGLIB_TUTILS_H
31#ifndef DO_NOT_DOCUMENT
42#if defined(HAVE_MSC_BYTESWAP)
44#elif defined(HAVE_GLIBC_BYTESWAP)
46#elif defined(HAVE_MAC_BYTESWAP)
47# include <libkern/OSByteOrder.h>
48#elif defined(HAVE_OPENBSD_BYTESWAP)
49# include <sys/endian.h>
72 switch(
static_cast<unsigned char>(
c)) {
78 return static_cast<String::Type>(
static_cast<unsigned char>(
c));
89#if defined(HAVE_GCC_BYTESWAP)
93#elif defined(HAVE_MSC_BYTESWAP)
97#elif defined(HAVE_GLIBC_BYTESWAP)
101#elif defined(HAVE_MAC_BYTESWAP)
105#elif defined(HAVE_OPENBSD_BYTESWAP)
111 return ((
x >> 8) & 0xff) | ((
x & 0xff) << 8);
121#if defined(HAVE_GCC_BYTESWAP)
125#elif defined(HAVE_MSC_BYTESWAP)
129#elif defined(HAVE_GLIBC_BYTESWAP)
133#elif defined(HAVE_MAC_BYTESWAP)
137#elif defined(HAVE_OPENBSD_BYTESWAP)
143 return ((
x & 0xff000000u) >> 24)
144 | ((
x & 0x00ff0000u) >> 8)
145 | ((
x & 0x0000ff00u) << 8)
146 | ((
x & 0x000000ffu) << 24);
156#if defined(HAVE_GCC_BYTESWAP)
160#elif defined(HAVE_MSC_BYTESWAP)
164#elif defined(HAVE_GLIBC_BYTESWAP)
168#elif defined(HAVE_MAC_BYTESWAP)
172#elif defined(HAVE_OPENBSD_BYTESWAP)
178 return ((
x & 0xff00000000000000ull) >> 56)
179 | ((
x & 0x00ff000000000000ull) >> 40)
180 | ((
x & 0x0000ff0000000000ull) >> 24)
181 | ((
x & 0x000000ff00000000ull) >> 8)
182 | ((
x & 0x00000000ff000000ull) << 8)
183 | ((
x & 0x0000000000ff0000ull) << 24)
184 | ((
x & 0x000000000000ff00ull) << 40)
185 | ((
x & 0x00000000000000ffull) << 56);
235 constexpr IntCharUnion(
int j) : i(j) {}
Type
Definition tstring.h:96
@ Latin1
Definition tstring.h:100
@ UTF16BE
Definition tstring.h:109
@ UTF16
Definition tstring.h:104
@ UTF8
Definition tstring.h:113
@ UTF16LE
Definition tstring.h:117
A namespace for all TagLib related classes and functions.
Definition apefile.h:41