Recreating my GSoC branch.
[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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 typedef struct Sound3D
45 {
46         float min_gain;
47         float max_gain;
48         float reference_distance;
49         float max_distance;
50         float rolloff_factor;
51         float cone_inner_angle;
52         float cone_outer_angle;
53         float cone_outer_gain;
54 } Sound3D;
55
56 typedef struct bSound {
57         ID id;
58
59         /**
60          * The path to the sound file.
61          */
62         char name[240];
63
64         /**
65          * The packed file.
66          */
67         struct PackedFile *packedfile;
68
69         /**
70          * The handle for audaspace.
71          */
72         void *handle;
73
74         /**
75          * Deprecated; used for loading pre 2.5 files.
76          */
77         struct PackedFile *newpackedfile;
78         struct Ipo *ipo;
79         float volume;
80         float attenuation;
81         float pitch;
82         float min_gain;
83         float max_gain;
84         float distance;
85         int flags;
86         int pad;
87
88 /**     currently       int type;
89         struct bSound *child_sound;*/
90
91         /**
92          * The audaspace handle for cache.
93          */
94         void *cache;
95
96         /**
97          * The audaspace handle that should actually be played back.
98          * Should be cache if cache != NULL; otherwise it's handle
99          */
100         void *playback_handle;
101
102 /**     XXX unused currently    // SOUND_TYPE_LIMITER
103         float start, end;*/
104 } bSound;
105
106 /* XXX unused currently
107 typedef enum eSound_Type {
108         SOUND_TYPE_INVALID = -1,
109         SOUND_TYPE_FILE = 0,
110         SOUND_TYPE_BUFFER,
111         SOUND_TYPE_LIMITER
112 } eSound_Type;*/
113
114 /* spacesound->flag */
115 #define SND_DRAWFRAMES  1
116 #define SND_CFRA_NUM    2
117
118 typedef struct SpaceSound {
119         struct SpaceLink *next, *prev;
120         ListBase regionbase;            /* storage of regions for inactive spaces */
121         int spacetype;
122         float blockscale;
123         struct ScrArea *area;
124         
125         View2D v2d;
126         
127         bSound *sound;
128         short mode, sndnr;
129         short xof, yof;
130         short flag, lock;
131         int pad2;
132 } SpaceSound;
133
134 #define SOUND_FLAGS_3D                                  (1 << 3)
135
136 /* to DNA_sound_types.h*/
137
138 #endif
139