Properly handle stereo wav files; remove data buffer and set buffer to FAILED_BUFFER
This commit is contained in:
parent
97fcf48caa
commit
ff2eb6d2d3
@ -157,14 +157,16 @@ void SGSampleGroup::update( double dt ) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (_smgr->request_buffer(sample) == SGSoundMgr::NO_BUFFER)
|
ALuint buffer = _smgr->request_buffer(sample);
|
||||||
|
if (buffer == SGSoundMgr::FAILED_BUFFER ||
|
||||||
|
buffer == SGSoundMgr::NO_BUFFER)
|
||||||
{
|
{
|
||||||
_smgr->release_source(source);
|
_smgr->release_source(source);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// start playing the sample
|
// start playing the sample
|
||||||
ALuint buffer = sample->get_buffer();
|
buffer = sample->get_buffer();
|
||||||
if ( alIsBuffer(buffer) == AL_TRUE )
|
if ( alIsBuffer(buffer) == AL_TRUE )
|
||||||
{
|
{
|
||||||
alSourcei( source, AL_BUFFER, buffer );
|
alSourcei( source, AL_BUFFER, buffer );
|
||||||
|
@ -481,8 +481,9 @@ unsigned int SGSoundMgr::request_buffer(SGSoundSample *sample)
|
|||||||
if (res == false) return NO_BUFFER;
|
if (res == false) return NO_BUFFER;
|
||||||
} catch (sg_exception& e) {
|
} catch (sg_exception& e) {
|
||||||
SG_LOG(SG_GENERAL, SG_ALERT,
|
SG_LOG(SG_GENERAL, SG_ALERT,
|
||||||
"failed to load sound buffer:" << e.getFormattedMessage());
|
"failed to load sound buffer: " << e.getFormattedMessage());
|
||||||
return NO_BUFFER;
|
sample->set_buffer( SGSoundMgr::FAILED_BUFFER );
|
||||||
|
return FAILED_BUFFER;
|
||||||
}
|
}
|
||||||
|
|
||||||
sample->set_frequency( freq );
|
sample->set_frequency( freq );
|
||||||
@ -618,6 +619,7 @@ bool SGSoundMgr::load(string &samplepath, void **dbuf, int *fmt,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (format == AL_FORMAT_STEREO8 || format == AL_FORMAT_STEREO16) {
|
if (format == AL_FORMAT_STEREO8 || format == AL_FORMAT_STEREO16) {
|
||||||
|
free(data);
|
||||||
throw sg_io_exception("Warning: STEREO files are not supported for 3D audio effects: " + samplepath);
|
throw sg_io_exception("Warning: STEREO files are not supported for 3D audio effects: " + samplepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +200,8 @@ public:
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
NO_SOURCE = (unsigned int)-1,
|
NO_SOURCE = (unsigned int)-1,
|
||||||
NO_BUFFER = (unsigned int)-1
|
NO_BUFFER = (unsigned int)-1,
|
||||||
|
FAILED_BUFFER = (unsigned int)-2
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user