소스 검색

Added support for ALSA dmix audio output (thanks @sylware!)

Fixes https://github.com/libsdl-org/SDL/issues/8577
Sam Lantinga 1 년 전
부모
커밋
76e7bc4c04
2개의 변경된 파일1180개의 추가작업 그리고 392개의 파일을 삭제
  1. 1174 391
      src/audio/alsa/SDL_alsa_audio.c
  2. 6 1
      src/audio/alsa/SDL_alsa_audio.h

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1174 - 391
src/audio/alsa/SDL_alsa_audio.c


+ 6 - 1
src/audio/alsa/SDL_alsa_audio.h

@@ -27,16 +27,21 @@
 
 #include "../SDL_sysaudio.h"
 
+#define SDL_AUDIO_ALSA__CHMAP_CHANS_N_MAX    8
+#define SDL_AUDIO_ALSA__SDL_CHMAPS_N         9 // from 0 channels to 8 channels
 struct SDL_PrivateAudioData
 {
     // The audio device handle
-    snd_pcm_t *pcm_handle;
+    snd_pcm_t *pcm;
 
     // Raw mixing buffer
     Uint8 *mixbuf;
 
     // swizzle function
     void (*swizzle_func)(SDL_AudioDevice *_this, void *buffer, Uint32 bufferlen);
+    // Up to a channel map of 8 channels, will define the sample indexes into the alsa frame
+    // from a sdl sample index.
+    int swizzle_map[SDL_AUDIO_ALSA__CHMAP_CHANS_N_MAX];
 };
 
 #endif // SDL_ALSA_audio_h_

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.