Skip to content

Commit c45facf

Browse files
committed
alsa: clean up macro salsa a little.
1 parent f5e636a commit c45facf

File tree

1 file changed

+14
-31
lines changed

1 file changed

+14
-31
lines changed

src/audio/alsa/SDL_alsa_audio.c

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)