const bool SoundPool::loadSound(const locationStringType path, const sndFileType fileType) { if (loaded(path)) return true; if (fileType == FT_OGG) { auto ptr = std::make_shared<OggVorbisLoader>(OggVorbisLoader()); if (!ptr->loadStaticSound(path)) { ptr.reset(); return false; } this->index.insert(std::pair<locationStringType, std::shared_ptr<SoundLoader>>(path, ptr)); return true; } else if (fileType == FT_WAVE) { auto ptr = std::make_shared<WaveLoader>(WaveLoader()); if (!ptr->loadStaticSound(path)) { ptr.reset(); return false; } this->index.insert(std::pair<locationStringType, std::shared_ptr<SoundLoader>>(path, ptr)); return true; } else if (fileType == FT_UNKNOWN) { LOG->logMsg(LT_WARNING, "Unknown file type, checking WAVE..."); bool ret = false; // Test WAVE ret = loadSound(path, FT_WAVE); if (ret) LOG->logMsg(LT_STATUS, "FileType is WAVE!"); else { LOG->logMsg(LT_WARNING, "Last error can be ignored!"); LOG->logMsg(LT_STATUS, "Checking OGG..."); ret = loadSound(path, FT_OGG); } if (ret) { LOG->logMsg(LT_STATUS, "FileType is OGG!"); } else { LOG->logMsg(LT_ERROR, "Invalid sound file type!"); } return ret; } return false; }
bool Audio::LoadWavFile(char *dir,unsigned int number,LPDIRECTSOUND8 lpDS) { lpDSB = WaveLoader(dir,lpDS); if (!lpDSB) { MessageBox(NULL,"wavファイルが見つかりません","error",MB_OK); return false; } return true; }