mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-02 08:19:19 +00:00
AUDIO: Add a packetized version of the PCM stream
This commit is contained in:
parent
a64aff0287
commit
3aa9e2c581
@ -221,4 +221,24 @@ SeekableAudioStream *makeRawStream(const byte *buffer, uint32 size,
|
||||
return makeRawStream(new Common::MemoryReadStream(buffer, size, disposeAfterUse), rate, flags, DisposeAfterUse::YES);
|
||||
}
|
||||
|
||||
class PacketizedRawStream : public StatelessPacketizedAudioStream {
|
||||
public:
|
||||
PacketizedRawStream(int rate, byte flags) :
|
||||
StatelessPacketizedAudioStream(rate, ((flags & FLAG_STEREO) != 0) ? 2 : 1), _flags(flags) {}
|
||||
|
||||
protected:
|
||||
AudioStream *makeStream(Common::SeekableReadStream *data);
|
||||
|
||||
private:
|
||||
byte _flags;
|
||||
};
|
||||
|
||||
AudioStream *PacketizedRawStream::makeStream(Common::SeekableReadStream *data) {
|
||||
return makeRawStream(data, getRate(), _flags);
|
||||
}
|
||||
|
||||
PacketizedAudioStream *makePacketizedRawStream(int rate, byte flags) {
|
||||
return new PacketizedRawStream(rate, flags);
|
||||
}
|
||||
|
||||
} // End of namespace Audio
|
||||
|
@ -35,6 +35,7 @@ class SeekableReadStream;
|
||||
|
||||
namespace Audio {
|
||||
|
||||
class PacketizedAudioStream;
|
||||
class SeekableAudioStream;
|
||||
|
||||
/**
|
||||
@ -89,6 +90,17 @@ SeekableAudioStream *makeRawStream(Common::SeekableReadStream *stream,
|
||||
int rate, byte flags,
|
||||
DisposeAfterUse::Flag disposeAfterUse = DisposeAfterUse::YES);
|
||||
|
||||
/**
|
||||
* Creates a PacketizedAudioStream that will automatically queue
|
||||
* packets as individual AudioStreams like returned by makeRawStream.
|
||||
*
|
||||
* @param rate Rate of the sound data.
|
||||
* @param flags Audio flags combination.
|
||||
* @see RawFlags
|
||||
* @return The new PacketizedAudioStream.
|
||||
*/
|
||||
PacketizedAudioStream *makePacketizedRawStream(int rate, byte flags);
|
||||
|
||||
} // End of namespace Audio
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user