libsidplayfp  1.8.7
Public Member Functions | Static Public Attributes | List of all members
Mixer Class Reference

#include <mixer.h>

Public Member Functions

 Mixer ()
 
void doMix ()
 
void clockChips ()
 
void resetBufs ()
 
void begin (short *buffer, uint_least32_t count)
 
void clearSids ()
 
void addSid (sidemu *chip)
 
sidemugetSid (unsigned int i) const
 
bool setFastForward (int ff)
 
void setVolume (int_least32_t left, int_least32_t right)
 
void setStereo (bool stereo)
 
bool notFinished () const
 
uint_least32_t samplesGenerated () const
 

Static Public Attributes

static const unsigned int MAX_SIDS = 3
 Maximum number of supported SIDs.
 
static const int_least32_t SCALE_FACTOR = 1 << 16
 
static const int_least32_t C1 = static_cast<int_least32_t>(1.0 / (1.0 + 0.7071067812) * SCALE_FACTOR)
 
static const int_least32_t C2 = static_cast<int_least32_t>(0.7071067812 / (1.0 + 0.7071067812) * SCALE_FACTOR)
 
static const int_least32_t VOLUME_MAX = 1024
 Maximum allowed volume, must be a power of 2.
 

Detailed Description

This class implements the mixer.

Constructor & Destructor Documentation

§ Mixer()

Mixer::Mixer ( )
inline

Create a new mixer.

Member Function Documentation

§ addSid()

void Mixer::addSid ( sidemu chip)

Add a SID to the mixer.

Parameters
chipthe sid emu to add

§ begin()

void Mixer::begin ( short *  buffer,
uint_least32_t  count 
)

Prepare for mixing cycle.

Parameters
bufferoutput buffer
countsize of the buffer in samples

§ clearSids()

void Mixer::clearSids ( )

Remove all SIDs from the mixer.

§ clockChips()

void Mixer::clockChips ( )

This clocks the SID chips to the present moment, if they aren't already.

§ doMix()

void Mixer::doMix ( )

Do the mixing.

§ getSid()

sidemu* Mixer::getSid ( unsigned int  i) const
inline

Get a SID from the mixer.

Parameters
ithe number of the SID to get
Returns
a pointer to the requested sid emu or 0 if not found

§ notFinished()

bool Mixer::notFinished ( ) const
inline

Check if the buffer have been filled.

§ resetBufs()

void Mixer::resetBufs ( )

Reset sidemu buffer position discarding produced samples.

§ samplesGenerated()

uint_least32_t Mixer::samplesGenerated ( ) const
inline

Get the number of samples generated up to now.

§ setFastForward()

bool Mixer::setFastForward ( int  ff)

Set the fast forward ratio.

Parameters
ffthe fast forward ratio, from 1 to 32
Returns
true if parameter is valid, false otherwise

§ setStereo()

void Mixer::setStereo ( bool  stereo)

Set mixing mode.

Parameters
stereotrue for stereo mode, false for mono

§ setVolume()

void Mixer::setVolume ( int_least32_t  left,
int_least32_t  right 
)

Set mixing volumes, from 0 to VOLUME_MAX.

Parameters
leftvolume for left or mono channel
rightvolume for right channel in stereo mode

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