Add support for AL_EXT_DOUBLE

This commit is contained in:
Chris Robinson
2010-03-13 21:32:45 -08:00
parent 8c0118e7ae
commit c23e4ed412
4 changed files with 17 additions and 2 deletions
+2 -2
View File
@@ -212,8 +212,8 @@ static ALCenum g_eLastContextError = ALC_NO_ERROR;
// Default context extensions
static const ALchar alExtList[] =
"AL_EXTX_buffer_sub_data AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 "
"AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS "
"AL_EXTX_buffer_sub_data AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE "
"AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS "
"AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXTX_sample_buffer_object "
"AL_EXT_source_distance_model AL_LOKI_quadriphonic";
+6
View File
@@ -110,6 +110,10 @@ static __inline ALuint aluBytesFromFormat(ALenum format)
case AL_FORMAT_71CHN32:
return 4;
case AL_FORMAT_MONO_DOUBLE_EXT:
case AL_FORMAT_STEREO_DOUBLE_EXT:
return 8;
default:
return 0;
}
@@ -121,11 +125,13 @@ static __inline ALuint aluChannelsFromFormat(ALenum format)
case AL_FORMAT_MONO8:
case AL_FORMAT_MONO16:
case AL_FORMAT_MONO_FLOAT32:
case AL_FORMAT_MONO_DOUBLE_EXT:
return 1;
case AL_FORMAT_STEREO8:
case AL_FORMAT_STEREO16:
case AL_FORMAT_STEREO_FLOAT32:
case AL_FORMAT_STEREO_DOUBLE_EXT:
return 2;
case AL_FORMAT_QUAD8_LOKI:
+7
View File
@@ -317,12 +317,14 @@ ALAPI ALvoid ALAPIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid *d
case AL_FORMAT_MONO8:
case AL_FORMAT_MONO16:
case AL_FORMAT_MONO_FLOAT32:
case AL_FORMAT_MONO_DOUBLE_EXT:
LoadData(ALBuf, data, size, freq, format, AL_FORMAT_MONO_FLOAT32);
break;
case AL_FORMAT_STEREO8:
case AL_FORMAT_STEREO16:
case AL_FORMAT_STEREO_FLOAT32:
case AL_FORMAT_STEREO_DOUBLE_EXT:
LoadData(ALBuf, data, size, freq, format, AL_FORMAT_STEREO_FLOAT32);
break;
@@ -1119,6 +1121,11 @@ static void ConvertData(ALfloat *dst, const ALvoid *src, ALint origBytes, ALsize
dst[i] = ((ALfloat*)src)[i];
break;
case 8:
for(i = 0;i < len;i++)
dst[i] = ((ALdouble*)src)[i];
break;
default:
assert(0);
}
+2
View File
@@ -228,9 +228,11 @@ static ALenums enumeration[]={
{ (ALchar *)"AL_FORMAT_MONO8", AL_FORMAT_MONO8 },
{ (ALchar *)"AL_FORMAT_MONO16", AL_FORMAT_MONO16 },
{ (ALchar *)"AL_FORMAT_MONO_FLOAT32", AL_FORMAT_MONO_FLOAT32 },
{ (ALchar *)"AL_FORMAT_MONO_DOUBLE_EXT", AL_FORMAT_MONO_DOUBLE_EXT },
{ (ALchar *)"AL_FORMAT_STEREO8", AL_FORMAT_STEREO8 },
{ (ALchar *)"AL_FORMAT_STEREO16", AL_FORMAT_STEREO16 },
{ (ALchar *)"AL_FORMAT_STEREO_FLOAT32", AL_FORMAT_STEREO_FLOAT32 },
{ (ALchar *)"AL_FORMAT_STEREO_DOUBLE_EXT", AL_FORMAT_STEREO_DOUBLE_EXT },
{ (ALchar *)"AL_FORMAT_MONO_IMA4", AL_FORMAT_MONO_IMA4 },
{ (ALchar *)"AL_FORMAT_STEREO_IMA4", AL_FORMAT_STEREO_IMA4 },
{ (ALchar *)"AL_FORMAT_QUAD8_LOKI", AL_FORMAT_QUAD8_LOKI },