Exemple #1
0
// FIXME: This doesn't work correctly yet, perhaps there are differences in the
// way the audio in robot files is handled
Audio::RewindableAudioStream *AudioPlayer::getRobotAudioStream(byte *buffer) {
	const uint16 rbtHeaderSize = 19;	// TODO: is this right?
	const uint16 rbtAudioRate = 22050;	// Seems to be hardcoded for all Robot videos
	byte audioFlags = *(buffer + 6);
	byte flags = 0;
	uint32 audioSize = READ_LE_UINT16(buffer + 15) - rbtHeaderSize;

	Common::MemoryReadStream dataStream(buffer + rbtHeaderSize - 1, audioSize, DisposeAfterUse::NO);
	byte *data = readSOLAudio(&dataStream, audioSize, audioFlags, flags);
	return Audio::makeRawStream(data, audioSize, rbtAudioRate, flags);
}
Exemple #2
0
byte *AudioPlayer::getDecodedRobotAudioFrame(Common::SeekableReadStream *str, uint32 encodedSize) {
	byte flags = 0;
	return readSOLAudio(str, encodedSize, kSolFlagCompressed | kSolFlag16Bit, flags);
}