00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "api_sound.h"
00035
00039 class CL_API_SOUND CL_SoundSSE
00040 {
00043 public:
00045 static void *aligned_alloc(int size);
00046
00048 static void aligned_free(void *ptr);
00049
00051 static void unpack_16bit_stereo(short *input, int size, float *output[2]);
00052
00054 static void unpack_16bit_mono(short *input, int size, float *output);
00055
00057 static void unpack_8bit_stereo(unsigned char *input, int size, float *output[2]);
00058
00060 static void unpack_8bit_mono(unsigned char *input, int size, float *output);
00061
00063 static void pack_16bit_stereo(float *input[2], int size, short *output);
00064
00066 static void pack_float_stereo(float *input[2], int size, float *output);
00067
00069 static void copy_float(float *input, int size, float *output);
00070
00072 static void multiply_float(float *channel, int size, float volume);
00073
00075 static void set_float(float *channel, int size, float value);
00076
00078 static void mix_one_to_one(float *input, int size, float *output, float volume);
00079
00081 static void mix_one_to_many(float *input, int size, float **output, float *volume, int channels);
00082
00084 static void mix_many_to_one(float **input, float *volume, int channels, int size, float *output);
00086 };
00087