mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
Update sfxSndStream.cpp
we always want shorts
This commit is contained in:
parent
e3d977b8e7
commit
0d1dc234fa
1 changed files with 8 additions and 18 deletions
|
|
@ -60,13 +60,11 @@ bool SFXSndStream::_readHeader()
|
||||||
bitsPerSample = 16;
|
bitsPerSample = 16;
|
||||||
break;
|
break;
|
||||||
case SF_FORMAT_VORBIS:
|
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:
|
||||||
case SF_FORMAT_PCM_32:
|
case SF_FORMAT_PCM_32:
|
||||||
case SF_FORMAT_FLOAT:
|
case SF_FORMAT_FLOAT:
|
||||||
bitsPerSample = 32;
|
bitsPerSample = 16;
|
||||||
|
sf_command(sndFile, SFC_SET_SCALE_FLOAT_INT_READ, NULL, SF_TRUE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// missed, set it to 16 anyway.
|
// missed, set it to 16 anyway.
|
||||||
|
|
@ -119,18 +117,14 @@ U32 SFXSndStream::read(U8* buffer, U32 length)
|
||||||
{
|
{
|
||||||
case SF_FORMAT_PCM_S8:
|
case SF_FORMAT_PCM_S8:
|
||||||
case SF_FORMAT_PCM_U8:
|
case SF_FORMAT_PCM_U8:
|
||||||
framesRead = sf_readf_int(sndFile, reinterpret_cast<int*>(buffer), framesToRead);
|
framesRead = sf_readf_int(sndFile, (int*)buffer, framesToRead);
|
||||||
break;
|
break;
|
||||||
case SF_FORMAT_PCM_16:
|
case SF_FORMAT_PCM_16:
|
||||||
framesRead = sf_readf_short(sndFile, reinterpret_cast<short*>(buffer), framesToRead);
|
|
||||||
break;
|
|
||||||
case SF_FORMAT_VORBIS:
|
case SF_FORMAT_VORBIS:
|
||||||
framesRead = sf_readf_short(sndFile, reinterpret_cast<short*>(buffer), framesToRead);
|
|
||||||
break;
|
|
||||||
case SF_FORMAT_PCM_24:
|
case SF_FORMAT_PCM_24:
|
||||||
case SF_FORMAT_PCM_32:
|
case SF_FORMAT_PCM_32:
|
||||||
case SF_FORMAT_FLOAT:
|
case SF_FORMAT_FLOAT:
|
||||||
framesRead = sf_readf_float(sndFile, reinterpret_cast<float*>(buffer), framesToRead);
|
framesRead = sf_readf_short(sndFile, (short*)buffer, framesToRead);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Con::errorf("SFXSndStream - read: Unsupported format.");
|
Con::errorf("SFXSndStream - read: Unsupported format.");
|
||||||
|
|
@ -142,15 +136,11 @@ U32 SFXSndStream::read(U8* buffer, U32 length)
|
||||||
Con::errorf("SFXSndStream - read: %s", sf_strerror(sndFile));
|
Con::errorf("SFXSndStream - read: %s", sf_strerror(sndFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure we are more than 0 position.
|
// (convert to frames) - number of frames available < MAX_BUFFER? reset
|
||||||
if (getPosition() > 0)
|
if (((getPosition() / mFormat.getBytesPerSample()) - sfinfo.frames) < MAX_BUFFER)
|
||||||
{
|
{
|
||||||
// (convert to frames) - number of frames available < MAX_BUFFER?
|
// reset stream
|
||||||
if (((getPosition() / mFormat.getBytesPerSample()) - sfinfo.frames) < MAX_BUFFER)
|
setPosition(0);
|
||||||
{
|
|
||||||
// reset stream
|
|
||||||
setPosition(0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue