Update the default value for JACK's spawn-server option
[openal-soft.git] / Alc / mixer_defs.h
blob00176ad42af33e343b1b94e5b3f03fdece88248c
1 #ifndef MIXER_DEFS_H
2 #define MIXER_DEFS_H
4 #include "AL/alc.h"
5 #include "AL/al.h"
6 #include "alMain.h"
7 #include "alu.h"
9 struct MixGains;
11 struct HrtfParams;
12 struct HrtfState;
14 /* C resamplers */
15 const ALfloat *Resample_copy32_C(const ALfloat *src, ALuint frac, ALuint increment, ALfloat *restrict dst, ALuint dstlen);
16 const ALfloat *Resample_point32_C(const ALfloat *src, ALuint frac, ALuint increment, ALfloat *restrict dst, ALuint dstlen);
17 const ALfloat *Resample_lerp32_C(const ALfloat *src, ALuint frac, ALuint increment, ALfloat *restrict dst, ALuint dstlen);
18 const ALfloat *Resample_cubic32_C(const ALfloat *src, ALuint frac, ALuint increment, ALfloat *restrict dst, ALuint dstlen);
21 /* C mixers */
22 void MixHrtf_C(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *data,
23 ALuint Counter, ALuint Offset, ALuint OutPos, const ALuint IrSize,
24 const struct HrtfParams *hrtfparams, struct HrtfState *hrtfstate,
25 ALuint BufferSize);
26 void Mix_C(const ALfloat *data, ALuint OutChans, ALfloat (*restrict OutBuffer)[BUFFERSIZE],
27 struct MixGains *Gains, ALuint Counter, ALuint OutPos, ALuint BufferSize);
29 /* SSE mixers */
30 void MixHrtf_SSE(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *data,
31 ALuint Counter, ALuint Offset, ALuint OutPos, const ALuint IrSize,
32 const struct HrtfParams *hrtfparams, struct HrtfState *hrtfstate,
33 ALuint BufferSize);
34 void Mix_SSE(const ALfloat *data, ALuint OutChans, ALfloat (*restrict OutBuffer)[BUFFERSIZE],
35 struct MixGains *Gains, ALuint Counter, ALuint OutPos, ALuint BufferSize);
37 /* SSE resamplers */
38 inline void InitiatePositionArrays(ALuint frac, ALuint increment, ALuint *frac_arr, ALuint *pos_arr, ALuint size)
40 ALuint i;
42 pos_arr[0] = 0;
43 frac_arr[0] = frac;
44 for(i = 1;i < size;i++)
46 ALuint frac_tmp = frac_arr[i-1] + increment;
47 pos_arr[i] = pos_arr[i-1] + (frac_tmp>>FRACTIONBITS);
48 frac_arr[i] = frac_tmp&FRACTIONMASK;
52 const ALfloat *Resample_lerp32_SSE2(const ALfloat *src, ALuint frac, ALuint increment,
53 ALfloat *restrict dst, ALuint numsamples);
54 const ALfloat *Resample_lerp32_SSE41(const ALfloat *src, ALuint frac, ALuint increment,
55 ALfloat *restrict dst, ALuint numsamples);
57 const ALfloat *Resample_cubic32_SSE2(const ALfloat *src, ALuint frac, ALuint increment,
58 ALfloat *restrict dst, ALuint numsamples);
59 const ALfloat *Resample_cubic32_SSE41(const ALfloat *src, ALuint frac, ALuint increment,
60 ALfloat *restrict dst, ALuint numsamples);
62 /* Neon mixers */
63 void MixHrtf_Neon(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *data,
64 ALuint Counter, ALuint Offset, ALuint OutPos, const ALuint IrSize,
65 const struct HrtfParams *hrtfparams, struct HrtfState *hrtfstate,
66 ALuint BufferSize);
67 void Mix_Neon(const ALfloat *data, ALuint OutChans, ALfloat (*restrict OutBuffer)[BUFFERSIZE],
68 struct MixGains *Gains, ALuint Counter, ALuint OutPos, ALuint BufferSize);
70 #endif /* MIXER_DEFS_H */