diff options
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alDatabuffer.h | 33 | ||||
-rw-r--r-- | OpenAL32/Include/alMain.h | 65 | ||||
-rw-r--r-- | OpenAL32/alBuffer.c | 76 | ||||
-rw-r--r-- | OpenAL32/alDatabuffer.c | 648 | ||||
-rw-r--r-- | OpenAL32/alExtension.c | 1 | ||||
-rw-r--r-- | OpenAL32/alState.c | 29 |
6 files changed, 3 insertions, 849 deletions
diff --git a/OpenAL32/Include/alDatabuffer.h b/OpenAL32/Include/alDatabuffer.h deleted file mode 100644 index 22185528..00000000 --- a/OpenAL32/Include/alDatabuffer.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _AL_DATABUFFER_H_ -#define _AL_DATABUFFER_H_ - -#include "AL/al.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define UNMAPPED 0 -#define MAPPED 1 - -typedef struct ALdatabuffer -{ - ALubyte *data; - ALintptrEXT size; - - ALenum state; - ALenum usage; - - /* Index to self */ - ALuint databuffer; - - struct ALdatabuffer *next; -} ALdatabuffer; - -ALvoid ReleaseALDatabuffers(ALCdevice *device); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index b304d63d..c77fa6eb 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -93,62 +93,6 @@ AL_API ALboolean AL_APIENTRY alIsBufferFormatSupportedSOFT(ALenum format); #endif #endif -#ifndef AL_EXT_sample_buffer_object -#define AL_EXT_sample_buffer_object 1 -typedef ptrdiff_t ALintptrEXT; -typedef ptrdiff_t ALsizeiptrEXT; -#define AL_SAMPLE_SOURCE_EXT 0x1040 -#define AL_SAMPLE_SINK_EXT 0x1041 -#define AL_READ_ONLY_EXT 0x1042 -#define AL_WRITE_ONLY_EXT 0x1043 -#define AL_READ_WRITE_EXT 0x1044 -#define AL_STREAM_WRITE_EXT 0x1045 -#define AL_STREAM_READ_EXT 0x1046 -#define AL_STREAM_COPY_EXT 0x1047 -#define AL_STATIC_WRITE_EXT 0x1048 -#define AL_STATIC_READ_EXT 0x1049 -#define AL_STATIC_COPY_EXT 0x104A -#define AL_DYNAMIC_WRITE_EXT 0x104B -#define AL_DYNAMIC_READ_EXT 0x104C -#define AL_DYNAMIC_COPY_EXT 0x104D -typedef ALvoid (AL_APIENTRY*PFNALGENDATABUFFERSEXTPROC)(ALsizei n,ALuint *puiBuffers); -typedef ALvoid (AL_APIENTRY*PFNALDELETEDATABUFFERSEXTPROC)(ALsizei n, const ALuint *puiBuffers); -typedef ALboolean (AL_APIENTRY*PFNALISDATABUFFEREXTPROC)(ALuint uiBuffer); -typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERDATAEXTPROC)(ALuint buffer,const ALvoid *data,ALsizeiptrEXT size,ALenum usage); -typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERSUBDATAEXTPROC)(ALuint buffer, ALintptrEXT start, ALsizeiptrEXT length, const ALvoid *); -typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERSUBDATAEXTPROC)(ALuint buffer, ALintptrEXT start, ALsizeiptrEXT length, ALvoid *); -typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERFEXTPROC)(ALuint buffer, ALenum eParam, ALfloat flValue); -typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERFVEXTPROC)(ALuint buffer, ALenum eParam, const ALfloat* flValues); -typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERIEXTPROC)(ALuint buffer, ALenum eParam, ALint lValue); -typedef ALvoid (AL_APIENTRY*PFNALDATABUFFERIVEXTPROC)(ALuint buffer, ALenum eParam, const ALint* plValues); -typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERFEXTPROC)(ALuint buffer, ALenum eParam, ALfloat *pflValue); -typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERFVEXTPROC)(ALuint buffer, ALenum eParam, ALfloat* pflValues); -typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERIEXTPROC)(ALuint buffer, ALenum eParam, ALint *plValue); -typedef ALvoid (AL_APIENTRY*PFNALGETDATABUFFERIVEXTPROC)(ALuint buffer, ALenum eParam, ALint* plValues); -typedef ALvoid (AL_APIENTRY*PFNALSELECTDATABUFFEREXTPROC)(ALenum target, ALuint uiBuffer); -typedef ALvoid* (AL_APIENTRY*PFNALMAPDATABUFFEREXTPROC)(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, ALenum access); -typedef ALvoid (AL_APIENTRY*PFNALUNMAPDATABUFFEREXTPROC)(ALuint uiBuffer); -#ifdef AL_ALEXT_PROTOTYPES -AL_API ALvoid AL_APIENTRY alGenDatabuffersEXT(ALsizei n,ALuint *puiBuffers); -AL_API ALvoid AL_APIENTRY alDeleteDatabuffersEXT(ALsizei n, const ALuint *puiBuffers); -AL_API ALboolean AL_APIENTRY alIsDatabufferEXT(ALuint uiBuffer); -AL_API ALvoid AL_APIENTRY alDatabufferDataEXT(ALuint buffer,const ALvoid *data,ALsizeiptrEXT size,ALenum usage); -AL_API ALvoid AL_APIENTRY alDatabufferSubDataEXT(ALuint buffer, ALintptrEXT start, ALsizeiptrEXT length, const ALvoid *data); -AL_API ALvoid AL_APIENTRY alGetDatabufferSubDataEXT(ALuint buffer, ALintptrEXT start, ALsizeiptrEXT length, ALvoid *data); -AL_API ALvoid AL_APIENTRY alDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat flValue); -AL_API ALvoid AL_APIENTRY alDatabufferfvEXT(ALuint buffer, ALenum eParam, const ALfloat* flValues); -AL_API ALvoid AL_APIENTRY alDatabufferiEXT(ALuint buffer, ALenum eParam, ALint lValue); -AL_API ALvoid AL_APIENTRY alDatabufferivEXT(ALuint buffer, ALenum eParam, const ALint* plValues); -AL_API ALvoid AL_APIENTRY alGetDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat *pflValue); -AL_API ALvoid AL_APIENTRY alGetDatabufferfvEXT(ALuint buffer, ALenum eParam, ALfloat* pflValues); -AL_API ALvoid AL_APIENTRY alGetDatabufferiEXT(ALuint buffer, ALenum eParam, ALint *plValue); -AL_API ALvoid AL_APIENTRY alGetDatabufferivEXT(ALuint buffer, ALenum eParam, ALint* plValues); -AL_API ALvoid AL_APIENTRY alSelectDatabufferEXT(ALenum target, ALuint uiBuffer); -AL_API ALvoid* AL_APIENTRY alMapDatabufferEXT(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, ALenum access); -AL_API ALvoid AL_APIENTRY alUnmapDatabufferEXT(ALuint uiBuffer); -#endif -#endif - #if defined(HAVE_STDINT_H) #include <stdint.h> @@ -165,6 +109,9 @@ typedef long long ALint64; typedef unsigned long long ALuint64; #endif +typedef ptrdiff_t ALintptrEXT; +typedef ptrdiff_t ALsizeiptrEXT; + #ifdef HAVE_GCC_FORMAT #define PRINTF_STYLE(x, y) __attribute__((format(printf, (x), (y)))) #else @@ -428,9 +375,6 @@ struct ALCdevice_struct // Map of Filters for this device UIntMap FilterMap; - // Map of Databuffers for this device - UIntMap DatabufferMap; - // Stereo-to-binaural filter struct bs2b *Bs2b; ALCint Bs2bLevel; @@ -490,9 +434,6 @@ struct ALCcontext_struct UIntMap SourceMap; UIntMap EffectSlotMap; - struct ALdatabuffer *SampleSource; - struct ALdatabuffer *SampleSink; - ALenum LastError; ALboolean Suspended; diff --git a/OpenAL32/alBuffer.c b/OpenAL32/alBuffer.c index 4801799e..36ec3aeb 100644 --- a/OpenAL32/alBuffer.c +++ b/OpenAL32/alBuffer.c @@ -30,7 +30,6 @@ #include "AL/alc.h" #include "alError.h" #include "alBuffer.h" -#include "alDatabuffer.h" #include "alThunk.h" @@ -292,21 +291,6 @@ AL_API ALvoid AL_APIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid Context = GetContextSuspended(); if(!Context) return; - if(Context->SampleSource) - { - ALintptrEXT offset; - - if(Context->SampleSource->state == MAPPED) - { - alSetError(Context, AL_INVALID_OPERATION); - ProcessContext(Context); - return; - } - - offset = (const ALubyte*)data - (ALubyte*)NULL; - data = Context->SampleSource->data + offset; - } - device = Context->Device; if((ALBuf=LookupBuffer(device->BufferMap, buffer)) == NULL) alSetError(Context, AL_INVALID_NAME); @@ -409,21 +393,6 @@ AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const Context = GetContextSuspended(); if(!Context) return; - if(Context->SampleSource) - { - ALintptrEXT offset; - - if(Context->SampleSource->state == MAPPED) - { - alSetError(Context, AL_INVALID_OPERATION); - ProcessContext(Context); - return; - } - - offset = (const ALubyte*)data - (ALubyte*)NULL; - data = Context->SampleSource->data + offset; - } - device = Context->Device; if((ALBuf=LookupBuffer(device->BufferMap, buffer)) == NULL) alSetError(Context, AL_INVALID_NAME); @@ -478,21 +447,6 @@ AL_API void AL_APIENTRY alBufferSamplesSOFT(ALuint buffer, Context = GetContextSuspended(); if(!Context) return; - if(Context->SampleSource) - { - ALintptrEXT offset; - - if(Context->SampleSource->state == MAPPED) - { - alSetError(Context, AL_INVALID_OPERATION); - ProcessContext(Context); - return; - } - - offset = (const ALubyte*)data - (ALubyte*)NULL; - data = Context->SampleSource->data + offset; - } - device = Context->Device; if((ALBuf=LookupBuffer(device->BufferMap, buffer)) == NULL) alSetError(Context, AL_INVALID_NAME); @@ -531,21 +485,6 @@ AL_API void AL_APIENTRY alBufferSubSamplesSOFT(ALuint buffer, Context = GetContextSuspended(); if(!Context) return; - if(Context->SampleSource) - { - ALintptrEXT offset; - - if(Context->SampleSource->state == MAPPED) - { - alSetError(Context, AL_INVALID_OPERATION); - ProcessContext(Context); - return; - } - - offset = (const ALubyte*)data - (ALubyte*)NULL; - data = Context->SampleSource->data + offset; - } - device = Context->Device; if((ALBuf=LookupBuffer(device->BufferMap, buffer)) == NULL) alSetError(Context, AL_INVALID_NAME); @@ -588,21 +527,6 @@ AL_API void AL_APIENTRY alGetBufferSamplesSOFT(ALuint buffer, Context = GetContextSuspended(); if(!Context) return; - if(Context->SampleSink) - { - ALintptrEXT offset; - - if(Context->SampleSink->state == MAPPED) - { - alSetError(Context, AL_INVALID_OPERATION); - ProcessContext(Context); - return; - } - - offset = (const ALubyte*)data - (ALubyte*)NULL; - data = Context->SampleSink->data + offset; - } - device = Context->Device; if((ALBuf=LookupBuffer(device->BufferMap, buffer)) == NULL) alSetError(Context, AL_INVALID_NAME); diff --git a/OpenAL32/alDatabuffer.c b/OpenAL32/alDatabuffer.c deleted file mode 100644 index cbe65a09..00000000 --- a/OpenAL32/alDatabuffer.c +++ /dev/null @@ -1,648 +0,0 @@ -/** - * OpenAL cross platform audio library - * Copyright (C) 1999-2007 by authors. - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * Or go to http://www.gnu.org/copyleft/lgpl.html - */ - -#include "config.h" - -#include <stdlib.h> -#include <stdio.h> -#include <assert.h> -#include "alMain.h" -#include "AL/al.h" -#include "AL/alc.h" -#include "AL/alext.h" -#include "alError.h" -#include "alDatabuffer.h" -#include "alThunk.h" - - -#define LookupDatabuffer(m, k) ((ALdatabuffer*)LookupUIntMapKey(&(m), (k))) - -/* -* alGenDatabuffersEXT(ALsizei n, ALuint *puiBuffers) -* -* Generates n AL Databuffers, and stores the Databuffers Names in the array pointed to by puiBuffers -*/ -AL_API ALvoid AL_APIENTRY alGenDatabuffersEXT(ALsizei n,ALuint *puiBuffers) -{ - ALCcontext *Context; - ALsizei i=0; - - Context = GetContextSuspended(); - if(!Context) return; - - /* Check that we are actually generation some Databuffers */ - if(n < 0 || IsBadWritePtr((void*)puiBuffers, n * sizeof(ALuint))) - alSetError(Context, AL_INVALID_VALUE); - else - { - ALCdevice *device = Context->Device; - ALenum err; - - /* Create all the new Databuffers */ - while(i < n) - { - ALdatabuffer *buffer = calloc(1, sizeof(ALdatabuffer)); - if(!buffer) - { - alSetError(Context, AL_OUT_OF_MEMORY); - alDeleteDatabuffersEXT(i, puiBuffers); - break; - } - - buffer->databuffer = ALTHUNK_ADDENTRY(buffer); - err = InsertUIntMapEntry(&device->DatabufferMap, - buffer->databuffer, buffer); - if(err != AL_NO_ERROR) - { - ALTHUNK_REMOVEENTRY(buffer->databuffer); - memset(buffer, 0, sizeof(ALdatabuffer)); - free(buffer); - - alSetError(Context, err); - alDeleteDatabuffersEXT(i, puiBuffers); - break; - } - puiBuffers[i++] = buffer->databuffer; - - buffer->state = UNMAPPED; - } - } - - ProcessContext(Context); -} - -/* -* alDatabeleteBuffersEXT(ALsizei n, ALuint *puiBuffers) -* -* Deletes the n AL Databuffers pointed to by puiBuffers -*/ -AL_API ALvoid AL_APIENTRY alDeleteDatabuffersEXT(ALsizei n, const ALuint *buffers) -{ - ALCcontext *Context; - ALCdevice *device; - ALdatabuffer *ALBuf; - ALboolean Failed; - ALsizei i; - - Context = GetContextSuspended(); - if(!Context) return; - - /* Check we are actually Deleting some Databuffers */ - Failed = AL_TRUE; - device = Context->Device; - if(n < 0) - alSetError(Context, AL_INVALID_VALUE); - else - { - Failed = AL_FALSE; - /* Check that all the databuffers are valid and can actually be - * deleted */ - for(i = 0;i < n;i++) - { - if(!buffers[i]) - continue; - - /* Check for valid Buffer ID */ - if((ALBuf=LookupDatabuffer(device->DatabufferMap, buffers[i])) == NULL) - { - /* Invalid Databuffer */ - alSetError(Context, AL_INVALID_NAME); - Failed = AL_TRUE; - break; - } - else if(ALBuf->state != UNMAPPED) - { - /* Databuffer still in use, cannot be deleted */ - alSetError(Context, AL_INVALID_OPERATION); - Failed = AL_TRUE; - break; - } - } - } - - /* If all the Databuffers were valid (and unmapped), then we can delete them */ - if(!Failed) - { - for(i = 0;i < n;i++) - { - if((ALBuf=LookupDatabuffer(device->DatabufferMap, buffers[i])) == NULL) - continue; - - if(ALBuf == Context->SampleSource) - Context->SampleSource = NULL; - if(ALBuf == Context->SampleSink) - Context->SampleSink = NULL; - - // Release the memory used to store audio data - free(ALBuf->data); - - // Release buffer structure - RemoveUIntMapKey(&device->DatabufferMap, ALBuf->databuffer); - ALTHUNK_REMOVEENTRY(ALBuf->databuffer); - - memset(ALBuf, 0, sizeof(ALdatabuffer)); - free(ALBuf); - } - } - - ProcessContext(Context); -} - -/* -* alIsDatabufferEXT(ALuint uiBuffer) -* -* Checks if ulBuffer is a valid Databuffer Name -*/ -AL_API ALboolean AL_APIENTRY alIsDatabufferEXT(ALuint buffer) -{ - ALCcontext *Context; - ALboolean result; - ALCdevice *device; - - Context = GetContextSuspended(); - if(!Context) return AL_FALSE; - - device = Context->Device; - result = ((!buffer || LookupDatabuffer(device->DatabufferMap, buffer)) ? - AL_TRUE : AL_FALSE); - - ProcessContext(Context); - - return result; -} - -/* -* alDatabufferDataEXT(ALuint buffer,ALvoid *data,ALsizei size,ALenum usage) -* -* Fill databuffer with data -*/ -AL_API ALvoid AL_APIENTRY alDatabufferDataEXT(ALuint buffer,const ALvoid *data,ALsizeiptrEXT size,ALenum usage) -{ - ALCcontext *Context; - ALdatabuffer *ALBuf; - ALCdevice *Device; - ALvoid *temp; - - Context = GetContextSuspended(); - if(!Context) return; - - Device = Context->Device; - if((ALBuf=LookupDatabuffer(Device->DatabufferMap, buffer)) != NULL) - { - if(ALBuf->state == UNMAPPED) - { - if(usage == AL_STREAM_WRITE_EXT || usage == AL_STREAM_READ_EXT || - usage == AL_STREAM_COPY_EXT || usage == AL_STATIC_WRITE_EXT || - usage == AL_STATIC_READ_EXT || usage == AL_STATIC_COPY_EXT || - usage == AL_DYNAMIC_WRITE_EXT || usage == AL_DYNAMIC_READ_EXT || - usage == AL_DYNAMIC_COPY_EXT) - { - if(size >= 0) - { - /* (Re)allocate data */ - temp = realloc(ALBuf->data, size); - if(temp) - { - ALBuf->data = temp; - ALBuf->size = size; - ALBuf->usage = usage; - if(data) - memcpy(ALBuf->data, data, size); - } - else - alSetError(Context, AL_OUT_OF_MEMORY); - } - else - alSetError(Context, AL_INVALID_VALUE); - } - else - alSetError(Context, AL_INVALID_ENUM); - } - else - alSetError(Context, AL_INVALID_OPERATION); - } - else - alSetError(Context, AL_INVALID_NAME); - - ProcessContext(Context); -} - -AL_API ALvoid AL_APIENTRY alDatabufferSubDataEXT(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, const ALvoid *data) -{ - ALCcontext *pContext; - ALdatabuffer *pBuffer; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if((pBuffer=LookupDatabuffer(Device->DatabufferMap, uiBuffer)) != NULL) - { - if(start >= 0 && length >= 0 && start+length <= pBuffer->size) - { - if(pBuffer->state == UNMAPPED) - memcpy(pBuffer->data+start, data, length); - else - alSetError(pContext, AL_INVALID_OPERATION); - } - else - alSetError(pContext, AL_INVALID_VALUE); - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - -AL_API ALvoid AL_APIENTRY alGetDatabufferSubDataEXT(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, ALvoid *data) -{ - ALCcontext *pContext; - ALdatabuffer *pBuffer; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if((pBuffer=LookupDatabuffer(Device->DatabufferMap, uiBuffer)) != NULL) - { - if(start >= 0 && length >= 0 && start+length <= pBuffer->size) - { - if(pBuffer->state == UNMAPPED) - memcpy(data, pBuffer->data+start, length); - else - alSetError(pContext, AL_INVALID_OPERATION); - } - else - alSetError(pContext, AL_INVALID_VALUE); - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - - -AL_API ALvoid AL_APIENTRY alDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat flValue) -{ - ALCcontext *pContext; - ALCdevice *Device; - - (void)flValue; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if(LookupDatabuffer(Device->DatabufferMap, buffer) != NULL) - { - switch(eParam) - { - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - -AL_API ALvoid AL_APIENTRY alDatabufferfvEXT(ALuint buffer, ALenum eParam, const ALfloat* flValues) -{ - ALCcontext *pContext; - ALCdevice *Device; - - (void)flValues; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if(LookupDatabuffer(Device->DatabufferMap, buffer) != NULL) - { - switch(eParam) - { - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - - -AL_API ALvoid AL_APIENTRY alDatabufferiEXT(ALuint buffer, ALenum eParam, ALint lValue) -{ - ALCcontext *pContext; - ALCdevice *Device; - - (void)lValue; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if(LookupDatabuffer(Device->DatabufferMap, buffer) != NULL) - { - switch(eParam) - { - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - -AL_API ALvoid AL_APIENTRY alDatabufferivEXT(ALuint buffer, ALenum eParam, const ALint* plValues) -{ - ALCcontext *pContext; - ALCdevice *Device; - - (void)plValues; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if(LookupDatabuffer(Device->DatabufferMap, buffer) != NULL) - { - switch(eParam) - { - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - - -AL_API ALvoid AL_APIENTRY alGetDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat *pflValue) -{ - ALCcontext *pContext; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - if(pflValue) - { - Device = pContext->Device; - if(LookupDatabuffer(Device->DatabufferMap, buffer) != NULL) - { - switch(eParam) - { - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - } - else - alSetError(pContext, AL_INVALID_VALUE); - - ProcessContext(pContext); -} - -AL_API ALvoid AL_APIENTRY alGetDatabufferfvEXT(ALuint buffer, ALenum eParam, ALfloat* pflValues) -{ - ALCcontext *pContext; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - if(pflValues) - { - Device = pContext->Device; - if(LookupDatabuffer(Device->DatabufferMap, buffer) != NULL) - { - switch(eParam) - { - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - } - else - alSetError(pContext, AL_INVALID_VALUE); - - ProcessContext(pContext); -} - -AL_API ALvoid AL_APIENTRY alGetDatabufferiEXT(ALuint buffer, ALenum eParam, ALint *plValue) -{ - ALCcontext *pContext; - ALdatabuffer *pBuffer; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - if(plValue) - { - Device = pContext->Device; - if((pBuffer=LookupDatabuffer(Device->DatabufferMap, buffer)) != NULL) - { - switch(eParam) - { - case AL_SIZE: - *plValue = (ALint)pBuffer->size; - break; - - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - } - else - alSetError(pContext, AL_INVALID_VALUE); - - ProcessContext(pContext); -} - -AL_API ALvoid AL_APIENTRY alGetDatabufferivEXT(ALuint buffer, ALenum eParam, ALint* plValues) -{ - ALCcontext *pContext; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - if(plValues) - { - Device = pContext->Device; - if(LookupDatabuffer(Device->DatabufferMap, buffer) != NULL) - { - switch (eParam) - { - case AL_SIZE: - alGetDatabufferiEXT(buffer, eParam, plValues); - break; - - default: - alSetError(pContext, AL_INVALID_ENUM); - break; - } - } - else - alSetError(pContext, AL_INVALID_NAME); - } - else - alSetError(pContext, AL_INVALID_VALUE); - - ProcessContext(pContext); -} - - -AL_API ALvoid AL_APIENTRY alSelectDatabufferEXT(ALenum target, ALuint uiBuffer) -{ - ALCcontext *pContext; - ALdatabuffer *pBuffer = NULL; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if(uiBuffer == 0 || - (pBuffer=LookupDatabuffer(Device->DatabufferMap, uiBuffer)) != NULL) - { - if(target == AL_SAMPLE_SOURCE_EXT) - pContext->SampleSource = pBuffer; - else if(target == AL_SAMPLE_SINK_EXT) - pContext->SampleSink = pBuffer; - else - alSetError(pContext, AL_INVALID_VALUE); - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - - -AL_API ALvoid* AL_APIENTRY alMapDatabufferEXT(ALuint uiBuffer, ALintptrEXT start, ALsizeiptrEXT length, ALenum access) -{ - ALCcontext *pContext; - ALdatabuffer *pBuffer; - ALvoid *ret = NULL; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return NULL; - - Device = pContext->Device; - if((pBuffer=LookupDatabuffer(Device->DatabufferMap, uiBuffer)) != NULL) - { - if(start >= 0 && length >= 0 && start+length <= pBuffer->size) - { - if(access == AL_READ_ONLY_EXT || access == AL_WRITE_ONLY_EXT || - access == AL_READ_WRITE_EXT) - { - if(pBuffer->state == UNMAPPED) - { - ret = pBuffer->data + start; - pBuffer->state = MAPPED; - } - else - alSetError(pContext, AL_INVALID_OPERATION); - } - else - alSetError(pContext, AL_INVALID_ENUM); - } - else - alSetError(pContext, AL_INVALID_VALUE); - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); - - return ret; -} - -AL_API ALvoid AL_APIENTRY alUnmapDatabufferEXT(ALuint uiBuffer) -{ - ALCcontext *pContext; - ALdatabuffer *pBuffer; - ALCdevice *Device; - - pContext = GetContextSuspended(); - if(!pContext) return; - - Device = pContext->Device; - if((pBuffer=LookupDatabuffer(Device->DatabufferMap, uiBuffer)) != NULL) - { - if(pBuffer->state == MAPPED) - pBuffer->state = UNMAPPED; - else - alSetError(pContext, AL_INVALID_OPERATION); - } - else - alSetError(pContext, AL_INVALID_NAME); - - ProcessContext(pContext); -} - - -/* -* ReleaseALDatabuffers() -* -* INTERNAL FN : Called by DLLMain on exit to destroy any buffers that still exist -*/ -ALvoid ReleaseALDatabuffers(ALCdevice *device) -{ - ALsizei i; - for(i = 0;i < device->DatabufferMap.size;i++) - { - ALdatabuffer *temp = device->DatabufferMap.array[i].value; - device->DatabufferMap.array[i].value = NULL; - - // Release buffer data - free(temp->data); - - // Release Buffer structure - ALTHUNK_REMOVEENTRY(temp->databuffer); - memset(temp, 0, sizeof(ALdatabuffer)); - free(temp); - } -} diff --git a/OpenAL32/alExtension.c b/OpenAL32/alExtension.c index ff21645a..eb0f46a8 100644 --- a/OpenAL32/alExtension.c +++ b/OpenAL32/alExtension.c @@ -29,7 +29,6 @@ #include "alFilter.h" #include "alEffect.h" #include "alAuxEffectSlot.h" -#include "alDatabuffer.h" #include "alSource.h" #include "alBuffer.h" #include "AL/al.h" diff --git a/OpenAL32/alState.c b/OpenAL32/alState.c index 953b1a17..374b7794 100644 --- a/OpenAL32/alState.c +++ b/OpenAL32/alState.c @@ -27,7 +27,6 @@ #include "alError.h" #include "alSource.h" #include "alState.h" -#include "alDatabuffer.h" static const ALchar alVendor[] = "OpenAL Community"; static const ALchar alVersion[] = "1.1 ALSOFT "ALSOFT_VERSION; @@ -269,20 +268,6 @@ AL_API ALint AL_APIENTRY alGetInteger(ALenum pname) value = (ALint)Context->flSpeedOfSound; break; - case AL_SAMPLE_SOURCE_EXT: - if(Context->SampleSource) - value = (ALint)Context->SampleSource->databuffer; - else - value = 0; - break; - - case AL_SAMPLE_SINK_EXT: - if(Context->SampleSink) - value = (ALint)Context->SampleSink->databuffer; - else - value = 0; - break; - default: alSetError(Context, AL_INVALID_ENUM); break; @@ -443,20 +428,6 @@ AL_API ALvoid AL_APIENTRY alGetIntegerv(ALenum pname,ALint *data) *data = (ALint)Context->flSpeedOfSound; break; - case AL_SAMPLE_SOURCE_EXT: - if(Context->SampleSource) - *data = (ALint)Context->SampleSource->databuffer; - else - *data = 0; - break; - - case AL_SAMPLE_SINK_EXT: - if(Context->SampleSink) - *data = (ALint)Context->SampleSink->databuffer; - else - *data = 0; - break; - default: alSetError(Context, AL_INVALID_ENUM); break; |