diff options
author | Chris Robinson <[email protected]> | 2009-10-25 08:31:28 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2009-10-25 08:31:28 -0700 |
commit | a3fcd67a82c486e5409de5f6045f3147fb72179f (patch) | |
tree | de8b35550818eb616f495952bc347ac2a5dfef2d | |
parent | fe3a43e2d4bbc20cea32a2046404d8eabe9240ee (diff) |
Remove some unneeded buffer fields, make padding a constant amount
-rw-r--r-- | Alc/ALu.c | 8 | ||||
-rw-r--r-- | OpenAL32/Include/alBuffer.h | 11 | ||||
-rw-r--r-- | OpenAL32/alBuffer.c | 18 | ||||
-rw-r--r-- | OpenAL32/alSource.c | 8 |
4 files changed, 17 insertions, 28 deletions
@@ -957,7 +957,8 @@ another_source: ALbuffer *NextBuf = BufferListItem->next->buffer; if(NextBuf && NextBuf->data) { - ALuint ulExtraSamples = min(NextBuf->size, (ALint)(ALBuffer->padding*Channels*Bytes)); + ALint ulExtraSamples = BUFFER_PADDING*Channels*Bytes; + ulExtraSamples = min(NextBuf->size, ulExtraSamples); memcpy(&Data[DataSize*Channels], NextBuf->data, ulExtraSamples); } } @@ -966,12 +967,13 @@ another_source: ALbuffer *NextBuf = ALSource->queue->buffer; if(NextBuf && NextBuf->data) { - ALuint ulExtraSamples = min(NextBuf->size, (ALint)(ALBuffer->padding*Channels*Bytes)); + ALint ulExtraSamples = BUFFER_PADDING*Channels*Bytes; + ulExtraSamples = min(NextBuf->size, ulExtraSamples); memcpy(&Data[DataSize*Channels], NextBuf->data, ulExtraSamples); } } else - memset(&Data[DataSize*Channels], 0, (ALBuffer->padding*Channels*Bytes)); + memset(&Data[DataSize*Channels], 0, (BUFFER_PADDING*Channels*Bytes)); /* Compute the gain steps for each output channel */ for(i = 0;i < OUTPUTCHANNELS;i++) diff --git a/OpenAL32/Include/alBuffer.h b/OpenAL32/Include/alBuffer.h index b7d36642..c35caf3d 100644 --- a/OpenAL32/Include/alBuffer.h +++ b/OpenAL32/Include/alBuffer.h @@ -7,21 +7,16 @@ extern "C" { #endif -#define UNUSED 0 -#define PENDING 1 -#define PROCESSED 2 +#define BUFFER_PADDING 2 typedef struct ALbuffer { - ALenum format; - ALenum eOriginalFormat; - ALshort *data; ALsizei size; + ALenum format; + ALenum eOriginalFormat; ALsizei frequency; - ALsizei padding; - ALenum state; ALuint refcount; // Number of sources using this buffer (deletion can only occur when this is 0) diff --git a/OpenAL32/alBuffer.c b/OpenAL32/alBuffer.c index 2ebf42b0..66d6cee4 100644 --- a/OpenAL32/alBuffer.c +++ b/OpenAL32/alBuffer.c @@ -108,7 +108,6 @@ ALAPI ALvoid ALAPIENTRY alGenBuffers(ALsizei n,ALuint *puiBuffers) puiBuffers[i] = (ALuint)ALTHUNK_ADDENTRY(*list); (*list)->buffer = puiBuffers[i]; - (*list)->state = UNUSED; device->BufferCount++; i++; @@ -263,7 +262,6 @@ ALAPI ALboolean ALAPIENTRY alIsBuffer(ALuint uiBuffer) ALAPI ALvoid ALAPIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid *data,ALsizei size,ALsizei freq) { ALCcontext *Context; - ALsizei padding = 2; ALbuffer *ALBuf; ALvoid *temp; @@ -326,19 +324,18 @@ ALAPI ALvoid ALAPIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid *d size *= 2; // Samples are converted to 16 bit here - temp = realloc(ALBuf->data, (padding*NewChannels + size) * sizeof(ALshort)); + temp = realloc(ALBuf->data, (BUFFER_PADDING*NewChannels + size) * sizeof(ALshort)); if(temp) { ALBuf->data = temp; ConvertDataRear(ALBuf->data, data, OrigBytes, size); - memset(&(ALBuf->data[size]), 0, padding*NewChannels*sizeof(ALshort)); + memset(&(ALBuf->data[size]), 0, BUFFER_PADDING*NewChannels*sizeof(ALshort)); ALBuf->format = NewFormat; ALBuf->eOriginalFormat = format; ALBuf->size = size*sizeof(ALshort); ALBuf->frequency = freq; - ALBuf->padding = padding; } else alSetError(AL_OUT_OF_MEMORY); @@ -387,19 +384,18 @@ ALAPI ALvoid ALAPIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid *d size *= 65; // Allocate extra padding samples - temp = realloc(ALBuf->data, (padding*OrigChans + size)*sizeof(ALshort)); + temp = realloc(ALBuf->data, (BUFFER_PADDING*OrigChans + size)*sizeof(ALshort)); if(temp) { ALBuf->data = temp; ConvertDataIMA4(ALBuf->data, data, OrigChans, size/65); - memset(&(ALBuf->data[size]), 0, padding*sizeof(ALshort)*OrigChans); + memset(&(ALBuf->data[size]), 0, BUFFER_PADDING*sizeof(ALshort)*OrigChans); ALBuf->format = ((OrigChans==1) ? AL_FORMAT_MONO16 : AL_FORMAT_STEREO16); ALBuf->eOriginalFormat = format; ALBuf->size = size*sizeof(ALshort); ALBuf->frequency = freq; - ALBuf->padding = padding; } else alSetError(AL_OUT_OF_MEMORY); @@ -942,7 +938,6 @@ static void LoadData(ALbuffer *ALBuf, const ALubyte *data, ALsizei size, ALuint ALuint NewChannels = aluChannelsFromFormat(NewFormat); ALuint OrigBytes = aluBytesFromFormat(OrigFormat); ALuint OrigChannels = aluChannelsFromFormat(OrigFormat); - ALsizei padding = 2; ALvoid *temp; assert(aluBytesFromFormat(NewFormat) == 2); @@ -956,19 +951,18 @@ static void LoadData(ALbuffer *ALBuf, const ALubyte *data, ALsizei size, ALuint // Samples are converted to 16 bit here size /= OrigBytes; - temp = realloc(ALBuf->data, (padding*NewChannels + size) * sizeof(ALshort)); + temp = realloc(ALBuf->data, (BUFFER_PADDING*NewChannels + size) * sizeof(ALshort)); if(temp) { ALBuf->data = temp; ConvertData(ALBuf->data, data, OrigBytes, size); - memset(&(ALBuf->data[size]), 0, padding*NewChannels*sizeof(ALshort)); + memset(&(ALBuf->data[size]), 0, BUFFER_PADDING*NewChannels*sizeof(ALshort)); ALBuf->format = NewFormat; ALBuf->eOriginalFormat = OrigFormat; ALBuf->size = size*sizeof(ALshort); ALBuf->frequency = freq; - ALBuf->padding = padding; } else alSetError(AL_OUT_OF_MEMORY); diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c index b606d9fd..2e725081 100644 --- a/OpenAL32/alSource.c +++ b/OpenAL32/alSource.c @@ -530,7 +530,7 @@ ALAPI ALvoid ALAPIENTRY alSourcei(ALuint source,ALenum eParam,ALint lValue) // Add the buffer to the queue (as long as it is NOT the NULL buffer) if(lValue != 0) { - buffer = (ALbuffer*)(ALTHUNK_LOOKUPENTRY(lValue)); + buffer = (ALbuffer*)ALTHUNK_LOOKUPENTRY(lValue); // Source is now in STATIC mode pSource->lSourceType = AL_STATIC; @@ -1586,8 +1586,7 @@ ALAPI ALvoid ALAPIENTRY alSourceQueueBuffers( ALuint source, ALsizei n, const AL // Change Source Type ALSource->lSourceType = AL_STREAMING; - if(buffers[0]) - buffer = (ALbuffer*)ALTHUNK_LOOKUPENTRY(buffers[0]); + buffer = (ALbuffer*)ALTHUNK_LOOKUPENTRY(buffers[0]); // All buffers are valid - so add them to the list ALBufferListStart = malloc(sizeof(ALbufferlistitem)); @@ -1601,8 +1600,7 @@ ALAPI ALvoid ALAPIENTRY alSourceQueueBuffers( ALuint source, ALsizei n, const AL for(i = 1; i < n; i++) { - if(buffers[i]) - buffer = (ALbuffer*)ALTHUNK_LOOKUPENTRY(buffers[i]); + buffer = (ALbuffer*)ALTHUNK_LOOKUPENTRY(buffers[i]); ALBufferList->next = malloc(sizeof(ALbufferlistitem)); ALBufferList->next->buffer = buffer; |