aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/solaris.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/solaris.c')
-rw-r--r--Alc/solaris.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Alc/solaris.c b/Alc/solaris.c
index 9ac00d8d..8ea190e6 100644
--- a/Alc/solaris.c
+++ b/Alc/solaris.c
@@ -54,15 +54,19 @@ static ALuint SolarisProc(ALvoid *ptr)
ALCdevice *pDevice = (ALCdevice*)ptr;
solaris_data *data = (solaris_data*)pDevice->ExtraData;
int remaining = 0;
+ ALint frameSize;
int wrote;
+ frameSize = aluChannelsFromFormat(pDevice->Format) *
+ aluBytesFromFormat(pDevice->Format);
+
while(!data->killNow && !pDevice->Connected)
{
ALint len = data->data_size;
ALubyte *WritePtr = data->mix_data;
SuspendContext(NULL);
- aluMixData(pDevice->Context, WritePtr, len, pDevice->Format);
+ aluMixData(pDevice->Context, WritePtr, len/frameSize, pDevice->Format);
ProcessContext(NULL);
while(len > 0 && !data->killNow)