Пример #1
0
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;

}
Пример #2
0
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;
}