Initial revision
[blender.git] / intern / SoundSystem / SoundDefines.h
1 /*
2  * SoundDefines.h
3  *
4  * this is where all kinds of defines are stored
5  *
6  * $Id$
7  *
8  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version. The Blender
14  * Foundation also sells licenses for use in proprietary software under
15  * the Blender License.  See http://www.blender.org/BL/ for information
16  * about this.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software Foundation,
25  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
26  *
27  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
28  * All rights reserved.
29  *
30  * The Original Code is: all of this file.
31  *
32  * Contributor(s): none yet.
33  *
34  * ***** END GPL/BL DUAL LICENSE BLOCK *****
35  */
36
37 #ifndef __SOUNDDEFINES_H
38 #define __SOUNDDEFINES_H
39
40 /* the types of devices */
41 enum
42 {
43         snd_e_dummydevice = 0,
44         snd_e_fmoddevice,
45         snd_e_openaldevice
46 };
47
48 /* general stuff */
49 #define NUM_BUFFERS                                             128
50 #define NUM_SOURCES                                             16
51
52 /* openal related stuff */
53 #define AL_LOOPING                                              0x1007
54
55 /* fmod related stuff */
56 #ifdef WIN32
57 #define MIXRATE                                                 22050
58 #else
59 #define MIXRATE                                                 44100
60 #endif
61 #define NUM_FMOD_MIN_HW_CHANNELS                16
62 #define NUM_FMOD_MAX_HW_CHANNELS                16
63
64 /* activelist defines */
65 enum
66 {
67         SND_REMOVE_ACTIVE_OBJECT = 0,
68         SND_ADD_ACTIVE_OBJECT,
69         SND_DO_NOTHING
70 };
71
72 /* playstate flags */
73 enum
74 {
75         SND_UNKNOWN = -1,
76         SND_INITIAL,
77         SND_MUST_PLAY,
78         SND_PLAYING,
79         SND_MUST_STOP,
80         SND_STOPPED,
81         SND_MUST_PAUSE,
82         SND_PAUSED,
83         SND_MUST_RESUME,
84         SND_MUST_STOP_WHEN_FINISHED,
85         SND_MUST_BE_DELETED
86 };
87
88 /* loopmodes */
89 enum
90 {
91         SND_LOOP_OFF = 0,
92         SND_LOOP_NORMAL,
93         SND_LOOP_BIDIRECTIONAL
94 };
95
96
97 /* cd playstate flags */
98 enum
99 {
100         SND_CD_ALL = 0,
101         SND_CD_TRACK,
102         SND_CD_TRACKLOOP
103 };
104
105 /* sample types */
106 enum
107 {
108         SND_WAVE_FORMAT_UNKNOWN = 0,
109         SND_WAVE_FORMAT_PCM,
110         SND_WAVE_FORMAT_ADPCM,
111         SND_WAVE_FORMAT_ALAW = 6,
112         SND_WAVE_FORMAT_MULAW,
113         SND_WAVE_FORMAT_DIALOGIC_OKI_ADPCM = 17,
114         SND_WAVE_FORMAT_CONTROL_RES_VQLPC = 34,
115         SND_WAVE_FORMAT_GSM_610 = 49,
116         SND_WAVE_FORMAT_MPEG3 = 85
117 };
118
119 #endif //__SOUNDDEFINES_H