Snippet #30
Language: C, Author: Zachary Schneirov
License: Public domain
Work around SoundManager buffer-level byte-swapping on Intel hardware. CFSwapInt32 compiles down to a single bswap32 instruction. Call like so:
FloatArrayByteSwapOnIntel(mixBuffer, bufferSamples);
/*Add me to a header file*/ #if __LITTLE_ENDIAN__ #define FloatArrayByteSwapOnIntel(__buffer, __floatCount) \ unsigned int __floatArrayIndex, *__floatsAsInts = (unsigned int*)__buffer; \ for (__floatArrayIndex = 0; __floatArrayIndex < __floatCount; __floatArrayIndex++) \ __floatsAsInts[__floatArrayIndex] = CFSwapInt32(__floatsAsInts[__floatArrayIndex]); #else #define FloatArrayByteSwapOnIntel(buffer, size); #endif
Compatible with:
- Mac OS X 10.2
- Mac OS X 10.3
- Mac OS X 10.4 PPC
- Mac OS X 10.4 Intel
- Mac OS X 10.5 PPC
- Mac OS X 10.5 Intel
Comments
Comment feed
