1 /*
2  * MixFuncTable.h
3  * --------------
4  * Purpose: Table containing all mixer functions.
5  * Notes  : (currently none)
6  * Authors: OpenMPT Devs
7  * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
8  */
9 
10 
11 #pragma once
12 
13 #include "openmpt/all/BuildSettings.hpp"
14 
15 #include "MixerInterface.h"
16 
17 OPENMPT_NAMESPACE_BEGIN
18 
19 namespace MixFuncTable
20 {
21 	// Table index bits:
22 	// [b1-b0] format (8-bit-mono, 16-bit-mono, 8-bit-stereo, 16-bit-stereo)
23 	// [b2]    ramp
24 	// [b3]    filter
25 	// [b6-b4] src type
26 
27 	// Sample type / processing type index
28 	enum FunctionIndex
29 	{
30 		ndx16Bit  = 0x01,
31 		ndxStereo = 0x02,
32 		ndxRamp   = 0x04,
33 		ndxFilter = 0x08,
34 	};
35 
36 	// SRC index
37 	enum ResamplingIndex
38 	{
39 		ndxNoInterpolation = 0x00,
40 		ndxLinear          = 0x10,
41 		ndxFastSinc        = 0x20,
42 		ndxKaiser          = 0x30,
43 		ndxFIRFilter       = 0x40,
44 		ndxAmigaBlep       = 0x50,
45 	};
46 
47 	extern const MixFuncInterface Functions[6 * 16];
48 
49 	ResamplingIndex ResamplingModeToMixFlags(ResamplingMode resamplingMode);
50 }
51 
52 OPENMPT_NAMESPACE_END
53