Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/openal-0.0.8/src/al_mixfunc.c @ 17

Last change on this file since 17 was 17, checked in by landauf, 16 years ago

added openal

File size: 4.6 KB
Line 
1/* -*- mode: C; tab-width:8; c-basic-offset:8 -*-
2 * vi:set ts=8:
3 *
4 * al_mixfunc.c
5 *
6 * Handling of the ALMixFunc datatype, which abstract the use of
7 * specialzed mixing functions.  Mixing functions are specialized
8 * on the bases of how many seperate source streams are contained
9 * in an ALMixManager object, which determines a dispatch function.
10 *
11 */
12#include "al_siteconfig.h"
13
14#include <stdio.h>
15
16#include "al_main.h"
17#include "al_mixfunc.h"
18#include "al_types.h"
19#include "al_cpu_caps.h"
20#include "mixaudio16.h"
21
22/*
23 * _alMixFuncInit( ALMixFunc *mf, ALuint size )
24 *
25 * _alMixFuncInit initializes the already allocated ALMixFunc object (mf) to
26 * contain at least size mixing functions.
27 */
28ALboolean _alMixFuncInit( ALMixFunc *mf, ALuint size ) {
29        if(mf == NULL) {
30                return AL_FALSE;
31        }
32
33        if(size == 0) {
34                return AL_FALSE;
35        }
36
37        if(size > MAXMIXSOURCES) {
38                return AL_FALSE;
39        }
40
41#ifdef __MMX__
42        if (_alHaveMMX()) {
43                /* FIXME: we really ignore size. */
44                mf->max      = MMXMIXSOURCES;
45                mf->funcs[0] = MixAudio16_MMX_0;
46                mf->funcs[1] = MixAudio16_MMX_1;
47                mf->funcs[2] = MixAudio16_MMX_2;
48                mf->funcs[3] = MixAudio16_MMX_3;
49                mf->funcs[4] = MixAudio16_MMX_4;
50                mf->funcs[5] = MixAudio16_MMX_5;
51                mf->funcs[6] = MixAudio16_MMX_6;
52                mf->funcs[7] = MixAudio16_MMX_7;
53                mf->funcs[8] = MixAudio16_MMX_8;
54                mf->funcs[9] = MixAudio16_MMX_9;
55               
56                mf->funcs[10] = MixAudio16_MMX_10;
57                mf->funcs[11] = MixAudio16_MMX_11;
58                mf->funcs[12] = MixAudio16_MMX_12;
59                mf->funcs[13] = MixAudio16_MMX_13;
60                mf->funcs[14] = MixAudio16_MMX_14;
61                mf->funcs[15] = MixAudio16_MMX_15;
62                mf->funcs[16] = MixAudio16_MMX_16;
63                mf->funcs[17] = MixAudio16_MMX_17;
64                mf->funcs[18] = MixAudio16_MMX_18;
65                mf->funcs[19] = MixAudio16_MMX_19;
66               
67                mf->funcs[20] = MixAudio16_MMX_20;
68                mf->funcs[21] = MixAudio16_MMX_21;
69                mf->funcs[22] = MixAudio16_MMX_22;
70                mf->funcs[23] = MixAudio16_MMX_23;
71                mf->funcs[24] = MixAudio16_MMX_24;
72                mf->funcs[25] = MixAudio16_MMX_25;
73                mf->funcs[26] = MixAudio16_MMX_26;
74                mf->funcs[27] = MixAudio16_MMX_27;
75                mf->funcs[28] = MixAudio16_MMX_28;
76                mf->funcs[29] = MixAudio16_MMX_29;
77               
78                mf->funcs[30] = MixAudio16_MMX_30;
79                mf->funcs[31] = MixAudio16_MMX_31;
80                mf->funcs[32] = MixAudio16_MMX_32;
81       
82                mf->func_n = MixAudio16_MMX_n;
83       
84                return AL_TRUE;
85        }
86#endif /* __MMX__ */
87
88        /* FIXME: we really ignore size. */
89        mf->max      = GENMIXSOURCES;
90        mf->funcs[0] = MixAudio16_0;
91        mf->funcs[1] = MixAudio16_1;
92        mf->funcs[2] = MixAudio16_2;
93        mf->funcs[3] = MixAudio16_3;
94        mf->funcs[4] = MixAudio16_4;
95        mf->funcs[5] = MixAudio16_5;
96        mf->funcs[6] = MixAudio16_6;
97        mf->funcs[7] = MixAudio16_7;
98        mf->funcs[8] = MixAudio16_8;
99#ifndef USE_LIGHT_GEN_MIXING
100        mf->funcs[9] = MixAudio16_9;
101
102        mf->funcs[10] = MixAudio16_10;
103        mf->funcs[11] = MixAudio16_11;
104        mf->funcs[12] = MixAudio16_12;
105        mf->funcs[13] = MixAudio16_13;
106        mf->funcs[14] = MixAudio16_14;
107        mf->funcs[15] = MixAudio16_15;
108        mf->funcs[16] = MixAudio16_16;
109        mf->funcs[17] = MixAudio16_17;
110        mf->funcs[18] = MixAudio16_18;
111        mf->funcs[19] = MixAudio16_19;
112
113        mf->funcs[20] = MixAudio16_20;
114        mf->funcs[21] = MixAudio16_21;
115        mf->funcs[22] = MixAudio16_22;
116        mf->funcs[23] = MixAudio16_23;
117        mf->funcs[24] = MixAudio16_24;
118        mf->funcs[25] = MixAudio16_25;
119        mf->funcs[26] = MixAudio16_26;
120        mf->funcs[27] = MixAudio16_27;
121        mf->funcs[28] = MixAudio16_28;
122        mf->funcs[29] = MixAudio16_29;
123       
124        mf->funcs[30] = MixAudio16_30;
125        mf->funcs[31] = MixAudio16_31;
126        mf->funcs[32] = MixAudio16_32;
127        mf->funcs[33] = MixAudio16_33;
128        mf->funcs[34] = MixAudio16_34;
129        mf->funcs[35] = MixAudio16_35;
130        mf->funcs[36] = MixAudio16_36;
131        mf->funcs[37] = MixAudio16_37;
132        mf->funcs[38] = MixAudio16_38;
133        mf->funcs[39] = MixAudio16_39;
134        mf->funcs[40] = MixAudio16_40;
135
136        mf->funcs[41] = MixAudio16_41;
137        mf->funcs[42] = MixAudio16_42;
138        mf->funcs[43] = MixAudio16_43;
139        mf->funcs[44] = MixAudio16_44;
140        mf->funcs[45] = MixAudio16_45;
141        mf->funcs[46] = MixAudio16_46;
142        mf->funcs[47] = MixAudio16_47;
143        mf->funcs[48] = MixAudio16_48;
144        mf->funcs[49] = MixAudio16_49;
145       
146        mf->funcs[50] = MixAudio16_50;
147        mf->funcs[51] = MixAudio16_51;
148        mf->funcs[52] = MixAudio16_52;
149        mf->funcs[53] = MixAudio16_53;
150        mf->funcs[54] = MixAudio16_54;
151        mf->funcs[55] = MixAudio16_55;
152        mf->funcs[56] = MixAudio16_56;
153        mf->funcs[57] = MixAudio16_57;
154        mf->funcs[58] = MixAudio16_58;
155        mf->funcs[59] = MixAudio16_59;
156       
157        mf->funcs[60] = MixAudio16_60;
158        mf->funcs[61] = MixAudio16_61;
159        mf->funcs[62] = MixAudio16_62;
160        mf->funcs[63] = MixAudio16_63;
161        mf->funcs[64] = MixAudio16_64;
162#endif /* !USE_LIGHT_GEN_MIXING */
163        mf->func_n = MixAudio16_n;
164
165        return AL_TRUE;
166}
167
168/*
169 * _alMixFuncDestroy( ALMixFunc *mf );
170 *
171 * _alMixFuncDestroy performs any needed finalization on the ALMixFunc object
172 * mf.
173 */
174void _alMixFuncDestroy( UNUSED(ALMixFunc *mf) ) {
175
176        return;
177}
Note: See TracBrowser for help on using the repository browser.