mixer.cpp File Reference

Mixing of sound samples. More...

#include "stdafx.h"
#include <math.h>
#include "core/math_func.hpp"

Go to the source code of this file.

Data Structures

struct  MixerChannel

Functions

template<typename T >
static int RateConversion (T *b, int frac_pos)
 Perform the rate conversion between the input and output.
static void mix_int16 (MixerChannel *sc, int16 *buffer, uint samples)
static void mix_int8_to_int16 (MixerChannel *sc, int16 *buffer, uint samples)
static void MxCloseChannel (MixerChannel *mc)
void MxMixSamples (void *buffer, uint samples)
MixerChannelMxAllocateChannel ()
void MxSetChannelRawSrc (MixerChannel *mc, int8 *mem, size_t size, uint rate, bool is16bit)
void MxSetChannelVolume (MixerChannel *mc, uint volume, float pan)
 Set volume and pan parameters for a sound.
void MxActivateChannel (MixerChannel *mc)
bool MxInitialize (uint rate)

Variables

static MixerChannel _channels [8]
static uint32 _play_rate = 11025
static uint32 _max_size = UINT_MAX
static const int MAX_VOLUME = 128 * 128
 The theoretical maximum volume for a single sound sample.

Detailed Description

Mixing of sound samples.

Definition in file mixer.cpp.


Function Documentation

void MxSetChannelVolume ( MixerChannel mc,
uint  volume,
float  pan 
)

Set volume and pan parameters for a sound.

Parameters:
mc MixerChannel to set
volume Volume level for sound, range is 0..16384
pan Pan position for sound, range is 0..1

Definition at line 196 of file mixer.cpp.

template<typename T >
static int RateConversion ( T *  b,
int  frac_pos 
) [inline, static]

Perform the rate conversion between the input and output.

Parameters:
b the buffer to read the data from
frac_pos the position from the begin of the buffer till the next element
Template Parameters:
T the size of the buffer (8 or 16 bits)
Returns:
the converted value.

Definition at line 55 of file mixer.cpp.


Variable Documentation

const int MAX_VOLUME = 128 * 128 [static]

The theoretical maximum volume for a single sound sample.

Multiple sound samples should not exceed this limit as it will sound too loud. It also stops overflowing when too many sounds are played at the same time, which causes an even worse sound quality.

Definition at line 45 of file mixer.cpp.


Generated on Fri Jun 3 05:19:05 2011 for OpenTTD by  doxygen 1.6.1