Sound related functions implemented as SIMD using SSE. More...

#include <sound_sse.h>

Static Public Member Functions

static void * aligned_alloc (int size)
 Allocates memory that is 16-byte memory aligned. More...
 
static void aligned_free (void *ptr)
 Free memory allocated with aligned_alloc. More...
 
static void copy_float (float *input, int size, float *output)
 Copy floats from one buffer to another. More...
 
static void mix_many_to_one (float **input, float *volume, int channels, int size, float *output)
 Mixes many float channels into one float channel with individual volumes for each channel. More...
 
static void mix_one_to_many (float *input, int size, float **output, float *volume, int channels)
 Mixes one float channel into many float channels with individual volumes for each channel. More...
 
static void mix_one_to_one (float *input, int size, float *output, float volume)
 Mixes one float channel with specified volume into another float channel. More...
 
static void multiply_float (float *channel, int size, float volume)
 Multiplies floats with a float. More...
 
static void pack_16bit_stereo (float *input[2], int size, short *output)
 Packs two float channels into a single 16 bit samples stream. More...
 
static void pack_float_stereo (float *input[2], int size, float *output)
 Packs two float channels into a single float samples stream. More...
 
static void set_float (float *channel, int size, float value)
 Sets floats to a specific value. More...
 
static void unpack_16bit_mono (short *input, int size, float *output)
 Unpacks 16 bit mono samples into a single float channel. More...
 
static void unpack_16bit_stereo (short *input, int size, float *output[2])
 Unpacks 16 bit stereo samples into separate float channels. More...
 
static void unpack_8bit_mono (unsigned char *input, int size, float *output)
 Unpacks 8 bit mono samples into a single float channel. More...
 
static void unpack_8bit_stereo (unsigned char *input, int size, float *output[2])
 Unpacks 8 bit stereo samples into separate float channels. More...
 
static void unpack_float_mono (float *input, int size, float *output)
 Unpacks float mono samples into a single float channel. More...
 
static void unpack_float_stereo (float *input, int size, float *output[2])
 Unpacks float stereo samples into separate float channels. More...
 

Detailed Description

Sound related functions implemented as SIMD using SSE.

Member Function Documentation

static void* clan::SoundSSE::aligned_alloc ( int  size)
static

Allocates memory that is 16-byte memory aligned.

static void clan::SoundSSE::aligned_free ( void *  ptr)
static

Free memory allocated with aligned_alloc.

static void clan::SoundSSE::copy_float ( float *  input,
int  size,
float *  output 
)
static

Copy floats from one buffer to another.

static void clan::SoundSSE::mix_many_to_one ( float **  input,
float *  volume,
int  channels,
int  size,
float *  output 
)
static

Mixes many float channels into one float channel with individual volumes for each channel.

static void clan::SoundSSE::mix_one_to_many ( float *  input,
int  size,
float **  output,
float *  volume,
int  channels 
)
static

Mixes one float channel into many float channels with individual volumes for each channel.

static void clan::SoundSSE::mix_one_to_one ( float *  input,
int  size,
float *  output,
float  volume 
)
static

Mixes one float channel with specified volume into another float channel.

static void clan::SoundSSE::multiply_float ( float *  channel,
int  size,
float  volume 
)
static

Multiplies floats with a float.

static void clan::SoundSSE::pack_16bit_stereo ( float *  input[2],
int  size,
short *  output 
)
static

Packs two float channels into a single 16 bit samples stream.

static void clan::SoundSSE::pack_float_stereo ( float *  input[2],
int  size,
float *  output 
)
static

Packs two float channels into a single float samples stream.

static void clan::SoundSSE::set_float ( float *  channel,
int  size,
float  value 
)
static

Sets floats to a specific value.

static void clan::SoundSSE::unpack_16bit_mono ( short *  input,
int  size,
float *  output 
)
static

Unpacks 16 bit mono samples into a single float channel.

static void clan::SoundSSE::unpack_16bit_stereo ( short *  input,
int  size,
float *  output[2] 
)
static

Unpacks 16 bit stereo samples into separate float channels.

static void clan::SoundSSE::unpack_8bit_mono ( unsigned char *  input,
int  size,
float *  output 
)
static

Unpacks 8 bit mono samples into a single float channel.

static void clan::SoundSSE::unpack_8bit_stereo ( unsigned char *  input,
int  size,
float *  output[2] 
)
static

Unpacks 8 bit stereo samples into separate float channels.

static void clan::SoundSSE::unpack_float_mono ( float *  input,
int  size,
float *  output 
)
static

Unpacks float mono samples into a single float channel.

static void clan::SoundSSE::unpack_float_stereo ( float *  input,
int  size,
float *  output[2] 
)
static

Unpacks float stereo samples into separate float channels.


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