Audaspace:
[blender.git] / intern / audaspace / intern / AUD_ConverterFunctions.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * Copyright 2009-2011 Jörg Hermann Müller
5  *
6  * This file is part of AudaSpace.
7  *
8  * Audaspace is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * AudaSpace is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with Audaspace; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * ***** END GPL LICENSE BLOCK *****
23  */
24
25 /** \file audaspace/intern/AUD_ConverterFunctions.h
26  *  \ingroup audaspaceintern
27  */
28
29
30 #ifndef __AUD_CONVERTERFUNCTIONS_H__
31 #define __AUD_CONVERTERFUNCTIONS_H__
32
33 #include "AUD_Space.h"
34
35 #include <cstring>
36 #ifdef _MSC_VER
37 #if (_MSC_VER < 1300)
38    typedef short             int16_t;
39    typedef int               int32_t;
40 #else
41    typedef __int16           int16_t;
42    typedef __int32           int32_t;
43 #endif
44 #else
45 #include <stdint.h>
46 #endif
47
48 typedef void (*AUD_convert_f)(data_t* target, data_t* source, int length);
49
50 template <class T>
51 void AUD_convert_copy(data_t* target, data_t* source, int length)
52 {
53         memcpy(target, source, length*sizeof(T));
54 }
55
56 void AUD_convert_u8_s16(data_t* target, data_t* source, int length);
57
58 void AUD_convert_u8_s24_be(data_t* target, data_t* source, int length);
59
60 void AUD_convert_u8_s24_le(data_t* target, data_t* source, int length);
61
62 void AUD_convert_u8_s32(data_t* target, data_t* source, int length);
63
64 void AUD_convert_u8_float(data_t* target, data_t* source, int length);
65
66 void AUD_convert_u8_double(data_t* target, data_t* source, int length);
67
68 void AUD_convert_s16_u8(data_t* target, data_t* source, int length);
69
70 void AUD_convert_s16_s24_be(data_t* target, data_t* source, int length);
71
72 void AUD_convert_s16_s24_le(data_t* target, data_t* source, int length);
73
74 void AUD_convert_s16_s32(data_t* target, data_t* source, int length);
75
76 void AUD_convert_s16_float(data_t* target, data_t* source, int length);
77
78 void AUD_convert_s16_double(data_t* target, data_t* source, int length);
79
80 void AUD_convert_s24_u8_be(data_t* target, data_t* source, int length);
81
82 void AUD_convert_s24_u8_le(data_t* target, data_t* source, int length);
83
84 void AUD_convert_s24_s16_be(data_t* target, data_t* source, int length);
85
86 void AUD_convert_s24_s16_le(data_t* target, data_t* source, int length);
87
88 void AUD_convert_s24_s24(data_t* target, data_t* source, int length);
89
90 void AUD_convert_s24_s32_be(data_t* target, data_t* source, int length);
91
92 void AUD_convert_s24_s32_le(data_t* target, data_t* source, int length);
93
94 void AUD_convert_s24_float_be(data_t* target, data_t* source, int length);
95
96 void AUD_convert_s24_float_le(data_t* target, data_t* source, int length);
97
98 void AUD_convert_s24_double_be(data_t* target, data_t* source, int length);
99
100 void AUD_convert_s24_double_le(data_t* target, data_t* source, int length);
101
102 void AUD_convert_s32_u8(data_t* target, data_t* source, int length);
103
104 void AUD_convert_s32_s16(data_t* target, data_t* source, int length);
105
106 void AUD_convert_s32_s24_be(data_t* target, data_t* source, int length);
107
108 void AUD_convert_s32_s24_le(data_t* target, data_t* source, int length);
109
110 void AUD_convert_s32_float(data_t* target, data_t* source, int length);
111
112 void AUD_convert_s32_double(data_t* target, data_t* source, int length);
113
114 void AUD_convert_float_u8(data_t* target, data_t* source, int length);
115
116 void AUD_convert_float_s16(data_t* target, data_t* source, int length);
117
118 void AUD_convert_float_s24_be(data_t* target, data_t* source, int length);
119
120 void AUD_convert_float_s24_le(data_t* target, data_t* source, int length);
121
122 void AUD_convert_float_s32(data_t* target, data_t* source, int length);
123
124 void AUD_convert_float_double(data_t* target, data_t* source, int length);
125
126 void AUD_convert_double_u8(data_t* target, data_t* source, int length);
127
128 void AUD_convert_double_s16(data_t* target, data_t* source, int length);
129
130 void AUD_convert_double_s24_be(data_t* target, data_t* source, int length);
131
132 void AUD_convert_double_s24_le(data_t* target, data_t* source, int length);
133
134 void AUD_convert_double_s32(data_t* target, data_t* source, int length);
135
136 void AUD_convert_double_float(data_t* target, data_t* source, int length);
137
138 #endif //__AUD_CONVERTERFUNCTIONS_H__