CLAM-Development  1.4.0
Public Member Functions | Protected Member Functions | Protected Attributes
CLAM::AudioCodecs::Stream Class Reference

Streams provide I/O to and from an audio file of a given format. More...

#include <AudioCodecs_Stream.hxx>

List of all members.

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< TDatamInterleavedData
bool mEOFReached
unsigned mFramesLastRead
unsigned long mFramePosition

Detailed Description

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.

Todo:
Document Stream methods

Definition at line 43 of file AudioCodecs_Stream.hxx.


Constructor & Destructor Documentation

CLAM::AudioCodecs::Stream::Stream ( )

Definition at line 29 of file AudioCodecs_Stream.cxx.

CLAM::AudioCodecs::Stream::~Stream ( )
virtual

Definition at line 35 of file AudioCodecs_Stream.cxx.


Member Function Documentation

virtual void CLAM::AudioCodecs::Stream::DiskToMemoryTransfer ( )
protectedpure virtual

Move data from the file to mInterleavedData.

Implemented in CLAM::AudioCodecs::OggVorbisAudioStream, CLAM::AudioCodecs::PCMAudioStream, and CLAM::AudioCodecs::MpegAudioStream.

Referenced by ReadData().

virtual void CLAM::AudioCodecs::Stream::Dispose ( )
pure virtual
virtual unsigned long CLAM::AudioCodecs::Stream::GetFramePosition ( ) const
inlinevirtual

Returns the current frame position.

Definition at line 58 of file AudioCodecs_Stream.hxx.

References mFramePosition.

Referenced by CLAM::MonoAudioFileReader::Do().

virtual void CLAM::AudioCodecs::Stream::MemoryToDiskTransfer ( )
protectedpure virtual

Move data from mInterleavedData to the file.

Implemented in CLAM::AudioCodecs::OggVorbisAudioStream, CLAM::AudioCodecs::PCMAudioStream, and CLAM::AudioCodecs::MpegAudioStream.

Referenced by WriteData().

virtual void CLAM::AudioCodecs::Stream::PrepareReading ( )
pure virtual
virtual void CLAM::AudioCodecs::Stream::PrepareWriting ( )
pure virtual
bool CLAM::AudioCodecs::Stream::ReadData ( int  channel,
TData buffer,
unsigned  nFrames 
)
bool CLAM::AudioCodecs::Stream::ReadData ( TData **  buffers,
unsigned  nFrames 
)

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.

virtual void CLAM::AudioCodecs::Stream::SeekTo ( unsigned long  framePosition)
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().

void CLAM::AudioCodecs::Stream::SetChannels ( unsigned  nChannels)
protected
void CLAM::AudioCodecs::Stream::WriteData ( int  channel,
const TData buffer,
unsigned  nFrames 
)

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().

void CLAM::AudioCodecs::Stream::WriteData ( TData **const  buffers,
unsigned  nFrames 
)

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.


Member Data Documentation

unsigned CLAM::AudioCodecs::Stream::mChannels
protected
bool CLAM::AudioCodecs::Stream::mEOFReached
protected
unsigned long CLAM::AudioCodecs::Stream::mFramePosition
protected
unsigned CLAM::AudioCodecs::Stream::mFramesLastRead
protected
std::vector<TData> CLAM::AudioCodecs::Stream::mInterleavedData
protected

The documentation for this class was generated from the following files: