| Index | Submit class | Submit snippet | Submission feed | List |

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:


Comments

Name

Website

Do you hate spammers? (Answer "Yes")