diff options
Diffstat (limited to 'games-fps/quake2-icculus/files/quake2-icculus-0.16.1-alsa.patch')
-rw-r--r-- | games-fps/quake2-icculus/files/quake2-icculus-0.16.1-alsa.patch | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/games-fps/quake2-icculus/files/quake2-icculus-0.16.1-alsa.patch b/games-fps/quake2-icculus/files/quake2-icculus-0.16.1-alsa.patch deleted file mode 100644 index 185359373c4b..000000000000 --- a/games-fps/quake2-icculus/files/quake2-icculus-0.16.1-alsa.patch +++ /dev/null @@ -1,172 +0,0 @@ ---- src/linux/snd_alsa.c.old -+++ src/linux/snd_alsa.c -@@ -22,13 +22,22 @@ - $Id: quake2-icculus-0.16.1-alsa.patch,v 1.2 2015/03/27 06:40:34 mr_bones_ Exp $ - */ - --#define BUFFER_SIZE 4096 -+// quake2-r0.16.1/src/linux/snd_alsa.c 2010-08-29 09:58:50 -+// Alsa Redux Patch -+#define BUFFER_SIZE 16384 - - #include <alsa/asoundlib.h> - - #include "../client/client.h" - #include "../client/snd_loc.h" - -+#define AFSize 4 -+static int snd_inited=0; -+static snd_pcm_t *playback_handle; -+static int AlsaFrames; -+static int AlsaPos; -+ -+/* - #define snd_buf BUFFER_SIZE - - static int snd_inited; -@@ -43,17 +52,58 @@ - cvar_t *snddevice; - - static int tryrates[] = { 44100, 22051, 11025, 8000 }; -- -+*/ - qboolean SNDDMA_Init (void) - { -- int i; -- int err; -- int buffersize; -- int framesize; -- int format; -+ int confirm; -+ int latency; -+ Com_Printf("Setting up ALSA driver .....\n"); - - if (snd_inited) { return 1; } -- -+ int s_khz=(Cvar_Get("s_khz", "22", CVAR_ARCHIVE))->value; -+ if (s_khz <22 ){ -+ Com_Printf("Low Performance 11KHz.\n"); -+ Cvar_Set("s_mixahead","0.2"); -+ dma.speed=11025; -+ AlsaFrames=2048; -+ latency=200000; -+ }else{ -+ Com_Printf("High Quality 48KHz.\n"); -+ Cvar_Set("s_mixahead","0.1"); -+ dma.speed=48000; -+ AlsaFrames=4800; -+ latency=110000;} -+ -+ dma.channels = 2; -+ dma.samplebits = 16; -+ AlsaPos = 0; -+ playback_handle = NULL; -+ confirm = -+snd_pcm_open(&playback_handle,"default",SND_PCM_STREAM_PLAYBACK,SND_PCM_NONBLOCK); -+ if (confirm < 0) { -+ Com_Printf("ALSA sound error: cannot open device \n"); -+ return 0;} -+ confirm = snd_pcm_set_params(playback_handle, -+ SND_PCM_FORMAT_S16_LE, -+ SND_PCM_ACCESS_RW_INTERLEAVED, -+ dma.channels, -+ dma.speed, -+ 1,//soft resample -+ latency); -+ if (confirm < 0){ -+ Com_Printf("Alsa error: %s\n", snd_strerror(confirm)); -+ return 0;} -+ confirm = snd_pcm_prepare(playback_handle); -+ if (confirm < 0) { -+ Com_Printf("...failed.\n"); -+ return 0;} -+ -+ int rambuffer = (BUFFER_SIZE+AlsaFrames)*AFSize; -+ dma.buffer=malloc(rambuffer); -+ dma.samplepos = 0; -+ dma.samples = BUFFER_SIZE*dma.channels; -+ dma.submission_chunk = 16; -+ /* - sndbits = Cvar_Get("sndbits", "16", CVAR_ARCHIVE); - sndspeed = Cvar_Get("sndspeed", "0", CVAR_ARCHIVE); - sndchannels = Cvar_Get("sndchannels", "2", CVAR_ARCHIVE); -@@ -159,7 +209,6 @@ - return 0; - } - -- /* - buffer_size = snd_pcm_hw_params_get_buffer_size(hw_params); - frame_size = (snd_pcm_format_physical_width(format)*dma.channels)/8; - -@@ -172,7 +221,6 @@ - } - - snd_buf = buffer_size*frame_size; -- */ - - //snd_buf = BUFFER_SIZE; - -@@ -183,7 +231,7 @@ - dma.samples = snd_buf / (dma.samplebits/8); - dma.submission_chunk = 1; - dma.buffer = (char *)buffer; -- -+ */ - snd_inited = 1; - return 1; - } -@@ -191,11 +239,25 @@ - int - SNDDMA_GetDMAPos (void) - { -- if(snd_inited) -- return dma.samplepos; -- else -- Com_Printf ("Sound not inizialized\n"); -- return 0; -+ int timerpos; -+ int send; -+ int taken; -+ timerpos = snd_pcm_avail(playback_handle); -+ if (timerpos<0){// likely buffer underrun. -+ timerpos = snd_pcm_prepare(playback_handle); -+ timerpos=0;} -+ -+ send=AlsaFrames-timerpos; -+ if ( (send+AlsaPos)>BUFFER_SIZE ) -+ { memcpy (dma.buffer+BUFFER_SIZE*AFSize, -+ dma.buffer,AlsaFrames*AFSize);} -+ taken = snd_pcm_writei(playback_handle, dma.buffer+AlsaPos*AFSize, send); -+ if (taken<0) {taken=0;} -+ -+ AlsaPos+=taken; -+ if (BUFFER_SIZE<=AlsaPos){AlsaPos -= BUFFER_SIZE;} -+ return AlsaPos*dma.channels; -+ - } - - void -@@ -205,8 +267,8 @@ - snd_pcm_drop(playback_handle); - snd_pcm_close(playback_handle); - snd_inited = 0; -+ free(dma.buffer); - } -- free(dma.buffer); - dma.buffer = NULL; - } - -@@ -217,13 +279,6 @@ - void - SNDDMA_Submit (void) - { -- int written; -- -- if ((written = snd_pcm_writei(playback_handle, dma.buffer, snd_buf)) < 0) { -- snd_pcm_prepare(playback_handle); -- Com_Printf("alsa: buffer underrun\n"); -- } -- dma.samplepos += written/(dma.samplebits/8); - } - - |