CLAM-Development
1.4.0
|
Streams provide I/O to and from an audio file of a given format. More...
#include <AudioCodecs_Stream.hxx>
Public Member Functions | |
Stream () | |
virtual | ~Stream () |
virtual void | PrepareReading ()=0 |
Open the stream in read mode. | |
virtual void | PrepareWriting ()=0 |
Open the stream in write mode. | |
virtual void | Dispose ()=0 |
Close the stream. | |
virtual void | SeekTo (unsigned long framePosition) |
Moves the current position to framePosition. If such functionality is not supported by the stream it will be ignored. | |
virtual unsigned long | GetFramePosition () const |
Returns the current frame position. | |
bool | ReadData (int channel, TData *buffer, unsigned nFrames) |
Read a picked channel. | |
bool | ReadData (TData **buffers, unsigned nFrames) |
Read all the channels. | |
bool | ReadData (int *channels, int nchannels, TData **buffers, unsigned nFrames) |
Read many picked channels. | |
void | WriteData (int channel, const TData *buffer, unsigned nFrames) |
Read a picked channel (Do it has sense?) | |
void | WriteData (TData **const buffers, unsigned nFrames) |
Read all the channels. | |
void | WriteData (int *channels, int nchannels, TData **const buffers, unsigned nFrames) |
Read many picked channels (Do it has sense?) |
Protected Member Functions | |
virtual void | DiskToMemoryTransfer ()=0 |
Move data from the file to mInterleavedData. | |
virtual void | MemoryToDiskTransfer ()=0 |
Move data from mInterleavedData to the file. | |
void | SetChannels (unsigned nChannels) |
Protected Attributes | |
unsigned | mChannels |
std::vector< TData > | mInterleavedData |
bool | mEOFReached |
unsigned | mFramesLastRead |
unsigned long | mFramePosition |
Streams provide I/O to and from an audio file of a given format.
You can get a stream by using a Codec. To add support for a different format you must subclass both the Codec and the Stream.
Definition at line 43 of file AudioCodecs_Stream.hxx.
CLAM::AudioCodecs::Stream::Stream | ( | ) |
Definition at line 29 of file AudioCodecs_Stream.cxx.
|
virtual |
Definition at line 35 of file AudioCodecs_Stream.cxx.
|
protectedpure virtual |
Move data from the file to mInterleavedData.
Implemented in CLAM::AudioCodecs::OggVorbisAudioStream, CLAM::AudioCodecs::PCMAudioStream, and CLAM::AudioCodecs::MpegAudioStream.
Referenced by ReadData().
|
pure virtual |
Close the stream.
Implemented in CLAM::AudioCodecs::OggVorbisAudioStream, CLAM::AudioCodecs::PCMAudioStream, and CLAM::AudioCodecs::MpegAudioStream.
Referenced by CLAM::MonoAudioFileWriter::ConcreteStop(), CLAM::MultiChannelAudioFileWriter::ConcreteStop(), CLAM::MonoAudioFileReader::ConcreteStop(), and CLAM::MultiChannelAudioFileReader::ConcreteStop().
|
inlinevirtual |
Returns the current frame position.
Definition at line 58 of file AudioCodecs_Stream.hxx.
References mFramePosition.
Referenced by CLAM::MonoAudioFileReader::Do().
|
protectedpure virtual |
Move data from mInterleavedData to the file.
Implemented in CLAM::AudioCodecs::OggVorbisAudioStream, CLAM::AudioCodecs::PCMAudioStream, and CLAM::AudioCodecs::MpegAudioStream.
Referenced by WriteData().
|
pure virtual |
Open the stream in read mode.
Implemented in CLAM::AudioCodecs::OggVorbisAudioStream, CLAM::AudioCodecs::PCMAudioStream, and CLAM::AudioCodecs::MpegAudioStream.
Referenced by CLAM::MonoAudioFileReader::ConcreteStart(), and CLAM::MultiChannelAudioFileReader::ConcreteStart().
|
pure virtual |
Open the stream in write mode.
Implemented in CLAM::AudioCodecs::OggVorbisAudioStream, CLAM::AudioCodecs::PCMAudioStream, and CLAM::AudioCodecs::MpegAudioStream.
Referenced by CLAM::MonoAudioFileWriter::ConcreteStart(), and CLAM::MultiChannelAudioFileWriter::ConcreteStart().
Read a picked channel.
Definition at line 39 of file AudioCodecs_Stream.cxx.
References DiskToMemoryTransfer(), mChannels, mEOFReached, mFramesLastRead, and mInterleavedData.
Referenced by CLAM::MonoAudioFileReader::Do(), and CLAM::MultiChannelAudioFileReader::Do().
Read all the channels.
Definition at line 54 of file AudioCodecs_Stream.cxx.
References DiskToMemoryTransfer(), mChannels, mEOFReached, mFramesLastRead, and mInterleavedData.
bool CLAM::AudioCodecs::Stream::ReadData | ( | int * | channels, |
int | nchannels, | ||
TData ** | buffers, | ||
unsigned | nFrames | ||
) |
Read many picked channels.
Definition at line 68 of file AudioCodecs_Stream.cxx.
References DiskToMemoryTransfer(), mChannels, mEOFReached, mFramesLastRead, and mInterleavedData.
|
inlinevirtual |
Moves the current position to framePosition. If such functionality is not supported by the stream it will be ignored.
Reimplemented in CLAM::AudioCodecs::OggVorbisAudioStream, and CLAM::AudioCodecs::MpegAudioStream.
Definition at line 56 of file AudioCodecs_Stream.hxx.
Referenced by CLAM::MonoAudioFileReader::Do().
|
protected |
Definition at line 147 of file AudioCodecs_Stream.cxx.
Referenced by CLAM::AudioCodecs::PCMAudioStream::PCMAudioStream().
Read a picked channel (Do it has sense?)
Definition at line 100 of file AudioCodecs_Stream.cxx.
References mChannels, MemoryToDiskTransfer(), and mInterleavedData.
Referenced by CLAM::MonoAudioFileWriter::Do(), and CLAM::MultiChannelAudioFileWriter::Do().
Read all the channels.
Definition at line 111 of file AudioCodecs_Stream.cxx.
References mChannels, MemoryToDiskTransfer(), and mInterleavedData.
void CLAM::AudioCodecs::Stream::WriteData | ( | int * | channels, |
int | nchannels, | ||
TData **const | buffers, | ||
unsigned | nFrames | ||
) |
Read many picked channels (Do it has sense?)
Definition at line 123 of file AudioCodecs_Stream.cxx.
References mChannels, MemoryToDiskTransfer(), and mInterleavedData.
|
protected |
Definition at line 86 of file AudioCodecs_Stream.hxx.
Referenced by CLAM::AudioCodecs::MpegAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::OggVorbisAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::PCMAudioStream::MemoryToDiskTransfer(), CLAM::AudioCodecs::OggVorbisAudioStream::MemoryToDiskTransfer(), CLAM::AudioCodecs::MpegAudioStream::MpegAudioStream(), CLAM::AudioCodecs::OggVorbisAudioStream::OggVorbisAudioStream(), CLAM::AudioCodecs::OggVorbisAudioStream::PrepareReading(), ReadData(), and WriteData().
|
protected |
Definition at line 88 of file AudioCodecs_Stream.hxx.
Referenced by CLAM::AudioCodecs::MpegAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::PCMAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::OggVorbisAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::PCMAudioStream::PrepareReading(), ReadData(), and CLAM::AudioCodecs::PCMAudioStream::SeekTo().
|
protected |
Definition at line 90 of file AudioCodecs_Stream.hxx.
Referenced by CLAM::AudioCodecs::PCMAudioStream::DiskToMemoryTransfer(), GetFramePosition(), CLAM::AudioCodecs::MpegAudioStream::PrepareReading(), CLAM::AudioCodecs::PCMAudioStream::PrepareReading(), CLAM::AudioCodecs::OggVorbisAudioStream::PrepareReading(), CLAM::AudioCodecs::MpegAudioStream::SeekTo(), CLAM::AudioCodecs::PCMAudioStream::SeekTo(), and CLAM::AudioCodecs::OggVorbisAudioStream::SeekTo().
|
protected |
Definition at line 89 of file AudioCodecs_Stream.hxx.
Referenced by CLAM::AudioCodecs::MpegAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::PCMAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::OggVorbisAudioStream::DiskToMemoryTransfer(), and ReadData().
|
protected |
Definition at line 87 of file AudioCodecs_Stream.hxx.
Referenced by CLAM::AudioCodecs::MpegAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::PCMAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::OggVorbisAudioStream::DiskToMemoryTransfer(), CLAM::AudioCodecs::PCMAudioStream::MemoryToDiskTransfer(), CLAM::AudioCodecs::OggVorbisAudioStream::MemoryToDiskTransfer(), ReadData(), and WriteData().