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) |
MixerChannel * | MxAllocateChannel () |
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
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.