mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 07:34:45 +00:00
32 bit float test
32 bit floating point sounds
This commit is contained in:
parent
ebdc408385
commit
c28cedc2d8
2 changed files with 15 additions and 8 deletions
|
|
@ -59,15 +59,12 @@ bool SFXSndStream::_readHeader()
|
||||||
case SF_FORMAT_PCM_16:
|
case SF_FORMAT_PCM_16:
|
||||||
bitsPerSample = 16;
|
bitsPerSample = 16;
|
||||||
break;
|
break;
|
||||||
case SF_FORMAT_VORBIS:
|
|
||||||
bitsPerSample = 16;
|
|
||||||
sf_command(sndFile, SFC_SET_SCALE_FLOAT_INT_READ, NULL, SF_TRUE);
|
|
||||||
break;
|
|
||||||
case SF_FORMAT_PCM_24:
|
case SF_FORMAT_PCM_24:
|
||||||
bitsPerSample = 24;
|
bitsPerSample = 24;
|
||||||
break;
|
break;
|
||||||
case SF_FORMAT_PCM_32:
|
case SF_FORMAT_PCM_32:
|
||||||
case SF_FORMAT_FLOAT:
|
case SF_FORMAT_FLOAT:
|
||||||
|
case SF_FORMAT_VORBIS:
|
||||||
bitsPerSample = 32;
|
bitsPerSample = 32;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -124,7 +121,6 @@ U32 SFXSndStream::read(U8* buffer, U32 length)
|
||||||
framesRead = sf_readf_int(sndFile, reinterpret_cast<int*>(buffer), framesToRead);
|
framesRead = sf_readf_int(sndFile, reinterpret_cast<int*>(buffer), framesToRead);
|
||||||
break;
|
break;
|
||||||
case SF_FORMAT_PCM_16:
|
case SF_FORMAT_PCM_16:
|
||||||
case SF_FORMAT_VORBIS:
|
|
||||||
framesRead = sf_readf_short(sndFile, reinterpret_cast<short*>(buffer), framesToRead);
|
framesRead = sf_readf_short(sndFile, reinterpret_cast<short*>(buffer), framesToRead);
|
||||||
break;
|
break;
|
||||||
case SF_FORMAT_PCM_24:
|
case SF_FORMAT_PCM_24:
|
||||||
|
|
@ -132,6 +128,7 @@ U32 SFXSndStream::read(U8* buffer, U32 length)
|
||||||
break;
|
break;
|
||||||
case SF_FORMAT_PCM_32:
|
case SF_FORMAT_PCM_32:
|
||||||
case SF_FORMAT_FLOAT:
|
case SF_FORMAT_FLOAT:
|
||||||
|
case SF_FORMAT_VORBIS:
|
||||||
framesRead = sf_readf_float(sndFile, reinterpret_cast<float*>(buffer), framesToRead);
|
framesRead = sf_readf_float(sndFile, reinterpret_cast<float*>(buffer), framesToRead);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -84,14 +84,24 @@ class SFXALBuffer : public SFXBuffer
|
||||||
return AL_FORMAT_STEREO8;
|
return AL_FORMAT_STEREO8;
|
||||||
else if( bps == 32 )
|
else if( bps == 32 )
|
||||||
return AL_FORMAT_STEREO16;
|
return AL_FORMAT_STEREO16;
|
||||||
|
else if (bps == 64)
|
||||||
|
{
|
||||||
|
if (alIsExtensionPresent("AL_EXT_FLOAT32"))
|
||||||
|
return AL_FORMAT_STEREO_FLOAT32;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if( format.getChannels() == 1 )
|
else if( format.getChannels() == 1 )
|
||||||
{
|
{
|
||||||
const U32 bps = format.getBitsPerSample();
|
const U32 bps = format.getBitsPerSample();
|
||||||
if( bps == 8 )
|
if (bps == 8)
|
||||||
return AL_FORMAT_MONO8;
|
return AL_FORMAT_MONO8;
|
||||||
else if( bps == 16 )
|
else if (bps == 16)
|
||||||
return AL_FORMAT_MONO16;
|
return AL_FORMAT_MONO16;
|
||||||
|
else if (bps == 32)
|
||||||
|
{
|
||||||
|
if(alIsExtensionPresent("AL_EXT_FLOAT32"))
|
||||||
|
return AL_FORMAT_MONO_FLOAT32;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -116,4 +126,4 @@ class SFXALBuffer : public SFXBuffer
|
||||||
virtual ~SFXALBuffer();
|
virtual ~SFXALBuffer();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _SFXALBUFFER_H_
|
#endif // _SFXALBUFFER_H_
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue