SeekableAudioStream *makeVorbisStream( Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse) { SeekableAudioStream *s = new VorbisStream(stream, disposeAfterUse); if (s && s->endOfData()) { delete s; return 0; } else { return s; } }
SeekableAudioStream *makeVOCStream(Common::SeekableReadStream *stream, byte flags, DisposeAfterUse::Flag disposeAfterUse) { if (!checkVOCHeader(*stream)) { if (disposeAfterUse == DisposeAfterUse::YES) delete stream; return 0; } SeekableAudioStream *audioStream = new VocStream(stream, (flags & Audio::FLAG_UNSIGNED) != 0, disposeAfterUse); if (audioStream && audioStream->endOfData()) { delete audioStream; return 0; } else { return audioStream; } }
SeekableAudioStream *makeMP3Stream( Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse) { #if defined(__PSP__) SeekableAudioStream *s = 0; if (Mp3PspStream::isOkToCreateStream()) s = new Mp3PspStream(stream, disposeAfterUse); if (!s) // go to regular MAD mp3 stream if ME fails s = new MP3Stream(stream, disposeAfterUse); #else SeekableAudioStream *s = new MP3Stream(stream, disposeAfterUse); #endif if (s && s->endOfData()) { delete s; return 0; } else { return s; } }