Mercurial > SDL_sound_CoreAudio
annotate alt_audio_convert.h @ 364:4bcbc442d145
Fix to handle strange WAV fmt chunks.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Thu, 13 Jun 2002 23:15:37 +0000 |
parents | c984aa6990f7 |
children | f61eadea1f44 |
rev | line source |
---|---|
338 | 1 /* |
2 Extended Audio Converter for SDL (Simple DirectMedia Layer) | |
3 Copyright (C) 2002 Frank Ranostaj | |
4 Institute of Applied Physik | |
5 Johann Wolfgang Goethe-Universität | |
6 Frankfurt am Main, Germany | |
7 | |
8 This library is free software; you can redistribute it and/or | |
9 modify it under the terms of the GNU Library General Public | |
10 License as published by the Free Software Foundation; either | |
11 version 2 of the License, or (at your option) any later version. | |
12 | |
13 This library 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 GNU | |
16 Library General Public License for more details. | |
17 | |
18 You should have received a copy of the GNU Library General Public | |
19 License along with this library; if not, write to the Free | |
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 | |
22 Frank Ranostaj | |
23 ranostaj@stud.uni-frankfurt.de | |
24 | |
25 (This code blatantly abducted for SDL_sound. Thanks, Frank! --ryan.) | |
26 | |
27 */ | |
28 | |
29 #ifndef _INCLUDE_AUDIO_CONVERT_H_ | |
30 #define _INCLUDE_AUDIO_CONVERT_H_ | |
31 | |
32 #include "SDL_audio.h" | |
33 #define Sound_AI_Loop 0x2 | |
34 #define _fsize 64 | |
35 | |
36 | |
37 typedef struct{ | |
360
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
38 Sint16 c[16][2*_fsize]; |
338 | 39 char incr[16]; |
40 int pos_mod; | |
41 } VarFilter; | |
42 | |
43 typedef struct{ | |
360
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
44 Uint8* buffer; |
338 | 45 int mode; |
46 VarFilter *filter; | |
47 } AdapterC; | |
48 | |
360
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
49 /* |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
50 typedef struct{ |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
51 VarFilter filter; |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
52 double mult; // buffer must be len*buf_mult big |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
53 int add; |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
54 int (*adapter[32]) ( AdapterC Data, int length ); |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
55 } SDL_AudioC; |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
56 |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
57 */ |
338 | 58 |
59 typedef struct{ | |
60 int needed; | |
61 VarFilter filter; | |
62 double len_mult; /* buffer must be len*len_mult big*/ | |
63 Uint8* buf; | |
360
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
64 int len; |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
65 int len_cvt; /* Length of converted audio buffer */ |
338 | 66 int add; |
67 int (*adapter[32]) ( AdapterC Data, int length ); | |
68 } Sound_AudioCVT; | |
360
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
69 |
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
70 #define SDL_AI_Loop 0x01 |
338 | 71 |
72 extern DECLSPEC int Sound_ConvertAudio( Sound_AudioCVT *Data ); | |
360
c984aa6990f7
Fixes and enhancements from Frank Ranostaj.
Ryan C. Gordon <icculus@icculus.org>
parents:
338
diff
changeset
|
73 |
338 | 74 extern DECLSPEC int Sound_BuildAudioCVT( Sound_AudioCVT *Data, |
75 Uint16 src_format, Uint8 src_channels, int src_rate, | |
76 Uint16 dst_format, Uint8 dst_channels, int dst_rate ); | |
77 | |
78 #endif /* _INCLUDE_AUDIO_CONVERT_H_ */ |