add new endianess macros for FLOAT32

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2079 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
Lennart Poettering 2007-11-24 16:23:19 +00:00
parent ca0c5af323
commit 7a4242522e

View file

@ -47,12 +47,20 @@
#define PA_UINT32_SWAP(x) ( (uint32_t) ( ((uint32_t) x >> 24) | ((uint32_t) x << 24) | (((uint32_t) x & 0xFF00) << 8) | ((((uint32_t) x) >> 8) & 0xFF00) ) ) #define PA_UINT32_SWAP(x) ( (uint32_t) ( ((uint32_t) x >> 24) | ((uint32_t) x << 24) | (((uint32_t) x & 0xFF00) << 8) | ((((uint32_t) x) >> 8) & 0xFF00) ) )
#endif #endif
static inline float PA_FLOAT32_SWAP(float x) {
uint32_t i = *(uint32_t*) &x;
i = PA_UINT32_SWAP(i);
return *(float*) &i;
}
#define PA_MAYBE_INT16_SWAP(c,x) ((c) ? PA_INT32_SWAP(x) : x) #define PA_MAYBE_INT16_SWAP(c,x) ((c) ? PA_INT32_SWAP(x) : x)
#define PA_MAYBE_UINT16_SWAP(c,x) ((c) ? PA_UINT32_SWAP(x) : x) #define PA_MAYBE_UINT16_SWAP(c,x) ((c) ? PA_UINT32_SWAP(x) : x)
#define PA_MAYBE_INT32_SWAP(c,x) ((c) ? PA_INT32_SWAP(x) : x) #define PA_MAYBE_INT32_SWAP(c,x) ((c) ? PA_INT32_SWAP(x) : x)
#define PA_MAYBE_UINT32_SWAP(c,x) ((c) ? PA_UINT32_SWAP(x) : x) #define PA_MAYBE_UINT32_SWAP(c,x) ((c) ? PA_UINT32_SWAP(x) : x)
#define PA_MAYBE_FLOAT32_SWAP(c,x) ((c) ? PA_FLOAT32_SWAP(x) : x)
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
#define PA_INT16_FROM_LE(x) PA_INT16_SWAP(x) #define PA_INT16_FROM_LE(x) PA_INT16_SWAP(x)
#define PA_INT16_FROM_BE(x) ((int16_t)(x)) #define PA_INT16_FROM_BE(x) ((int16_t)(x))
@ -77,6 +85,9 @@
#define PA_UINT32_TO_LE(x) PA_UINT32_SWAP(x) #define PA_UINT32_TO_LE(x) PA_UINT32_SWAP(x)
#define PA_UINT32_TO_BE(x) ((uint32_t)(x)) #define PA_UINT32_TO_BE(x) ((uint32_t)(x))
#define PA_FLOAT32_TO_LE(x) PA_FLOAT32_SWAP(x)
#define PA_FLOAT32_TO_BE(x) ((float) (x))
#else #else
#define PA_INT16_FROM_LE(x) ((int16_t)(x)) #define PA_INT16_FROM_LE(x) ((int16_t)(x))
#define PA_INT16_FROM_BE(x) PA_INT16_SWAP(x) #define PA_INT16_FROM_BE(x) PA_INT16_SWAP(x)
@ -101,6 +112,9 @@
#define PA_UINT32_TO_LE(x) ((uint32_t)(x)) #define PA_UINT32_TO_LE(x) ((uint32_t)(x))
#define PA_UINT32_TO_BE(x) PA_UINT32_SWAP(x) #define PA_UINT32_TO_BE(x) PA_UINT32_SWAP(x)
#define PA_FLOAT32_TO_LE(x) ((float) (x))
#define PA_FLOAT32_TO_BE(x) PA_FLOAT32_SWAP(x)
#endif #endif
#endif #endif