// ALSA module, used by Linux
+#include "quakedef.h"
#include <alsa/asoundlib.h>
-#include "quakedef.h"
#include "snd_main.h"
if (suggested != NULL)
{
- memcpy (suggested, requested, sizeof (suggested));
+ memcpy (suggested, requested, sizeof (*suggested));
if (requested->width < 1)
suggested->width = 1;
written = snd_pcm_writei (pcm_handle, buffer, nbframes);
if (written < 0)
{
- if (developer.integer >= 100)
+ if (developer.integer >= 1000 && vid_activewindow)
Con_Printf ("SndSys_Write: audio write returned %ld (%s)!\n",
written, snd_strerror (written));
written, snd_strerror (written));
}
}
+ if (written > 0)
+ {
+ snd_renderbuffer->startframe += written;
+ expected_delay += written;
+ }
return written;
}
if (nbframes > limit)
{
written = SndSys_Write (&snd_renderbuffer->ring[startoffset * factor], limit);
- if (written < 0)
- return;
- snd_renderbuffer->startframe += written;
- expected_delay += written;
-
- if ((snd_pcm_uframes_t)written != limit)
+ if (written < 0 || (snd_pcm_uframes_t)written != limit)
return;
nbframes -= limit;
written = SndSys_Write (&snd_renderbuffer->ring[startoffset * factor], nbframes);
if (written < 0)
return;
-
- snd_renderbuffer->startframe += written;
- expected_delay += written;
}
err = snd_pcm_delay (pcm_handle, &delay);
if (err != 0)
{
- if (developer.integer >= 100)
+ if (developer.integer >= 1000 && vid_activewindow)
Con_DPrintf ("SndSys_GetSoundTime: can't get playback delay (%s)\n",
snd_strerror (err));