Blender  V2.59
Public Member Functions | Protected Attributes
AUD_Mixer Class Reference

#include <AUD_Mixer.h>

Inheritance diagram for AUD_Mixer:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 AUD_Mixer (AUD_DeviceSpecs specs)
virtual ~AUD_Mixer ()
AUD_DeviceSpecs getSpecs () const
virtual AUD_IReaderprepare (AUD_IReader *reader)=0
virtual void add (sample_t *buffer, int start, int length, float volume)
virtual void superpose (data_t *buffer, int length, float volume)

Protected Attributes

std::list< AUD_MixerBufferm_buffers
const AUD_DeviceSpecs m_specs
AUD_Buffer m_buffer
AUD_convert_f m_convert

Detailed Description

This abstract class is able to mix audiosignals of different channel count and sample rate and convert it to a specific output format.

Definition at line 52 of file AUD_Mixer.h.


Constructor & Destructor Documentation

AUD_Mixer::AUD_Mixer ( AUD_DeviceSpecs  specs)
virtual AUD_Mixer::~AUD_Mixer ( ) [inline, virtual]

Destroys the mixer.

Definition at line 84 of file AUD_Mixer.h.


Member Function Documentation

void AUD_Mixer::add ( sample_t buffer,
int  start,
int  length,
float  volume 
) [virtual]

Adds a buffer for superposition.

Parameters:
bufferThe buffer to superpose.
startThe start sample of the buffer.
lengthThe length of the buffer in samples.
volumeThe mixing volume. Must be a value between 0.0 and 1.0.

Definition at line 76 of file AUD_Mixer.cpp.

References AUD_MixerBuffer::buffer, AUD_MixerBuffer::length, length(), m_buffers, AUD_MixerBuffer::start, and AUD_MixerBuffer::volume.

Referenced by AUD_SoftwareDevice::mix(), and AUD_SequencerReader::read().

AUD_DeviceSpecs AUD_Mixer::getSpecs ( ) const

Returns the target specification for superposing.

Returns:
The target specification.

Definition at line 71 of file AUD_Mixer.cpp.

References m_specs.

Referenced by AUD_SequencerReader::getSpecs(), and AUD_SequencerReader::read().

virtual AUD_IReader* AUD_Mixer::prepare ( AUD_IReader reader) [pure virtual]

This funuction prepares a reader for playback.

Parameters:
readerThe reader to prepare.
Returns:
The reader that should be used for playback.

Implemented in AUD_DefaultMixer.

Referenced by AUD_SequencerReader::add(), AUD_SequencerReader::AUD_SequencerReader(), AUD_SoftwareDevice::play(), and AUD_SequencerReader::read().

void AUD_Mixer::superpose ( data_t buffer,
int  length,
float  volume 
) [virtual]

Superposes all added buffers into an output buffer.

Parameters:
bufferThe target buffer for superposing.
lengthThe length of the buffer in samples.
volumeThe mixing volume. Must be a value between 0.0 and 1.0.

Definition at line 86 of file AUD_Mixer.cpp.

References AUD_MixerBuffer::buffer, AUD_DeviceSpecs::channels, AUD_Buffer::getBuffer(), AUD_Buffer::getSize(), i, AUD_MixerBuffer::length, m_buffer, m_buffers, m_convert, m_specs, AUD_Buffer::resize(), AUD_MixerBuffer::start, and AUD_MixerBuffer::volume.

Referenced by AUD_SoftwareDevice::mix(), and AUD_SequencerReader::read().


Member Data Documentation

The temporary mixing buffer.

Definition at line 68 of file AUD_Mixer.h.

Referenced by superpose().

std::list<AUD_MixerBuffer> AUD_Mixer::m_buffers [protected]

The list of buffers to superpose.

Definition at line 58 of file AUD_Mixer.h.

Referenced by add(), and superpose().

Converter function.

Definition at line 73 of file AUD_Mixer.h.

Referenced by AUD_Mixer(), and superpose().

The output specification.

Definition at line 63 of file AUD_Mixer.h.

Referenced by AUD_Mixer(), getSpecs(), AUD_DefaultMixer::prepare(), and superpose().


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