aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2010-09-21 09:43:35 -0700
committerChris Robinson <[email protected]>2010-09-21 09:43:35 -0700
commit2d4453968d67af5cfee81c09adcc7b1ac6bd03f6 (patch)
tree1fb67bd30f2b630d10c397707e863c76f9292082 /OpenAL32
parenta2580a85a82bdfdd25f71e17fe233ec5beaac2e0 (diff)
Implement AL_SOFT_buffer_sub_data using the current AL_EXT_buffer_sub_data spec
This extension can be useful for some applications, but a full EXT version may not be ready for some time. Using the SOFT moniker will help differentiate it in case changes need to be done for the EXT version.
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/alBuffer.c9
-rw-r--r--OpenAL32/alExtension.c2
-rw-r--r--OpenAL32/alSource.c12
3 files changed, 15 insertions, 8 deletions
diff --git a/OpenAL32/alBuffer.c b/OpenAL32/alBuffer.c
index 2ffa13e6..6ea11cdd 100644
--- a/OpenAL32/alBuffer.c
+++ b/OpenAL32/alBuffer.c
@@ -547,11 +547,11 @@ AL_API ALvoid AL_APIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid
}
/*
-* alBufferSubDataEXT(ALuint buffer,ALenum format,ALvoid *data,ALsizei offset,ALsizei length)
+* alBufferSubDataSOFT(ALuint buffer,ALenum format,ALvoid *data,ALsizei offset,ALsizei length)
*
* Fill buffer with audio data
*/
-AL_API ALvoid AL_APIENTRY alBufferSubDataEXT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length)
+AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length)
{
ALCcontext *Context;
ALCdevice *device;
@@ -675,6 +675,11 @@ AL_API ALvoid AL_APIENTRY alBufferSubDataEXT(ALuint buffer,ALenum format,const A
ProcessContext(Context);
}
+AL_API ALvoid AL_APIENTRY alBufferSubDataEXT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length)
+{
+ alBufferSubDataSOFT(buffer, format, data, offset, length);
+}
+
AL_API void AL_APIENTRY alBufferf(ALuint buffer, ALenum eParam, ALfloat flValue)
{
diff --git a/OpenAL32/alExtension.c b/OpenAL32/alExtension.c
index 15b8c0e2..0febf225 100644
--- a/OpenAL32/alExtension.c
+++ b/OpenAL32/alExtension.c
@@ -68,7 +68,9 @@ static const ALenums enumeration[] = {
{ "AL_MAX_DISTANCE", AL_MAX_DISTANCE },
{ "AL_SEC_OFFSET", AL_SEC_OFFSET },
{ "AL_SAMPLE_OFFSET", AL_SAMPLE_OFFSET },
+ { "AL_SAMPLE_RW_OFFSETS_SOFT", AL_SAMPLE_RW_OFFSETS_SOFT },
{ "AL_BYTE_OFFSET", AL_BYTE_OFFSET },
+ { "AL_BYTE_RW_OFFSETS_SOFT", AL_BYTE_RW_OFFSETS_SOFT },
{ "AL_SOURCE_TYPE", AL_SOURCE_TYPE },
{ "AL_STATIC", AL_STATIC },
{ "AL_STREAMING", AL_STREAMING },
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c
index 21a4a6eb..c9051793 100644
--- a/OpenAL32/alSource.c
+++ b/OpenAL32/alSource.c
@@ -1012,8 +1012,8 @@ AL_API ALvoid AL_APIENTRY alGetSourcefv(ALuint source, ALenum eParam, ALfloat *p
alGetSource3f(source, eParam, pflValues+0, pflValues+1, pflValues+2);
break;
- case AL_SAMPLE_RW_OFFSETS_EXT:
- case AL_BYTE_RW_OFFSETS_EXT:
+ case AL_SAMPLE_RW_OFFSETS_SOFT:
+ case AL_BYTE_RW_OFFSETS_SOFT:
updateLen = (ALdouble)pContext->Device->UpdateSize /
pContext->Device->Frequency;
GetSourceOffset(Source, eParam, Offsets, updateLen);
@@ -1248,8 +1248,8 @@ AL_API void AL_APIENTRY alGetSourceiv(ALuint source, ALenum eParam, ALint* plVal
alGetSource3i(source, eParam, plValues+0, plValues+1, plValues+2);
break;
- case AL_SAMPLE_RW_OFFSETS_EXT:
- case AL_BYTE_RW_OFFSETS_EXT:
+ case AL_SAMPLE_RW_OFFSETS_SOFT:
+ case AL_BYTE_RW_OFFSETS_SOFT:
updateLen = (ALdouble)pContext->Device->UpdateSize /
pContext->Device->Frequency;
GetSourceOffset(Source, eParam, Offsets, updateLen);
@@ -1873,12 +1873,12 @@ static ALvoid GetSourceOffset(ALsource *Source, ALenum name, ALdouble *offset, A
offset[1] = (ALdouble)writePos / (Channels * Bytes * BufferFreq);
break;
case AL_SAMPLE_OFFSET:
- case AL_SAMPLE_RW_OFFSETS_EXT:
+ case AL_SAMPLE_RW_OFFSETS_SOFT:
offset[0] = (ALdouble)(readPos / (Channels * Bytes));
offset[1] = (ALdouble)(writePos / (Channels * Bytes));
break;
case AL_BYTE_OFFSET:
- case AL_BYTE_RW_OFFSETS_EXT:
+ case AL_BYTE_RW_OFFSETS_SOFT:
// Take into account the original format of the Buffer
if((OriginalFormat == AL_FORMAT_MONO_IMA4) ||
(OriginalFormat == AL_FORMAT_STEREO_IMA4))