26#ifndef WATER_BYTEORDER_H_INCLUDED
27#define WATER_BYTEORDER_H_INCLUDED
31#if defined(CARLA_OS_BSD)
32# include <sys/endian.h>
33#elif defined(CARLA_OS_LINUX)
35#elif defined(CARLA_OS_MAC)
36# include <libkern/OSByteOrder.h>
153 #if defined(CARLA_OS_BSD)
155 #elif defined(CARLA_OS_LINUX)
158 return static_cast<uint16> ((
n << 8) | (
n >> 8));
164 #if defined(CARLA_OS_BSD)
166 #elif defined(CARLA_OS_LINUX)
168 #elif defined(CARLA_OS_MAC)
169 return OSSwapInt32 (
n);
170 #elif defined(__i386__) || defined(__x86_64__)
171 asm(
"bswap %%eax" :
"=a"(
n) :
"a"(
n));
174 return (
n << 24) | (
n >> 24) | ((
n & 0xff00) << 8) | ((
n & 0xff0000) >> 8);
180 #if defined(CARLA_OS_BSD)
181 return bswap64 (
value);
182 #elif defined(CARLA_OS_LINUX)
183 return bswap_64 (
value);
184 #elif defined(CARLA_OS_MAC)
185 return OSSwapInt64 (
value);
191#if defined(__BIG_ENDIAN__) || (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
245inline 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]); }
246inline 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]); }
#define CARLA_DECLARE_NON_COPYABLE(ClassName)
Definition CarlaDefines.h:242
#define noexcept
Definition DistrhoDefines.h:72
int64_t int64
Definition basics.h:91
int16_t int16
Definition basics.h:87
int32_t int32
Definition basics.h:89
uint64_t uint64
Definition basics.h:92
uint16_t uint16
Definition basics.h:88
uint32_t uint32
Definition basics.h:90
ByteOrder() WATER_DELETED_FUNCTION
static void littleEndian24BitToChars(int value, void *destBytes) noexcept
Definition ByteOrder.h:247
static uint32 littleEndianInt(const void *bytes) noexcept
Definition ByteOrder.h:236
static uint64 bigEndianInt64(const void *bytes) noexcept
Definition ByteOrder.h:240
static uint64 littleEndianInt64(const void *bytes) noexcept
Definition ByteOrder.h:237
static uint16 swapIfLittleEndian(uint16 value) noexcept
Definition ByteOrder.h:227
static void bigEndian24BitToChars(int value, void *destBytes) noexcept
Definition ByteOrder.h:248
static bool isBigEndian() noexcept
Definition ByteOrder.h:242
static uint16 bigEndianShort(const void *bytes) noexcept
Definition ByteOrder.h:241
ByteOrder() WATER_DELETED_FUNCTION
static uint32 bigEndianInt(const void *bytes) noexcept
Definition ByteOrder.h:239
static uint16 littleEndianShort(const void *bytes) noexcept
Definition ByteOrder.h:238
static uint16 swap(uint16 value) noexcept
Definition ByteOrder.h:151
static int littleEndian24Bit(const void *bytes) noexcept
Definition ByteOrder.h:245
static int bigEndian24Bit(const void *bytes) noexcept
Definition ByteOrder.h:246
static uint16 swapIfBigEndian(uint16 value) noexcept
Definition ByteOrder.h:218
unsigned v[N_MAX]
Definition inflate.c:1584
static PuglViewHint int value
Definition pugl.h:1708
#define WATER_DELETED_FUNCTION
Definition AudioSampleBuffer.h:33
signed short int16
Definition water.h:92
unsigned int uint32
Definition water.h:98
unsigned long long uint64
Definition water.h:102
unsigned short uint16
Definition water.h:94
long long int64
Definition water.h:100
unsigned char uint8
Definition water.h:90
signed int int32
Definition water.h:96
signed char int8
Definition water.h:88
int n
Definition crypt.c:458
typedef int(UZ_EXP MsgFn)()