result Wav::testAndLoadFile(MemoryFile *aReader) { delete[] mData; mData = 0; mSampleCount = 0; mChannels = 1; int tag = aReader->read32(); if (tag == MAKEDWORD('O','g','g','S')) { return loadogg(aReader); } else if (tag == MAKEDWORD('R','I','F','F')) { return loadwav(aReader); } else if (tag == MAKEDWORD('f', 'L', 'a', 'C')) { return loadflac(aReader); } else if (loadmp3(aReader) == SO_NO_ERROR) { return SO_NO_ERROR; } return FILE_LOAD_FAILED; }
int Wav::testAndLoadFile(DataReader *aReader) { delete[] mData; mData = 0; mSampleCount = 0; int tag = aReader->read32(); if (tag == MAKEDWORD('O','g','g','S')) { aReader->seek(0); int e = 0; stb_vorbis *v = 0; if (aReader->isMemoryFile()) { v = stb_vorbis_open_memory(aReader->currentData(), aReader->dataLength(), &e, 0); } else { v = stb_vorbis_open_file(aReader->filePtr(), 0, &e, 0); } if (0 != v) { return loadogg(v); } return FILE_LOAD_FAILED; } else if (tag == MAKEDWORD('R','I','F','F')) { return loadwav(aReader); } return FILE_LOAD_FAILED; }
result Wav::testAndLoadFile(File *aReader) { delete[] mData; mData = 0; mSampleCount = 0; int tag = aReader->read32(); if (tag == MAKEDWORD('O','g','g','S')) { return loadogg(aReader); } else if (tag == MAKEDWORD('R','I','F','F')) { return loadwav(aReader); } return FILE_LOAD_FAILED; }
result WavStream::parse(File *aFile) { int tag = aFile->read32(); int res = SO_NO_ERROR; if (tag == MAKEDWORD('O', 'g', 'g', 'S')) { res = loadogg(aFile); } else if (tag == MAKEDWORD('R', 'I', 'F', 'F')) { res = loadwav(aFile); } else { res = FILE_LOAD_FAILED; } return res; }
void WavStream::load(const char *aFilename) { delete[] mFilename; mFilename = 0; mSampleCount = 0; FILE * fp = fopen(aFilename, "rb"); if (!fp) return; int tag = read32(fp); if (tag == MAKEDWORD('O','g','g','S')) { loadogg(fp); } if (tag == MAKEDWORD('R','I','F','F')) { loadwav(fp); } int len = strlen(aFilename); mFilename = new char[len+1]; memcpy(mFilename, aFilename, len); mFilename[len] = 0; fclose(fp); }