YSE sound engine  1.0
cross platform sound engine
 All Classes Namespaces Functions Pages
enums.hpp
1 /*
2  ==============================================================================
3 
4  enums.hpp
5  Created: 27 Jan 2014 7:17:10pm
6  Author: yvan
7 
8  ==============================================================================
9 */
10 
11 #ifndef ENUMS_HPP_INCLUDED
12 #define ENUMS_HPP_INCLUDED
13 
14 namespace YSE {
15 
16  // basic output configurations
17  enum CHANNEL_TYPE {
18  CT_AUTO, // will pick stereo when possible
19  CT_MONO,
20  CT_STEREO,
21  CT_QUAD,
22  CT_51,
23  CT_51SIDE,
24  CT_61,
25  CT_71,
26  CT_CUSTOM, // custom type, you need to set speaker positions yourself if you choose this
27  };
28 
29  enum REVERB_PRESET {
30  REVERB_OFF,
31  REVERB_GENERIC,
32  REVERB_PADDED,
33  REVERB_ROOM,
34  REVERB_BATHROOM,
35  REVERB_STONEROOM,
36  REVERB_LARGEROOM,
37  REVERB_HALL,
38  REVERB_CAVE,
39  //REVERB_ARENA ,
40  //REVERB_HANGAR ,
41  //REVERB_CARPETTEDHALLWAY ,
42  //REVERB_HALLWAY ,
43  //REVERB_STONECORRICODOR ,
44  //REVERB_ALLEY ,
45  //REVERB_FOREST ,
46  //REVERB_CITY ,
47  //REVERB_MOUNTAINS ,
48  //REVERB_QUARRY ,
49  //REVERB_PLAIN ,
50  //REVERB_PARKINGLOT ,
51  REVERB_SEWERPIPE,
52  REVERB_UNDERWATER,
53  };
54 
55  enum SOUND_STATUS {
56  SS_STOPPED,
57  SS_PAUSED,
58  SS_PLAYING,
59  SS_PLAYING_FULL_VOLUME,
60  SS_WANTSTOPLAY,
61  SS_WANTSTOPAUSE,
62  SS_WANTSTOSTOP,
63  SS_WANTSTORESTART,
64  };
65 
66  // for internal use by sound and soundimplementation
67  enum SOUND_INTENT {
68  SI_NONE,
69  SI_PLAY,
70  SI_STOP,
71  SI_PAUSE,
72  SI_TOGGLE,
73  SI_RESTART,
74  };
75 
76  // this should replace the specific sound & channel implementation states
77  enum OBJECT_IMPLEMENTATION_STATE {
78  OBJECT_CONSTRUCTED, // the object exists
79  OBJECT_CREATED, // create function is done
80  OBJECT_SETUP, // object setup is done
81  OBJECT_READY, // ready for use
82  OBJECT_DONE, // flag for release
83  OBJECT_RELEASE, // flagged for release from inUse list
84  OBJECT_DELETE, // flagged for deletion from implementations list
85  };
86 
87  enum SOUND_IMPLEMENTATION_STATE {
88  SIS_CONSTRUCTED, // the object exists
89  SIS_CREATED, // create function is done
90  SIS_LOADED, // file is loaded
91  SIS_READY, // ready for play
92  SIS_DONE, // fade and flag for release if done
93  SIS_RELEASE, // flagged for release from inUse list
94  SIS_DELETE, // flagged for deletion from implementations list
95  };
96 
97 
98  enum CHANNEL_IMPLEMENTATION_STATE {
99  CIS_CONSTRUCTED, // the object exists
100  CIS_CREATED, // create function is done
101  CIS_SETUP, // the setup function has run
102  CIS_READY, // the object is ready for use
103  CIS_DONE, // sounds should be moved to parent channel
104  CIS_RELEASE, // flagged for release from inUse list
105  CIS_DELETE, // flagged for deletion from implementations list
106  };
107 
108 
109  // used by utils/error.hpp
110  enum ERROR_LEVEL {
111  EL_NONE,
112  EL_ERROR,
113  EL_WARNING,
114  EL_DEBUG,
115  };
116 
117  // used by utils/error.hpp
118  enum ERROR_CODE {
119  E_ERROR_MESSAGES, // possible errors:
120  E_ERROR, // general error
121  E_MUTEX_UNSTABLE, // the audio thread locking has become unstable
122  E_AUDIODEVICE, // Audio device error: + message
123  E_FILE_BYTE_COUNT, // Soundfile has wrong size
124  E_FILEREADER, // Filereader error: + message
125  E_TRACK_NOT_STARTED, // Unable to start a music track
126  E_TRACK_TIMER_STOP, // Could not stop track timer
127  E_APP_MESSAGE, // log message from the client app
128 
129  E_WARNING_MESSAGES, // possible warnings:
130  E_WARNING, // general warning
131  E_FILE_NOT_FOUND, // soundfile not found
132  E_FILE_ERROR, // Error while loading file: + mesage
133  E_SOUND_OBJECT_IN_USE, // Sound object already in use when create was called
134  E_CHANNEL_OBJECT_IN_USE, // Channel object already in use when create was called
135  E_SOUND_OBJECT_NO_INIT, // Sound object used without creating it first
136  E_REVERB_NO_INIT, // Reverb object used without creating it first
137 
138  E_DEBUG_MESSAGES, // possible debug messages:
139  E_DEBUG, // general debug message
140  E_SOUND_ADDED, // Sound added to system
141  E_SOUND_DELETED, // Sound deleted from system
142  E_SOUND_WRONG, // Objkect error with sound: + message
143  };
144 
145  // use these when creating custom file callback functions
146  enum FILEPOINT {
147  FP_CURRENT,
148  FP_START,
149  FP_END,
150  };
151 
152  // used by biquad filter
153  enum BQ_TYPE {
154  BQ_LOWPASS,
155  BQ_HIGHPASS,
156  BQ_BANDPASS,
157  BQ_NOTCH,
158  BQ_PEAK,
159  BQ_LOWSHELF,
160  BQ_HIGHSHELF,
161  };
162 
163  namespace NOTE { // don't let these clutter up the interface
164  enum MIDI_PITCH {
165  CM1, // 0 -- C minus 1
166  CSM1, // 1 -- S means sharp, F means flat
167  DFM1 = 1,
168  DM1, // 2
169  DSM1, // 3
170  EFM1 = 3,
171  EM1, // 4
172  FM1, // 5
173  FSM1, // 6
174  GFM1 = 6,
175  GM1, // 7
176  GSM1, // 8
177  AFM1 = 8,
178  AM1, // 9
179  ASM1, // 10
180  BFM1 = 10,
181  BM1, // 11
182  C0, // 12 -- C 0
183  CS0, // 13
184  DF0 = 13,
185  D0, // 14
186  DS0, // 15
187  EF0 = 15,
188  E0, // 16
189  F0, // 17
190  FS0, // 18
191  GF0 = 18,
192  G0, // 19
193  GS0, // 20
194  AF0 = 20,
195  A0, // 21
196  AS0, // 22
197  BF0 = 22,
198  B0, // 23
199  C1, // 24 -- C 1
200  CS1, // 25
201  DF1 = 25,
202  D1, // 26
203  DS1, // 27
204  EF1 = 27,
205  E1, // 28
206  F1, // 29
207  FS1, // 30
208  GF1 = 30,
209  G1, // 31
210  GS1, // 32
211  AF1 = 32,
212  A1, // 33
213  AS1, // 34
214  BF1 = 34,
215  B1, // 35
216  C2, // 36 -- C 2
217  CS2, // 37
218  DF2 = 37,
219  D2, // 38
220  DS2, // 39
221  EF2 = 39,
222  E2, // 40
223  F2, // 41
224  FS2, // 42
225  GF2 = 42,
226  G2, // 43
227  GS2, // 44
228  AF2 = 44,
229  A2, // 45
230  AS2, // 46
231  BF2 = 46,
232  B2, // 47
233  C3, // 48 -- C 3
234  CS3, // 49
235  DF3 = 49,
236  D3, // 50
237  DS3, // 51
238  EF3 = 51,
239  E3, // 52
240  F3, // 53
241  FS3, // 54
242  GF3 = 54,
243  G3, // 55
244  GS3, // 56
245  AF3 = 56,
246  A3, // 57
247  AS3, // 58
248  BF3 = 58,
249  B3, // 59
250  C4, // 60 -- C 4
251  CS4, // 61
252  DF4 = 61,
253  D4, // 62
254  DS4, // 63
255  EF4 = 63,
256  E4, // 64
257  F4, // 65
258  FS4, // 66
259  GF4 = 66,
260  G4, // 67
261  GS4, // 68
262  AF4 = 68,
263  A4, // 69
264  AS4, // 70
265  BF4 = 70,
266  B4, // 71
267  C5, // 72 -- C 5
268  CS5, // 73
269  DF5 = 73,
270  D5, // 74
271  DS5, // 75
272  EF5 = 75,
273  E5, // 76
274  F5, // 77
275  FS5, // 78
276  GF5 = 78,
277  G5, // 79
278  GS5, // 80
279  AF5 = 80,
280  A5, // 81
281  AS5, // 82
282  BF5 = 82,
283  B5, // 83
284  C6, // 84 -- C 6
285  CS6, // 85
286  DF6 = 85,
287  D6, // 86
288  DS6, // 87
289  EF6 = 87,
290  E6, // 88
291  F6, // 89
292  FS6, // 90
293  GF6 = 90,
294  G6, // 91
295  GS6, // 92
296  AF6 = 92,
297  A6, // 93
298  AS6, // 94
299  BF6 = 94,
300  B6, // 95
301  C7, // 96 -- C 7
302  CS7, // 97
303  DF7 = 97,
304  D7, // 98
305  DS7, // 99
306  EF7 = 99,
307  E7, // 100
308  F7, // 101
309  FS7, // 102
310  GF7 = 102,
311  G7, // 103
312  GS7, // 104
313  AF7 = 104,
314  A7, // 105
315  AS7, // 106
316  BF7 = 106,
317  B7, // 107
318  C8, // 108 -- C 8
319  CS8, // 109
320  DF8 = 109,
321  D8, // 110
322  DS8, // 111
323  EF8 = 111,
324  E8, // 112
325  F8, // 113
326  FS8, // 114
327  GF8 = 114,
328  G8, // 115
329  GS8, // 116
330  AF8 = 116,
331  A8, // 117
332  AS8, // 118
333  BF8 = 118,
334  B8, // 119
335  C9, // 120 -- C 9
336  CS9, // 121
337  DF9 = 121,
338  D9, // 122
339  DS9, // 123
340  EF9 = 123,
341  E9, // 124
342  F9, // 125
343  FS9, // 126
344  GF9 = 126,
345  G9, // 127
346  };
347  }
348 }
349 
350 
351 
352 
353 
354 #endif // ENUMS_HPP_INCLUDED