Fixed: #1032 Crash in OpenAL driver when a music is playing and user returns to selection menu
This commit is contained in:
parent
ba4ee26f7c
commit
0c5d50299b
1 changed files with 7 additions and 7 deletions
|
@ -22,7 +22,8 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace NLMISC;
|
using namespace NLMISC;
|
||||||
|
|
||||||
namespace NLSOUND {
|
namespace NLSOUND
|
||||||
|
{
|
||||||
|
|
||||||
IMusicBuffer::IMusicBuffer() : _InternalStream(NULL)
|
IMusicBuffer::IMusicBuffer() : _InternalStream(NULL)
|
||||||
{
|
{
|
||||||
|
@ -45,8 +46,7 @@ IMusicBuffer *IMusicBuffer::createMusicBuffer(const std::string &filepath, bool
|
||||||
string type = CFile::getExtension(filepath);
|
string type = CFile::getExtension(filepath);
|
||||||
|
|
||||||
CIFile *ifile = new CIFile();
|
CIFile *ifile = new CIFile();
|
||||||
ifile->setCacheFileOnOpen(!async);
|
ifile->setAsyncLoading(async);
|
||||||
ifile->allowBNPCacheFileOnOpen(!async);
|
|
||||||
ifile->open(lookup);
|
ifile->open(lookup);
|
||||||
|
|
||||||
IMusicBuffer *mb = createMusicBuffer(type, ifile, loop);
|
IMusicBuffer *mb = createMusicBuffer(type, ifile, loop);
|
||||||
|
@ -80,17 +80,17 @@ bool IMusicBuffer::getInfo(const std::string &filepath, std::string &artist, std
|
||||||
{
|
{
|
||||||
string lookup = CPath::lookup(filepath, false);
|
string lookup = CPath::lookup(filepath, false);
|
||||||
if (lookup.empty())
|
if (lookup.empty())
|
||||||
{
|
{
|
||||||
nlwarning("Music file %s does not exist!", filepath.c_str());
|
nlwarning("Music file %s does not exist!", filepath.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
string type = CFile::getExtension(filepath);
|
string type = CFile::getExtension(filepath);
|
||||||
string type_lower = toLower(type);
|
string type_lower = toLower(type);
|
||||||
|
|
||||||
if (type_lower == "ogg")
|
if (type_lower == "ogg")
|
||||||
{
|
{
|
||||||
CIFile ifile;
|
CIFile ifile;
|
||||||
ifile.setCacheFileOnOpen(false);
|
ifile.setCacheFileOnOpen(false);
|
||||||
ifile.allowBNPCacheFileOnOpen(false);
|
ifile.allowBNPCacheFileOnOpen(false);
|
||||||
ifile.open(lookup);
|
ifile.open(lookup);
|
||||||
return CMusicBufferVorbis::getInfo(&ifile, artist, title);
|
return CMusicBufferVorbis::getInfo(&ifile, artist, title);
|
||||||
|
|
Loading…
Reference in a new issue