Cleanup: Windows Manifest usage.
[blender.git] / source / blender / makesdna / DNA_sound_types.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19 /** \file
20  * \ingroup DNA
21  */
22
23 #ifndef __DNA_SOUND_TYPES_H__
24 #define __DNA_SOUND_TYPES_H__
25
26 #include "DNA_defs.h"
27 #include "DNA_ID.h"
28
29 /* stupid... could easily be solved */
30 #include "DNA_view2d_types.h"
31
32 struct Ipo;
33 struct PackedFile;
34
35 typedef struct bSound {
36   ID id;
37
38   /**
39    * The path to the sound file.
40    */
41   /** 1024 = FILE_MAX. */
42   char name[1024];
43
44   /**
45    * The packed file.
46    */
47   struct PackedFile *packedfile;
48
49   /**
50    * The handle for audaspace.
51    */
52   void *handle;
53
54   /**
55    * Deprecated; used for loading pre 2.5 files.
56    */
57   struct PackedFile *newpackedfile;
58   struct Ipo *ipo;
59
60   float volume;
61   float attenuation;
62   float pitch;
63   float min_gain;
64   float max_gain;
65   float distance;
66   short flags;
67   /** Runtime only, always reset in readfile. */
68   short tags;
69   char _pad[4];
70
71   /* unused currently
72   int type;
73   struct bSound *child_sound; */
74
75   /**
76    * The audaspace handle for cache.
77    */
78   void *cache;
79
80   /**
81    * Waveform display data.
82    */
83   void *waveform;
84
85   /**
86    * The audaspace handle that should actually be played back.
87    * Should be cache if cache != NULL; otherwise it's handle
88    */
89   void *playback_handle;
90
91   /** Spin-lock for asynchronous loading of sounds. */
92   void *spinlock;
93   /* XXX unused currently (SOUND_TYPE_LIMITER) */
94   /* float start, end; */
95 } bSound;
96
97 /* XXX unused currently */
98 #if 0
99 typedef enum eSound_Type {
100   SOUND_TYPE_INVALID = -1,
101   SOUND_TYPE_FILE = 0,
102   SOUND_TYPE_BUFFER = 1,
103   SOUND_TYPE_LIMITER = 2,
104 } eSound_Type;
105 #endif
106
107 /* spacesound->flag */
108 enum {
109   SND_DRAWFRAMES = 1,
110   SND_CFRA_NUM = 2,
111 };
112
113 /* bSound->flags */
114 enum {
115 #ifdef DNA_DEPRECATED
116   /* deprecated! used for sound actuator loading */
117   SOUND_FLAGS_3D = (1 << 3),
118 #endif
119   SOUND_FLAGS_CACHING = (1 << 4),
120   SOUND_FLAGS_MONO = (1 << 5),
121 };
122
123 /* bSound->tags */
124 enum {
125   /* Do not free/reset waveform on sound load, only used by undo code. */
126   SOUND_TAGS_WAVEFORM_NO_RELOAD = 1 << 0,
127   SOUND_TAGS_WAVEFORM_LOADING = (1 << 6),
128 };
129
130 /* to DNA_sound_types.h*/
131
132 #endif