snd_renderbuffer = Snd_CreateRingBuffer(requested, 0, NULL);
expected_delay = 0;
alsasoundtime = 0;
- alsaspeakerlayout = true;
+ if (snd_channellayout.integer == SND_CHANNELLAYOUT_AUTO)
+ Cvar_SetValueQuick (&snd_channellayout, SND_CHANNELLAYOUT_ALSA);
return true;
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;
}