result WavStream::load(const char *aFilename) { delete[] mFilename; delete mMemFile; mMemFile = 0; mFilename = 0; mSampleCount = 0; DiskFile fp; int res = fp.open(aFilename); if (res != SO_NO_ERROR) return res; int len = (int)strlen(aFilename); mFilename = new char[len+1]; memcpy(mFilename, aFilename, len); mFilename[len] = 0; res = parse(&fp); if (res != SO_NO_ERROR) { delete[] mFilename; mFilename = 0; return res; } return 0; }
Image::Image(const char* filename) : format(RGBA32) { printf("Image %s\n", filename); DiskFile file; file.open(filename, DiskFile::ReadMode); uint size = file.getSize(); int comp; data = stbi_load_from_memory((u8*)file.readAll(), size, &width, &height, &comp, 4); }
result Sfxr::loadParams(const char *aFilename) { DiskFile df; int res = df.open(aFilename); if (res != SO_NO_ERROR) return res; return loadParamsFile(&df); }
result WavStream::loadToMem(const char *aFilename) { DiskFile df; int res = df.open(aFilename); if (res == SO_NO_ERROR) { res = loadFileToMem(&df); } return res; }
result Wav::load(const char *aFilename) { DiskFile dr; int res = dr.open(aFilename); if (res != SO_NO_ERROR) { return res; } return testAndLoadFile(&dr); }
WavStreamInstance::WavStreamInstance(WavStream *aParent) { mParent = aParent; mOffset = 0; mOgg = 0; mFile = 0; if (aParent->mMemFile) { MemoryFile *mf = new MemoryFile(); mFile = mf; mf->openMem(aParent->mMemFile->getMemPtr(), aParent->mMemFile->length(), false, false); } else if (aParent->mFilename) { DiskFile *df = new DiskFile; mFile = df; df->open(aParent->mFilename); } else if (aParent->mStreamFile) { mFile = aParent->mStreamFile; mFile->seek(0); // stb_vorbis assumes file offset to be at start of ogg } else { return; } if (mFile) { if (mParent->mOgg) { int e; mOgg = stb_vorbis_open_file((Soloud_Filehack *)mFile, 0, &e, 0); if (!mOgg) { if (mFile != mParent->mStreamFile) delete mFile; mFile = 0; } mOggFrameSize = 0; mOggFrameOffset = 0; mOggOutputs = 0; } else { mFile->seek(aParent->mDataOffset); } } }
result Wav::load(const char *aFilename) { if (aFilename == 0) return INVALID_PARAMETER; stop(); DiskFile dr; int res = dr.open(aFilename); if (res == SO_NO_ERROR) return loadFile(&dr); return res; }