manual merge trunk -r 23037
[blender.git] / source / blender / makesdna / DNA_sound_types.h
1 /**
2  * blenlib/DNA_sound_types.h (mar-2001 nzc)
3  *      
4  * $Id$ 
5  *
6  * ***** BEGIN GPL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program 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 this program; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef DNA_SOUND_TYPES_H
32 #define DNA_SOUND_TYPES_H
33
34 #include "DNA_listBase.h"
35 #include "DNA_ID.h"
36
37 /* stupid... could easily be solved */
38 #include "DNA_view2d_types.h"
39
40 struct Ipo;
41 struct PackedFile;
42 struct SpaceLink;
43
44 // runtime only - no saving
45 typedef struct SoundHandle {
46         struct SoundHandle *next, *prev;
47         struct bSound *source;
48         void *handle;
49         int state;
50         int startframe;
51         int endframe;
52         int frameskip;
53         int mute;
54         int changed;
55         float volume;
56         float pad;
57 } SoundHandle;
58
59 typedef struct Sound3D
60 {
61         float min_gain;
62         float max_gain;
63         float reference_distance;
64         float max_distance;
65         float rolloff_factor;
66         float cone_inner_angle;
67         float cone_outer_angle;
68         float cone_outer_gain;
69 } Sound3D;
70
71 typedef struct bSound {
72         ID id;
73
74         /**
75          * The path to the sound file.
76          */
77         char name[160];
78
79         /**
80          * The packed file.
81          */
82         struct PackedFile *packedfile;
83
84         /**
85          * The handle for audaspace.
86          */
87         void *handle;
88
89         /**
90          * Deprecated; used for loading pre 2.5 files.
91          */
92         struct PackedFile *newpackedfile;
93         struct Ipo *ipo;
94         float volume;
95         float attenuation;
96         float pitch;
97         float min_gain;
98         float max_gain;
99         float distance;
100         int flags;
101
102 /**     currently       int type;
103         struct bSound *child_sound;*/
104
105         /**
106          * Whether the sound has been changed and must be restarted if playing.
107          */
108         int changed;
109
110         /**
111          * The audaspace handle for cache.
112          */
113         void *cache;
114
115 /**     XXX unused currently    // SOUND_TYPE_LIMITER
116         float start, end;*/
117 } bSound;
118
119 /* XXX unused currently
120 typedef enum eSound_Type {
121         SOUND_TYPE_INVALID = -1,
122         SOUND_TYPE_FILE = 0,
123         SOUND_TYPE_BUFFER,
124         SOUND_TYPE_LIMITER
125 } eSound_Type;*/
126
127 /* spacesound->flag */
128 #define SND_DRAWFRAMES  1
129 #define SND_CFRA_NUM    2
130
131 typedef struct SpaceSound {
132         struct SpaceLink *next, *prev;
133         ListBase regionbase;            /* storage of regions for inactive spaces */
134         int spacetype;
135         float blockscale;
136         struct ScrArea *area;
137         
138         View2D v2d;
139         
140         bSound *sound;
141         short mode, sndnr;
142         short xof, yof;
143         short flag, lock;
144         int pad2;
145 } SpaceSound;
146
147 #define SOUND_FLAGS_3D                                  (1 << 3)
148
149 /* to DNA_sound_types.h*/
150
151 #endif
152