Add support for AL_EXT_DOUBLE
This commit is contained in:
@@ -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";
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user