Fixed volume issue with WAV, and issue with truncated OGGs.

This commit is contained in:
rude
2009-10-26 22:13:02 +01:00
parent 0b6d86e782
commit 0e671c34d5
3 changed files with 6 additions and 9 deletions
+4 -8
View File
@@ -36,16 +36,10 @@ namespace sound
SoundData::SoundData(Decoder * decoder)
: data(0), size(0), sampleRate(Decoder::DEFAULT_SAMPLE_RATE), bits(0), channels(0)
{
int decoded = decoder->decode();
// Decode all data here.
while(!decoder->isFinished())
while(decoded > 0)
{
int decoded = decoder->decode();
// If this returns 0, then we're probably at EOF.
if(decoded <= 0)
break;
// Expand or allocate buffer. Note that realloc may move
// memory to other locations.
data = (char*)realloc(data, size + decoder->getSize());
@@ -55,6 +49,8 @@ namespace sound
// Keep this up to date.
size += decoded;
decoded = decoder->decode();
}
channels = decoder->getChannels();
@@ -45,6 +45,8 @@ namespace lullaby
// Load the module.
plug = ModPlug_Load(data->getData(), data->getSize());
ModPlug_SetMasterVolume(plug, 512);
if(plug == 0)
throw love::Exception("Could not load file with ModPlug.");
}
@@ -272,7 +272,6 @@ namespace lullaby
int VorbisDecoder::getBits() const
{
//return vorbisInfo->bitrate_nominal / 10000;
return 16;
}