29 #ifndef JUCE_BYTEORDER_H_INCLUDED 30 #define JUCE_BYTEORDER_H_INCLUDED 90 static int littleEndian24Bit (
const void* bytes)
noexcept;
93 static int bigEndian24Bit (
const void* bytes)
noexcept;
96 static void littleEndian24BitToChars (
int value,
void* destBytes)
noexcept;
99 static void bigEndian24BitToChars (
int value,
void* destBytes)
noexcept;
113 #if JUCE_USE_MSVC_INTRINSICS && ! defined (__INTEL_COMPILER) 114 #pragma intrinsic (_byteswap_ulong) 119 #if JUCE_USE_MSVC_INTRINSICSxxx // agh - the MS compiler has an internal error when you try to use this intrinsic! 120 return static_cast<uint16> (_byteswap_ushort (n));
122 return static_cast<uint16> ((n << 8) | (n >> 8));
128 #if JUCE_MAC || JUCE_IOS 129 return OSSwapInt32 (n);
130 #elif JUCE_GCC && JUCE_INTEL && ! JUCE_NO_INLINE_ASM 131 asm(
"bswap %%eax" :
"=a"(n) :
"a"(n));
133 #elif JUCE_USE_MSVC_INTRINSICS 134 return _byteswap_ulong (n);
135 #elif JUCE_MSVC && ! JUCE_NO_INLINE_ASM 145 return (n << 24) | (n >> 24) | ((n & 0xff00) << 8) | ((n & 0xff0000) >> 8);
151 #if JUCE_MAC || JUCE_IOS 152 return OSSwapInt64 (value);
153 #elif JUCE_USE_MSVC_INTRINSICS 154 return _byteswap_uint64 (value);
160 #if JUCE_LITTLE_ENDIAN 190 inline int ByteOrder::littleEndian24Bit (
const void*
const bytes)
noexcept {
return (((
int) static_cast<const int8*> (bytes)[2]) << 16) | (((
int) static_cast<const uint8*> (bytes)[1]) << 8) | ((
int) static_cast<const uint8*> (bytes)[0]); }
191 inline int ByteOrder::bigEndian24Bit (
const void*
const bytes)
noexcept {
return (((
int) static_cast<const int8*> (bytes)[0]) << 16) | (((
int) static_cast<const uint8*> (bytes)[1]) << 8) | ((
int) static_cast<const uint8*> (bytes)[2]); }
196 #endif // JUCE_BYTEORDER_H_INCLUDED static int bigEndian24Bit(const void *bytes) noexcept
Definition: juce_ByteOrder.h:191
static int littleEndian24Bit(const void *bytes) noexcept
Definition: juce_ByteOrder.h:190
static bool isBigEndian() noexcept
Definition: juce_ByteOrder.h:187
#define noexcept
Definition: juce_CompilerSupport.h:141
unsigned short uint16
Definition: juce_MathsFunctions.h:47
static uint16 swap(uint16 value) noexcept
Definition: juce_ByteOrder.h:117
static uint64 bigEndianInt64(const void *bytes) noexcept
Definition: juce_ByteOrder.h:185
Definition: juce_ByteOrder.h:37
TOUCHINPUT int
Definition: juce_win32_Windowing.cpp:123
static uint16 littleEndianShort(const void *bytes) noexcept
Definition: juce_ByteOrder.h:183
#define JUCE_API
Definition: juce_StandardHeader.h:139
static uint64 littleEndianInt64(const void *bytes) noexcept
Definition: juce_ByteOrder.h:182
static uint16 swapIfBigEndian(uint16 value) noexcept
Definition: juce_ByteOrder.h:175
unsigned long long uint64
Definition: juce_MathsFunctions.h:62
unsigned int uint32
Definition: juce_MathsFunctions.h:51
static uint32 bigEndianInt(const void *bytes) noexcept
Definition: juce_ByteOrder.h:184
#define JUCE_DELETED_FUNCTION
Definition: juce_CompilerSupport.h:133
static uint32 littleEndianInt(const void *bytes) noexcept
Definition: juce_ByteOrder.h:181
static uint16 bigEndianShort(const void *bytes) noexcept
Definition: juce_ByteOrder.h:186
static void littleEndian24BitToChars(int value, void *destBytes) noexcept
Definition: juce_ByteOrder.h:192
static void bigEndian24BitToChars(int value, void *destBytes) noexcept
Definition: juce_ByteOrder.h:193
static uint16 swapIfLittleEndian(uint16 value) noexcept
Definition: juce_ByteOrder.h:178
unsigned char uint8
Definition: juce_MathsFunctions.h:43