@@ -274,42 +274,25 @@ ALSA_WaitDevice(_THIS)
274274
275275/* !!! FIXME: is there a channel swizzler in alsalib instead? */
276276/*
277- * http ://bugzilla.libsdl.org/show_bug.cgi?id=110
277+ * https ://bugzilla.libsdl.org/show_bug.cgi?id=110
278278 * "For Linux ALSA, this is FL-FR-RL-RR-C-LFE
279279 * and for Windows DirectX [and CoreAudio], this is FL-FR-C-LFE-RL-RR"
280280 */
281- #define SWIZ6 (T , buf , numframes ) \
282- T *ptr = (T *) buf; \
281+ #define SWIZ6 (T ) \
282+ static void swizzle_alsa_channels_6_##T(void *buffer, const Uint32 bufferlen) { \
283+ T *ptr = (T *) buffer; \
283284 Uint32 i; \
284- for (i = 0; i < numframes ; i++, ptr += 6) { \
285+ for (i = 0; i < bufferlen ; i++, ptr += 6) { \
285286 T tmp; \
286287 tmp = ptr[2]; ptr[2] = ptr[4]; ptr[4] = tmp; \
287288 tmp = ptr[3]; ptr[3] = ptr[5]; ptr[5] = tmp; \
288- }
289-
290- static void
291- swizzle_alsa_channels_6_64bit (void * buffer , Uint32 bufferlen )
292- {
293- SWIZ6 (Uint64 , buffer , bufferlen );
294- }
295-
296- static void
297- swizzle_alsa_channels_6_32bit (void * buffer , Uint32 bufferlen )
298- {
299- SWIZ6 (Uint32 , buffer , bufferlen );
289+ } \
300290}
301291
302- static void
303- swizzle_alsa_channels_6_16bit (void * buffer , Uint32 bufferlen )
304- {
305- SWIZ6 (Uint16 , buffer , bufferlen );
306- }
307-
308- static void
309- swizzle_alsa_channels_6_8bit (void * buffer , Uint32 bufferlen )
310- {
311- SWIZ6 (Uint8 , buffer , bufferlen );
312- }
292+ SWIZ6 (Uint64 )
293+ SWIZ6 (Uint32 )
294+ SWIZ6 (Uint16 )
295+ SWIZ6 (Uint8 )
313296
314297#undef SWIZ6
315298
@@ -323,10 +306,10 @@ swizzle_alsa_channels(_THIS, void *buffer, Uint32 bufferlen)
323306{
324307 if (this -> spec .channels == 6 ) {
325308 switch (SDL_AUDIO_BITSIZE (this -> spec .format )) {
326- case 8 : swizzle_alsa_channels_6_8bit (buffer , bufferlen ); break ;
327- case 16 : swizzle_alsa_channels_6_16bit (buffer , bufferlen ); break ;
328- case 32 : swizzle_alsa_channels_6_32bit (buffer , bufferlen ); break ;
329- case 64 : swizzle_alsa_channels_6_64bit (buffer , bufferlen ); break ;
309+ case 8 : swizzle_alsa_channels_6_Uint8 (buffer , bufferlen ); break ;
310+ case 16 : swizzle_alsa_channels_6_Uint16 (buffer , bufferlen ); break ;
311+ case 32 : swizzle_alsa_channels_6_Uint32 (buffer , bufferlen ); break ;
312+ case 64 : swizzle_alsa_channels_6_Uint64 (buffer , bufferlen ); break ;
330313 default : SDL_assert (!"unhandled bitsize" ); break ;
331314 }
332315 }
0 commit comments