1 module soloud;
2 
3 public import bindbc.soloud;
4 
5 
6 
7 private struct SoloudObject
8 {
9     public int* objhandle;
10 }
11 
12 public struct Soloud
13 {
14 
15 	public enum SDL2 = 2;
16 	public enum SDL1 = 1;
17 	public enum BACKEND_MAX = 14;
18 	public enum WINMM = 4;
19 	public enum XAUDIO2 = 5;
20 	public enum OSS = 8;
21 	public enum WASAPI = 6;
22 	public enum CLIP_ROUNDOFF = 1;
23 	public enum NULLDRIVER = 13;
24 	public enum LEFT_HANDED_3D = 4;
25 	public enum ENABLE_VISUALIZATION = 2;
26 	public enum OPENAL = 9;
27 	public enum ALSA = 7;
28 	public enum COREAUDIO = 10;
29 	public enum VITA_HOMEBREW = 12;
30 	public enum AUTO = 0;
31 	public enum PORTAUDIO = 3;
32 	public enum OPENSLES = 11;
33 
34 	public SoloudObject soloudObject;
35 	alias soloudObject this;
36 
37 	public static create()
38 	{
39 		return Soloud(SoloudObject(Soloud_create()));
40 	}
41 
42 	void free()
43 	{
44 		Soloud_destroy(objhandle);
45 	}
46 
47 	public int init(uint aFlags = CLIP_ROUNDOFF, uint aBackend = AUTO, uint aSamplerate = AUTO, uint aBufferSize = AUTO, uint aChannels = 2)
48 	{
49 		return Soloud_initEx(objhandle, aFlags, aBackend, aSamplerate, aBufferSize, aChannels);
50 	}
51 
52 	public void deinit()
53 	{
54 		Soloud_deinit(objhandle);
55 	}
56 
57 	public uint getVersion()
58 	{
59 		return Soloud_getVersion(objhandle);
60 	}
61 
62 	public const(char)* getErrorString(int aErrorCode)
63 	{
64 		return Soloud_getErrorString(objhandle, aErrorCode);
65 	}
66 
67 	public uint getBackendId()
68 	{
69 		return Soloud_getBackendId(objhandle);
70 	}
71 
72 	public const(char)* getBackendString()
73 	{
74 		return Soloud_getBackendString(objhandle);
75 	}
76 
77 	public uint getBackendChannels()
78 	{
79 		return Soloud_getBackendChannels(objhandle);
80 	}
81 
82 	public uint getBackendSamplerate()
83 	{
84 		return Soloud_getBackendSamplerate(objhandle);
85 	}
86 
87 	public uint getBackendBufferSize()
88 	{
89 		return Soloud_getBackendBufferSize(objhandle);
90 	}
91 
92 	public int setSpeakerPosition(uint aChannel, float aX, float aY, float aZ)
93 	{
94 		return Soloud_setSpeakerPosition(objhandle, aChannel, aX, aY, aZ);
95 	}
96 
97 	public int getSpeakerPosition(uint aChannel, float[] aX, float[] aY, float[] aZ)
98 	{
99 		return Soloud_getSpeakerPosition(objhandle, aChannel, aX, aY, aZ);
100 	}
101 
102 	public uint play(SoloudObject aSound, float aVolume = -1.0f, float aPan = 0.0f, int aPaused = 0, uint aBus = 0)
103 	{
104 		return Soloud_playEx(objhandle, aSound.objhandle, aVolume, aPan, aPaused, aBus);
105 	}
106 
107 	public uint playClocked(double aSoundTime, SoloudObject aSound, float aVolume = -1.0f, float aPan = 0.0f, uint aBus = 0)
108 	{
109 		return Soloud_playClockedEx(objhandle, aSoundTime, aSound.objhandle, aVolume, aPan, aBus);
110 	}
111 
112 	public uint play3d(SoloudObject aSound, float aPosX, float aPosY, float aPosZ, float aVelX = 0.0f, float aVelY = 0.0f, float aVelZ = 0.0f, float aVolume = 1.0f, int aPaused = 0, uint aBus = 0)
113 	{
114 		return Soloud_play3dEx(objhandle, aSound.objhandle, aPosX, aPosY, aPosZ, aVelX, aVelY, aVelZ, aVolume, aPaused, aBus);
115 	}
116 
117 	public uint play3dClocked(double aSoundTime, SoloudObject aSound, float aPosX, float aPosY, float aPosZ, float aVelX = 0.0f, float aVelY = 0.0f, float aVelZ = 0.0f, float aVolume = 1.0f, uint aBus = 0)
118 	{
119 		return Soloud_play3dClockedEx(objhandle, aSoundTime, aSound.objhandle, aPosX, aPosY, aPosZ, aVelX, aVelY, aVelZ, aVolume, aBus);
120 	}
121 
122 	public uint playBackground(SoloudObject aSound, float aVolume = -1.0f, int aPaused = 0, uint aBus = 0)
123 	{
124 		return Soloud_playBackgroundEx(objhandle, aSound.objhandle, aVolume, aPaused, aBus);
125 	}
126 
127 	public int seek(uint aVoiceHandle, double aSeconds)
128 	{
129 		return Soloud_seek(objhandle, aVoiceHandle, aSeconds);
130 	}
131 
132 	public void stop(uint aVoiceHandle)
133 	{
134 		Soloud_stop(objhandle, aVoiceHandle);
135 	}
136 
137 	public void stopAll()
138 	{
139 		Soloud_stopAll(objhandle);
140 	}
141 
142 	public void stopAudioSource(SoloudObject aSound)
143 	{
144 		Soloud_stopAudioSource(objhandle, aSound.objhandle);
145 	}
146 
147 	public int countAudioSource(SoloudObject aSound)
148 	{
149 		return Soloud_countAudioSource(objhandle, aSound.objhandle);
150 	}
151 
152 	public void setFilterParameter(uint aVoiceHandle, uint aFilterId, uint aAttributeId, float aValue)
153 	{
154 		Soloud_setFilterParameter(objhandle, aVoiceHandle, aFilterId, aAttributeId, aValue);
155 	}
156 
157 	public float getFilterParameter(uint aVoiceHandle, uint aFilterId, uint aAttributeId)
158 	{
159 		return Soloud_getFilterParameter(objhandle, aVoiceHandle, aFilterId, aAttributeId);
160 	}
161 
162 	public void fadeFilterParameter(uint aVoiceHandle, uint aFilterId, uint aAttributeId, float aTo, double aTime)
163 	{
164 		Soloud_fadeFilterParameter(objhandle, aVoiceHandle, aFilterId, aAttributeId, aTo, aTime);
165 	}
166 
167 	public void oscillateFilterParameter(uint aVoiceHandle, uint aFilterId, uint aAttributeId, float aFrom, float aTo, double aTime)
168 	{
169 		Soloud_oscillateFilterParameter(objhandle, aVoiceHandle, aFilterId, aAttributeId, aFrom, aTo, aTime);
170 	}
171 
172 	public double getStreamTime(uint aVoiceHandle)
173 	{
174 		return Soloud_getStreamTime(objhandle, aVoiceHandle);
175 	}
176 
177 	public double getStreamPosition(uint aVoiceHandle)
178 	{
179 		return Soloud_getStreamPosition(objhandle, aVoiceHandle);
180 	}
181 
182 	public int getPause(uint aVoiceHandle)
183 	{
184 		return Soloud_getPause(objhandle, aVoiceHandle);
185 	}
186 
187 	public float getVolume(uint aVoiceHandle)
188 	{
189 		return Soloud_getVolume(objhandle, aVoiceHandle);
190 	}
191 
192 	public float getOverallVolume(uint aVoiceHandle)
193 	{
194 		return Soloud_getOverallVolume(objhandle, aVoiceHandle);
195 	}
196 
197 	public float getPan(uint aVoiceHandle)
198 	{
199 		return Soloud_getPan(objhandle, aVoiceHandle);
200 	}
201 
202 	public float getSamplerate(uint aVoiceHandle)
203 	{
204 		return Soloud_getSamplerate(objhandle, aVoiceHandle);
205 	}
206 
207 	public int getProtectVoice(uint aVoiceHandle)
208 	{
209 		return Soloud_getProtectVoice(objhandle, aVoiceHandle);
210 	}
211 
212 	public uint getActiveVoiceCount()
213 	{
214 		return Soloud_getActiveVoiceCount(objhandle);
215 	}
216 
217 	public uint getVoiceCount()
218 	{
219 		return Soloud_getVoiceCount(objhandle);
220 	}
221 
222 	public int isValidVoiceHandle(uint aVoiceHandle)
223 	{
224 		return Soloud_isValidVoiceHandle(objhandle, aVoiceHandle);
225 	}
226 
227 	public float getRelativePlaySpeed(uint aVoiceHandle)
228 	{
229 		return Soloud_getRelativePlaySpeed(objhandle, aVoiceHandle);
230 	}
231 
232 	public float getPostClipScaler()
233 	{
234 		return Soloud_getPostClipScaler(objhandle);
235 	}
236 
237 	public float getGlobalVolume()
238 	{
239 		return Soloud_getGlobalVolume(objhandle);
240 	}
241 
242 	public uint getMaxActiveVoiceCount()
243 	{
244 		return Soloud_getMaxActiveVoiceCount(objhandle);
245 	}
246 
247 	public int getLooping(uint aVoiceHandle)
248 	{
249 		return Soloud_getLooping(objhandle, aVoiceHandle);
250 	}
251 
252 	public double getLoopPoint(uint aVoiceHandle)
253 	{
254 		return Soloud_getLoopPoint(objhandle, aVoiceHandle);
255 	}
256 
257 	public void setLoopPoint(uint aVoiceHandle, double aLoopPoint)
258 	{
259 		Soloud_setLoopPoint(objhandle, aVoiceHandle, aLoopPoint);
260 	}
261 
262 	public void setLooping(uint aVoiceHandle, int aLooping)
263 	{
264 		Soloud_setLooping(objhandle, aVoiceHandle, aLooping);
265 	}
266 
267 	public int setMaxActiveVoiceCount(uint aVoiceCount)
268 	{
269 		return Soloud_setMaxActiveVoiceCount(objhandle, aVoiceCount);
270 	}
271 
272 	public void setInaudibleBehavior(uint aVoiceHandle, int aMustTick, int aKill)
273 	{
274 		Soloud_setInaudibleBehavior(objhandle, aVoiceHandle, aMustTick, aKill);
275 	}
276 
277 	public void setGlobalVolume(float aVolume)
278 	{
279 		Soloud_setGlobalVolume(objhandle, aVolume);
280 	}
281 
282 	public void setPostClipScaler(float aScaler)
283 	{
284 		Soloud_setPostClipScaler(objhandle, aScaler);
285 	}
286 
287 	public void setPause(uint aVoiceHandle, int aPause)
288 	{
289 		Soloud_setPause(objhandle, aVoiceHandle, aPause);
290 	}
291 
292 	public void setPauseAll(int aPause)
293 	{
294 		Soloud_setPauseAll(objhandle, aPause);
295 	}
296 
297 	public int setRelativePlaySpeed(uint aVoiceHandle, float aSpeed)
298 	{
299 		return Soloud_setRelativePlaySpeed(objhandle, aVoiceHandle, aSpeed);
300 	}
301 
302 	public void setProtectVoice(uint aVoiceHandle, int aProtect)
303 	{
304 		Soloud_setProtectVoice(objhandle, aVoiceHandle, aProtect);
305 	}
306 
307 	public void setSamplerate(uint aVoiceHandle, float aSamplerate)
308 	{
309 		Soloud_setSamplerate(objhandle, aVoiceHandle, aSamplerate);
310 	}
311 
312 	public void setPan(uint aVoiceHandle, float aPan)
313 	{
314 		Soloud_setPan(objhandle, aVoiceHandle, aPan);
315 	}
316 
317 	public void setPanAbsolute(uint aVoiceHandle, float aLVolume, float aRVolume, float aLBVolume = 0, float aRBVolume = 0, float aCVolume = 0, float aSVolume = 0)
318 	{
319 		Soloud_setPanAbsoluteEx(objhandle, aVoiceHandle, aLVolume, aRVolume, aLBVolume, aRBVolume, aCVolume, aSVolume);
320 	}
321 
322 	public void setVolume(uint aVoiceHandle, float aVolume)
323 	{
324 		Soloud_setVolume(objhandle, aVoiceHandle, aVolume);
325 	}
326 
327 	public void setDelaySamples(uint aVoiceHandle, uint aSamples)
328 	{
329 		Soloud_setDelaySamples(objhandle, aVoiceHandle, aSamples);
330 	}
331 
332 	public void fadeVolume(uint aVoiceHandle, float aTo, double aTime)
333 	{
334 		Soloud_fadeVolume(objhandle, aVoiceHandle, aTo, aTime);
335 	}
336 
337 	public void fadePan(uint aVoiceHandle, float aTo, double aTime)
338 	{
339 		Soloud_fadePan(objhandle, aVoiceHandle, aTo, aTime);
340 	}
341 
342 	public void fadeRelativePlaySpeed(uint aVoiceHandle, float aTo, double aTime)
343 	{
344 		Soloud_fadeRelativePlaySpeed(objhandle, aVoiceHandle, aTo, aTime);
345 	}
346 
347 	public void fadeGlobalVolume(float aTo, double aTime)
348 	{
349 		Soloud_fadeGlobalVolume(objhandle, aTo, aTime);
350 	}
351 
352 	public void schedulePause(uint aVoiceHandle, double aTime)
353 	{
354 		Soloud_schedulePause(objhandle, aVoiceHandle, aTime);
355 	}
356 
357 	public void scheduleStop(uint aVoiceHandle, double aTime)
358 	{
359 		Soloud_scheduleStop(objhandle, aVoiceHandle, aTime);
360 	}
361 
362 	public void oscillateVolume(uint aVoiceHandle, float aFrom, float aTo, double aTime)
363 	{
364 		Soloud_oscillateVolume(objhandle, aVoiceHandle, aFrom, aTo, aTime);
365 	}
366 
367 	public void oscillatePan(uint aVoiceHandle, float aFrom, float aTo, double aTime)
368 	{
369 		Soloud_oscillatePan(objhandle, aVoiceHandle, aFrom, aTo, aTime);
370 	}
371 
372 	public void oscillateRelativePlaySpeed(uint aVoiceHandle, float aFrom, float aTo, double aTime)
373 	{
374 		Soloud_oscillateRelativePlaySpeed(objhandle, aVoiceHandle, aFrom, aTo, aTime);
375 	}
376 
377 	public void oscillateGlobalVolume(float aFrom, float aTo, double aTime)
378 	{
379 		Soloud_oscillateGlobalVolume(objhandle, aFrom, aTo, aTime);
380 	}
381 
382 	public void setGlobalFilter(uint aFilterId, SoloudObject aFilter)
383 	{
384 		Soloud_setGlobalFilter(objhandle, aFilterId, aFilter.objhandle);
385 	}
386 
387 	public void setVisualizationEnable(int aEnable)
388 	{
389 		Soloud_setVisualizationEnable(objhandle, aEnable);
390 	}
391 
392 	public float[] calcFFT()
393 	{
394 		return Soloud_calcFFT(objhandle);
395 	}
396 
397 	public float[] getWave()
398 	{
399 		return Soloud_getWave(objhandle);
400 	}
401 
402 	public float getApproximateVolume(uint aChannel)
403 	{
404 		return Soloud_getApproximateVolume(objhandle, aChannel);
405 	}
406 
407 	public uint getLoopCount(uint aVoiceHandle)
408 	{
409 		return Soloud_getLoopCount(objhandle, aVoiceHandle);
410 	}
411 
412 	public float getInfo(uint aVoiceHandle, uint aInfoKey)
413 	{
414 		return Soloud_getInfo(objhandle, aVoiceHandle, aInfoKey);
415 	}
416 
417 	public uint createVoiceGroup()
418 	{
419 		return Soloud_createVoiceGroup(objhandle);
420 	}
421 
422 	public int destroyVoiceGroup(uint aVoiceGroupHandle)
423 	{
424 		return Soloud_destroyVoiceGroup(objhandle, aVoiceGroupHandle);
425 	}
426 
427 	public int addVoiceToGroup(uint aVoiceGroupHandle, uint aVoiceHandle)
428 	{
429 		return Soloud_addVoiceToGroup(objhandle, aVoiceGroupHandle, aVoiceHandle);
430 	}
431 
432 	public int isVoiceGroup(uint aVoiceGroupHandle)
433 	{
434 		return Soloud_isVoiceGroup(objhandle, aVoiceGroupHandle);
435 	}
436 
437 	public int isVoiceGroupEmpty(uint aVoiceGroupHandle)
438 	{
439 		return Soloud_isVoiceGroupEmpty(objhandle, aVoiceGroupHandle);
440 	}
441 
442 	public void update3dAudio()
443 	{
444 		Soloud_update3dAudio(objhandle);
445 	}
446 
447 	public int set3dSoundSpeed(float aSpeed)
448 	{
449 		return Soloud_set3dSoundSpeed(objhandle, aSpeed);
450 	}
451 
452 	public float get3dSoundSpeed()
453 	{
454 		return Soloud_get3dSoundSpeed(objhandle);
455 	}
456 
457 	public void set3dListenerParameters(float aPosX, float aPosY, float aPosZ, float aAtX, float aAtY, float aAtZ, float aUpX, float aUpY, float aUpZ, float aVelocityX = 0.0f, float aVelocityY = 0.0f, float aVelocityZ = 0.0f)
458 	{
459 		Soloud_set3dListenerParametersEx(objhandle, aPosX, aPosY, aPosZ, aAtX, aAtY, aAtZ, aUpX, aUpY, aUpZ, aVelocityX, aVelocityY, aVelocityZ);
460 	}
461 
462 	public void set3dListenerPosition(float aPosX, float aPosY, float aPosZ)
463 	{
464 		Soloud_set3dListenerPosition(objhandle, aPosX, aPosY, aPosZ);
465 	}
466 
467 	public void set3dListenerAt(float aAtX, float aAtY, float aAtZ)
468 	{
469 		Soloud_set3dListenerAt(objhandle, aAtX, aAtY, aAtZ);
470 	}
471 
472 	public void set3dListenerUp(float aUpX, float aUpY, float aUpZ)
473 	{
474 		Soloud_set3dListenerUp(objhandle, aUpX, aUpY, aUpZ);
475 	}
476 
477 	public void set3dListenerVelocity(float aVelocityX, float aVelocityY, float aVelocityZ)
478 	{
479 		Soloud_set3dListenerVelocity(objhandle, aVelocityX, aVelocityY, aVelocityZ);
480 	}
481 
482 	public void set3dSourceParameters(uint aVoiceHandle, float aPosX, float aPosY, float aPosZ, float aVelocityX = 0.0f, float aVelocityY = 0.0f, float aVelocityZ = 0.0f)
483 	{
484 		Soloud_set3dSourceParametersEx(objhandle, aVoiceHandle, aPosX, aPosY, aPosZ, aVelocityX, aVelocityY, aVelocityZ);
485 	}
486 
487 	public void set3dSourcePosition(uint aVoiceHandle, float aPosX, float aPosY, float aPosZ)
488 	{
489 		Soloud_set3dSourcePosition(objhandle, aVoiceHandle, aPosX, aPosY, aPosZ);
490 	}
491 
492 	public void set3dSourceVelocity(uint aVoiceHandle, float aVelocityX, float aVelocityY, float aVelocityZ)
493 	{
494 		Soloud_set3dSourceVelocity(objhandle, aVoiceHandle, aVelocityX, aVelocityY, aVelocityZ);
495 	}
496 
497 	public void set3dSourceMinMaxDistance(uint aVoiceHandle, float aMinDistance, float aMaxDistance)
498 	{
499 		Soloud_set3dSourceMinMaxDistance(objhandle, aVoiceHandle, aMinDistance, aMaxDistance);
500 	}
501 
502 	public void set3dSourceAttenuation(uint aVoiceHandle, uint aAttenuationModel, float aAttenuationRolloffFactor)
503 	{
504 		Soloud_set3dSourceAttenuation(objhandle, aVoiceHandle, aAttenuationModel, aAttenuationRolloffFactor);
505 	}
506 
507 	public void set3dSourceDopplerFactor(uint aVoiceHandle, float aDopplerFactor)
508 	{
509 		Soloud_set3dSourceDopplerFactor(objhandle, aVoiceHandle, aDopplerFactor);
510 	}
511 
512 	public void mix(float[] aBuffer, uint aSamples)
513 	{
514 		Soloud_mix(objhandle, aBuffer, aSamples);
515 	}
516 
517 	public void mixSigned16(short[] aBuffer, uint aSamples)
518 	{
519 		Soloud_mixSigned16(objhandle, aBuffer, aSamples);
520 	}
521 
522 }
523 
524 public struct AudioAttenuator
525 {
526 
527 
528 	public SoloudObject soloudObject;
529 	alias soloudObject this;
530 
531 	public static create()
532 	{
533 		return AudioAttenuator(SoloudObject(AudioAttenuator_create()));
534 	}
535 
536 	void free()
537 	{
538 		AudioAttenuator_destroy(objhandle);
539 	}
540 
541 	public float attenuate(float aDistance, float aMinDistance, float aMaxDistance, float aRolloffFactor)
542 	{
543 		return AudioAttenuator_attenuate(objhandle, aDistance, aMinDistance, aMaxDistance, aRolloffFactor);
544 	}
545 
546 }
547 
548 public struct BassboostFilter
549 {
550 
551 	public enum BOOST = 1;
552 	public enum WET = 0;
553 
554 	public SoloudObject soloudObject;
555 	alias soloudObject this;
556 
557 	public static create()
558 	{
559 		return BassboostFilter(SoloudObject(BassboostFilter_create()));
560 	}
561 
562 	void free()
563 	{
564 		BassboostFilter_destroy(objhandle);
565 	}
566 
567 	public int setParams(float aBoost)
568 	{
569 		return BassboostFilter_setParams(objhandle, aBoost);
570 	}
571 
572 }
573 
574 public struct BiquadResonantFilter
575 {
576 
577 	public enum SAMPLERATE = 1;
578 	public enum FREQUENCY = 2;
579 	public enum RESONANCE = 3;
580 	public enum BANDPASS = 3;
581 	public enum LOWPASS = 1;
582 	public enum HIGHPASS = 2;
583 	public enum NONE = 0;
584 	public enum WET = 0;
585 
586 	public SoloudObject soloudObject;
587 	alias soloudObject this;
588 
589 	public static create()
590 	{
591 		return BiquadResonantFilter(SoloudObject(BiquadResonantFilter_create()));
592 	}
593 
594 	void free()
595 	{
596 		BiquadResonantFilter_destroy(objhandle);
597 	}
598 
599 	public int setParams(int aType, float aSampleRate, float aFrequency, float aResonance)
600 	{
601 		return BiquadResonantFilter_setParams(objhandle, aType, aSampleRate, aFrequency, aResonance);
602 	}
603 
604 }
605 
606 public struct Bus
607 {
608 
609 
610 	public SoloudObject soloudObject;
611 	alias soloudObject this;
612 
613 	public static create()
614 	{
615 		return Bus(SoloudObject(Bus_create()));
616 	}
617 
618 	void free()
619 	{
620 		Bus_destroy(objhandle);
621 	}
622 
623 	public void setFilter(uint aFilterId, SoloudObject aFilter)
624 	{
625 		Bus_setFilter(objhandle, aFilterId, aFilter.objhandle);
626 	}
627 
628 	public uint play(SoloudObject aSound, float aVolume = 1.0f, float aPan = 0.0f, int aPaused = 0)
629 	{
630 		return Bus_playEx(objhandle, aSound.objhandle, aVolume, aPan, aPaused);
631 	}
632 
633 	public uint playClocked(double aSoundTime, SoloudObject aSound, float aVolume = 1.0f, float aPan = 0.0f)
634 	{
635 		return Bus_playClockedEx(objhandle, aSoundTime, aSound.objhandle, aVolume, aPan);
636 	}
637 
638 	public uint play3d(SoloudObject aSound, float aPosX, float aPosY, float aPosZ, float aVelX = 0.0f, float aVelY = 0.0f, float aVelZ = 0.0f, float aVolume = 1.0f, int aPaused = 0)
639 	{
640 		return Bus_play3dEx(objhandle, aSound.objhandle, aPosX, aPosY, aPosZ, aVelX, aVelY, aVelZ, aVolume, aPaused);
641 	}
642 
643 	public uint play3dClocked(double aSoundTime, SoloudObject aSound, float aPosX, float aPosY, float aPosZ, float aVelX = 0.0f, float aVelY = 0.0f, float aVelZ = 0.0f, float aVolume = 1.0f)
644 	{
645 		return Bus_play3dClockedEx(objhandle, aSoundTime, aSound.objhandle, aPosX, aPosY, aPosZ, aVelX, aVelY, aVelZ, aVolume);
646 	}
647 
648 	public int setChannels(uint aChannels)
649 	{
650 		return Bus_setChannels(objhandle, aChannels);
651 	}
652 
653 	public void setVisualizationEnable(int aEnable)
654 	{
655 		Bus_setVisualizationEnable(objhandle, aEnable);
656 	}
657 
658 	public float[] calcFFT()
659 	{
660 		return Bus_calcFFT(objhandle);
661 	}
662 
663 	public float[] getWave()
664 	{
665 		return Bus_getWave(objhandle);
666 	}
667 
668 	public float getApproximateVolume(uint aChannel)
669 	{
670 		return Bus_getApproximateVolume(objhandle, aChannel);
671 	}
672 
673 	public void setVolume(float aVolume)
674 	{
675 		Bus_setVolume(objhandle, aVolume);
676 	}
677 
678 	public void setLooping(int aLoop)
679 	{
680 		Bus_setLooping(objhandle, aLoop);
681 	}
682 
683 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
684 	{
685 		Bus_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
686 	}
687 
688 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
689 	{
690 		Bus_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
691 	}
692 
693 	public void set3dDopplerFactor(float aDopplerFactor)
694 	{
695 		Bus_set3dDopplerFactor(objhandle, aDopplerFactor);
696 	}
697 
698 	public void set3dListenerRelative(int aListenerRelative)
699 	{
700 		Bus_set3dListenerRelative(objhandle, aListenerRelative);
701 	}
702 
703 	public void set3dDistanceDelay(int aDistanceDelay)
704 	{
705 		Bus_set3dDistanceDelay(objhandle, aDistanceDelay);
706 	}
707 
708 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
709 	{
710 		Bus_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
711 	}
712 
713 	public void set3dAttenuator(SoloudObject aAttenuator)
714 	{
715 		Bus_set3dAttenuator(objhandle, aAttenuator.objhandle);
716 	}
717 
718 	public void setInaudibleBehavior(int aMustTick, int aKill)
719 	{
720 		Bus_setInaudibleBehavior(objhandle, aMustTick, aKill);
721 	}
722 
723 	public void setLoopPoint(double aLoopPoint)
724 	{
725 		Bus_setLoopPoint(objhandle, aLoopPoint);
726 	}
727 
728 	public double getLoopPoint()
729 	{
730 		return Bus_getLoopPoint(objhandle);
731 	}
732 
733 	public void stop()
734 	{
735 		Bus_stop(objhandle);
736 	}
737 
738 }
739 
740 public struct DCRemovalFilter
741 {
742 
743 
744 	public SoloudObject soloudObject;
745 	alias soloudObject this;
746 
747 	public static create()
748 	{
749 		return DCRemovalFilter(SoloudObject(DCRemovalFilter_create()));
750 	}
751 
752 	void free()
753 	{
754 		DCRemovalFilter_destroy(objhandle);
755 	}
756 
757 	public int setParams(float aLength = 0.1f)
758 	{
759 		return DCRemovalFilter_setParamsEx(objhandle, aLength);
760 	}
761 
762 }
763 
764 public struct EchoFilter
765 {
766 
767 
768 	public SoloudObject soloudObject;
769 	alias soloudObject this;
770 
771 	public static create()
772 	{
773 		return EchoFilter(SoloudObject(EchoFilter_create()));
774 	}
775 
776 	void free()
777 	{
778 		EchoFilter_destroy(objhandle);
779 	}
780 
781 	public int setParams(float aDelay, float aDecay = 0.7f, float aFilter = 0.0f)
782 	{
783 		return EchoFilter_setParamsEx(objhandle, aDelay, aDecay, aFilter);
784 	}
785 
786 }
787 
788 public struct FFTFilter
789 {
790 
791 
792 	public SoloudObject soloudObject;
793 	alias soloudObject this;
794 
795 	public static create()
796 	{
797 		return FFTFilter(SoloudObject(FFTFilter_create()));
798 	}
799 
800 	void free()
801 	{
802 		FFTFilter_destroy(objhandle);
803 	}
804 
805 }
806 
807 public struct FlangerFilter
808 {
809 
810 	public enum FREQ = 2;
811 	public enum WET = 0;
812 	public enum DELAY = 1;
813 
814 	public SoloudObject soloudObject;
815 	alias soloudObject this;
816 
817 	public static create()
818 	{
819 		return FlangerFilter(SoloudObject(FlangerFilter_create()));
820 	}
821 
822 	void free()
823 	{
824 		FlangerFilter_destroy(objhandle);
825 	}
826 
827 	public int setParams(float aDelay, float aFreq)
828 	{
829 		return FlangerFilter_setParams(objhandle, aDelay, aFreq);
830 	}
831 
832 }
833 
834 public struct LofiFilter
835 {
836 
837 	public enum SAMPLERATE = 1;
838 	public enum BITDEPTH = 2;
839 	public enum WET = 0;
840 
841 	public SoloudObject soloudObject;
842 	alias soloudObject this;
843 
844 	public static create()
845 	{
846 		return LofiFilter(SoloudObject(LofiFilter_create()));
847 	}
848 
849 	void free()
850 	{
851 		LofiFilter_destroy(objhandle);
852 	}
853 
854 	public int setParams(float aSampleRate, float aBitdepth)
855 	{
856 		return LofiFilter_setParams(objhandle, aSampleRate, aBitdepth);
857 	}
858 
859 }
860 
861 public struct Monotone
862 {
863 
864 	public enum SIN = 2;
865 	public enum SQUARE = 0;
866 	public enum SAWSIN = 3;
867 	public enum SAW = 1;
868 
869 	public SoloudObject soloudObject;
870 	alias soloudObject this;
871 
872 	public static create()
873 	{
874 		return Monotone(SoloudObject(Monotone_create()));
875 	}
876 
877 	void free()
878 	{
879 		Monotone_destroy(objhandle);
880 	}
881 
882 	public int setParams(int aHardwareChannels, int aWaveform = SQUARE)
883 	{
884 		return Monotone_setParamsEx(objhandle, aHardwareChannels, aWaveform);
885 	}
886 
887 	public int load(const(char)* aFilename)
888 	{
889 		return Monotone_load(objhandle, aFilename);
890 	}
891 
892 	public int loadMem(ubyte* aMem, uint aLength, int aCopy = false, int aTakeOwnership = true)
893 	{
894 		return Monotone_loadMemEx(objhandle, aMem, aLength, aCopy, aTakeOwnership);
895 	}
896 
897 	public int loadFile(SoloudObject aFile)
898 	{
899 		return Monotone_loadFile(objhandle, aFile.objhandle);
900 	}
901 
902 	public void setVolume(float aVolume)
903 	{
904 		Monotone_setVolume(objhandle, aVolume);
905 	}
906 
907 	public void setLooping(int aLoop)
908 	{
909 		Monotone_setLooping(objhandle, aLoop);
910 	}
911 
912 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
913 	{
914 		Monotone_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
915 	}
916 
917 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
918 	{
919 		Monotone_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
920 	}
921 
922 	public void set3dDopplerFactor(float aDopplerFactor)
923 	{
924 		Monotone_set3dDopplerFactor(objhandle, aDopplerFactor);
925 	}
926 
927 	public void set3dListenerRelative(int aListenerRelative)
928 	{
929 		Monotone_set3dListenerRelative(objhandle, aListenerRelative);
930 	}
931 
932 	public void set3dDistanceDelay(int aDistanceDelay)
933 	{
934 		Monotone_set3dDistanceDelay(objhandle, aDistanceDelay);
935 	}
936 
937 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
938 	{
939 		Monotone_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
940 	}
941 
942 	public void set3dAttenuator(SoloudObject aAttenuator)
943 	{
944 		Monotone_set3dAttenuator(objhandle, aAttenuator.objhandle);
945 	}
946 
947 	public void setInaudibleBehavior(int aMustTick, int aKill)
948 	{
949 		Monotone_setInaudibleBehavior(objhandle, aMustTick, aKill);
950 	}
951 
952 	public void setLoopPoint(double aLoopPoint)
953 	{
954 		Monotone_setLoopPoint(objhandle, aLoopPoint);
955 	}
956 
957 	public double getLoopPoint()
958 	{
959 		return Monotone_getLoopPoint(objhandle);
960 	}
961 
962 	public void setFilter(uint aFilterId, SoloudObject aFilter)
963 	{
964 		Monotone_setFilter(objhandle, aFilterId, aFilter.objhandle);
965 	}
966 
967 	public void stop()
968 	{
969 		Monotone_stop(objhandle);
970 	}
971 
972 }
973 
974 public struct Openmpt
975 {
976 
977 
978 	public SoloudObject soloudObject;
979 	alias soloudObject this;
980 
981 	public static create()
982 	{
983 		return Openmpt(SoloudObject(Openmpt_create()));
984 	}
985 
986 	void free()
987 	{
988 		Openmpt_destroy(objhandle);
989 	}
990 
991 	public int load(const(char)* aFilename)
992 	{
993 		return Openmpt_load(objhandle, aFilename);
994 	}
995 
996 	public int loadMem(ubyte* aMem, uint aLength, int aCopy = false, int aTakeOwnership = true)
997 	{
998 		return Openmpt_loadMemEx(objhandle, aMem, aLength, aCopy, aTakeOwnership);
999 	}
1000 
1001 	public int loadFile(SoloudObject aFile)
1002 	{
1003 		return Openmpt_loadFile(objhandle, aFile.objhandle);
1004 	}
1005 
1006 	public void setVolume(float aVolume)
1007 	{
1008 		Openmpt_setVolume(objhandle, aVolume);
1009 	}
1010 
1011 	public void setLooping(int aLoop)
1012 	{
1013 		Openmpt_setLooping(objhandle, aLoop);
1014 	}
1015 
1016 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1017 	{
1018 		Openmpt_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1019 	}
1020 
1021 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1022 	{
1023 		Openmpt_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1024 	}
1025 
1026 	public void set3dDopplerFactor(float aDopplerFactor)
1027 	{
1028 		Openmpt_set3dDopplerFactor(objhandle, aDopplerFactor);
1029 	}
1030 
1031 	public void set3dListenerRelative(int aListenerRelative)
1032 	{
1033 		Openmpt_set3dListenerRelative(objhandle, aListenerRelative);
1034 	}
1035 
1036 	public void set3dDistanceDelay(int aDistanceDelay)
1037 	{
1038 		Openmpt_set3dDistanceDelay(objhandle, aDistanceDelay);
1039 	}
1040 
1041 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1042 	{
1043 		Openmpt_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1044 	}
1045 
1046 	public void set3dAttenuator(SoloudObject aAttenuator)
1047 	{
1048 		Openmpt_set3dAttenuator(objhandle, aAttenuator.objhandle);
1049 	}
1050 
1051 	public void setInaudibleBehavior(int aMustTick, int aKill)
1052 	{
1053 		Openmpt_setInaudibleBehavior(objhandle, aMustTick, aKill);
1054 	}
1055 
1056 	public void setLoopPoint(double aLoopPoint)
1057 	{
1058 		Openmpt_setLoopPoint(objhandle, aLoopPoint);
1059 	}
1060 
1061 	public double getLoopPoint()
1062 	{
1063 		return Openmpt_getLoopPoint(objhandle);
1064 	}
1065 
1066 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1067 	{
1068 		Openmpt_setFilter(objhandle, aFilterId, aFilter.objhandle);
1069 	}
1070 
1071 	public void stop()
1072 	{
1073 		Openmpt_stop(objhandle);
1074 	}
1075 
1076 }
1077 
1078 public struct Queue
1079 {
1080 
1081 
1082 	public SoloudObject soloudObject;
1083 	alias soloudObject this;
1084 
1085 	public static create()
1086 	{
1087 		return Queue(SoloudObject(Queue_create()));
1088 	}
1089 
1090 	void free()
1091 	{
1092 		Queue_destroy(objhandle);
1093 	}
1094 
1095 	public int play(SoloudObject aSound)
1096 	{
1097 		return Queue_play(objhandle, aSound.objhandle);
1098 	}
1099 
1100 	public uint getQueueCount()
1101 	{
1102 		return Queue_getQueueCount(objhandle);
1103 	}
1104 
1105 	public int isCurrentlyPlaying(SoloudObject aSound)
1106 	{
1107 		return Queue_isCurrentlyPlaying(objhandle, aSound.objhandle);
1108 	}
1109 
1110 	public int setParamsFromAudioSource(SoloudObject aSound)
1111 	{
1112 		return Queue_setParamsFromAudioSource(objhandle, aSound.objhandle);
1113 	}
1114 
1115 	public int setParams(float aSamplerate, uint aChannels = 2)
1116 	{
1117 		return Queue_setParamsEx(objhandle, aSamplerate, aChannels);
1118 	}
1119 
1120 	public void setVolume(float aVolume)
1121 	{
1122 		Queue_setVolume(objhandle, aVolume);
1123 	}
1124 
1125 	public void setLooping(int aLoop)
1126 	{
1127 		Queue_setLooping(objhandle, aLoop);
1128 	}
1129 
1130 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1131 	{
1132 		Queue_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1133 	}
1134 
1135 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1136 	{
1137 		Queue_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1138 	}
1139 
1140 	public void set3dDopplerFactor(float aDopplerFactor)
1141 	{
1142 		Queue_set3dDopplerFactor(objhandle, aDopplerFactor);
1143 	}
1144 
1145 	public void set3dListenerRelative(int aListenerRelative)
1146 	{
1147 		Queue_set3dListenerRelative(objhandle, aListenerRelative);
1148 	}
1149 
1150 	public void set3dDistanceDelay(int aDistanceDelay)
1151 	{
1152 		Queue_set3dDistanceDelay(objhandle, aDistanceDelay);
1153 	}
1154 
1155 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1156 	{
1157 		Queue_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1158 	}
1159 
1160 	public void set3dAttenuator(SoloudObject aAttenuator)
1161 	{
1162 		Queue_set3dAttenuator(objhandle, aAttenuator.objhandle);
1163 	}
1164 
1165 	public void setInaudibleBehavior(int aMustTick, int aKill)
1166 	{
1167 		Queue_setInaudibleBehavior(objhandle, aMustTick, aKill);
1168 	}
1169 
1170 	public void setLoopPoint(double aLoopPoint)
1171 	{
1172 		Queue_setLoopPoint(objhandle, aLoopPoint);
1173 	}
1174 
1175 	public double getLoopPoint()
1176 	{
1177 		return Queue_getLoopPoint(objhandle);
1178 	}
1179 
1180 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1181 	{
1182 		Queue_setFilter(objhandle, aFilterId, aFilter.objhandle);
1183 	}
1184 
1185 	public void stop()
1186 	{
1187 		Queue_stop(objhandle);
1188 	}
1189 
1190 }
1191 
1192 public struct RobotizeFilter
1193 {
1194 
1195 	public enum WET = 0;
1196 
1197 	public SoloudObject soloudObject;
1198 	alias soloudObject this;
1199 
1200 	public static create()
1201 	{
1202 		return RobotizeFilter(SoloudObject(RobotizeFilter_create()));
1203 	}
1204 
1205 	void free()
1206 	{
1207 		RobotizeFilter_destroy(objhandle);
1208 	}
1209 
1210 }
1211 
1212 public struct Prg
1213 {
1214 
1215 
1216 	public SoloudObject soloudObject;
1217 	alias soloudObject this;
1218 
1219 	public static create()
1220 	{
1221 		return Prg(SoloudObject(Prg_create()));
1222 	}
1223 
1224 	void free()
1225 	{
1226 		Prg_destroy(objhandle);
1227 	}
1228 
1229 	public uint rand()
1230 	{
1231 		return Prg_rand(objhandle);
1232 	}
1233 
1234 	public void srand(int aSeed)
1235 	{
1236 		Prg_srand(objhandle, aSeed);
1237 	}
1238 
1239 }
1240 
1241 public struct Sfxr
1242 {
1243 
1244 	public enum HURT = 4;
1245 	public enum LASER = 1;
1246 	public enum BLIP = 6;
1247 	public enum JUMP = 5;
1248 	public enum POWERUP = 3;
1249 	public enum COIN = 0;
1250 	public enum EXPLOSION = 2;
1251 
1252 	public SoloudObject soloudObject;
1253 	alias soloudObject this;
1254 
1255 	public static create()
1256 	{
1257 		return Sfxr(SoloudObject(Sfxr_create()));
1258 	}
1259 
1260 	void free()
1261 	{
1262 		Sfxr_destroy(objhandle);
1263 	}
1264 
1265 	public void resetParams()
1266 	{
1267 		Sfxr_resetParams(objhandle);
1268 	}
1269 
1270 	public int loadParams(const(char)* aFilename)
1271 	{
1272 		return Sfxr_loadParams(objhandle, aFilename);
1273 	}
1274 
1275 	public int loadParamsMem(ubyte* aMem, uint aLength, int aCopy = false, int aTakeOwnership = true)
1276 	{
1277 		return Sfxr_loadParamsMemEx(objhandle, aMem, aLength, aCopy, aTakeOwnership);
1278 	}
1279 
1280 	public int loadParamsFile(SoloudObject aFile)
1281 	{
1282 		return Sfxr_loadParamsFile(objhandle, aFile.objhandle);
1283 	}
1284 
1285 	public int loadPreset(int aPresetNo, int aRandSeed)
1286 	{
1287 		return Sfxr_loadPreset(objhandle, aPresetNo, aRandSeed);
1288 	}
1289 
1290 	public void setVolume(float aVolume)
1291 	{
1292 		Sfxr_setVolume(objhandle, aVolume);
1293 	}
1294 
1295 	public void setLooping(int aLoop)
1296 	{
1297 		Sfxr_setLooping(objhandle, aLoop);
1298 	}
1299 
1300 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1301 	{
1302 		Sfxr_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1303 	}
1304 
1305 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1306 	{
1307 		Sfxr_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1308 	}
1309 
1310 	public void set3dDopplerFactor(float aDopplerFactor)
1311 	{
1312 		Sfxr_set3dDopplerFactor(objhandle, aDopplerFactor);
1313 	}
1314 
1315 	public void set3dListenerRelative(int aListenerRelative)
1316 	{
1317 		Sfxr_set3dListenerRelative(objhandle, aListenerRelative);
1318 	}
1319 
1320 	public void set3dDistanceDelay(int aDistanceDelay)
1321 	{
1322 		Sfxr_set3dDistanceDelay(objhandle, aDistanceDelay);
1323 	}
1324 
1325 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1326 	{
1327 		Sfxr_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1328 	}
1329 
1330 	public void set3dAttenuator(SoloudObject aAttenuator)
1331 	{
1332 		Sfxr_set3dAttenuator(objhandle, aAttenuator.objhandle);
1333 	}
1334 
1335 	public void setInaudibleBehavior(int aMustTick, int aKill)
1336 	{
1337 		Sfxr_setInaudibleBehavior(objhandle, aMustTick, aKill);
1338 	}
1339 
1340 	public void setLoopPoint(double aLoopPoint)
1341 	{
1342 		Sfxr_setLoopPoint(objhandle, aLoopPoint);
1343 	}
1344 
1345 	public double getLoopPoint()
1346 	{
1347 		return Sfxr_getLoopPoint(objhandle);
1348 	}
1349 
1350 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1351 	{
1352 		Sfxr_setFilter(objhandle, aFilterId, aFilter.objhandle);
1353 	}
1354 
1355 	public void stop()
1356 	{
1357 		Sfxr_stop(objhandle);
1358 	}
1359 
1360 }
1361 
1362 public struct Speech
1363 {
1364 
1365 	public enum KW_NOISE = 5;
1366 	public enum KW_SAW = 0;
1367 	public enum KW_WARBLE = 6;
1368 	public enum KW_SIN = 2;
1369 	public enum KW_TRIANGLE = 1;
1370 	public enum KW_PULSE = 4;
1371 	public enum KW_SQUARE = 3;
1372 
1373 	public SoloudObject soloudObject;
1374 	alias soloudObject this;
1375 
1376 	public static create()
1377 	{
1378 		return Speech(SoloudObject(Speech_create()));
1379 	}
1380 
1381 	void free()
1382 	{
1383 		Speech_destroy(objhandle);
1384 	}
1385 
1386 	public int setText(const(char)* aText)
1387 	{
1388 		return Speech_setText(objhandle, aText);
1389 	}
1390 
1391 	public int setParams(uint aBaseFrequency = 1330, float aBaseSpeed = 10.0f, float aBaseDeclination = 0.5f, int aBaseWaveform = KW_TRIANGLE)
1392 	{
1393 		return Speech_setParamsEx(objhandle, aBaseFrequency, aBaseSpeed, aBaseDeclination, aBaseWaveform);
1394 	}
1395 
1396 	public void setVolume(float aVolume)
1397 	{
1398 		Speech_setVolume(objhandle, aVolume);
1399 	}
1400 
1401 	public void setLooping(int aLoop)
1402 	{
1403 		Speech_setLooping(objhandle, aLoop);
1404 	}
1405 
1406 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1407 	{
1408 		Speech_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1409 	}
1410 
1411 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1412 	{
1413 		Speech_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1414 	}
1415 
1416 	public void set3dDopplerFactor(float aDopplerFactor)
1417 	{
1418 		Speech_set3dDopplerFactor(objhandle, aDopplerFactor);
1419 	}
1420 
1421 	public void set3dListenerRelative(int aListenerRelative)
1422 	{
1423 		Speech_set3dListenerRelative(objhandle, aListenerRelative);
1424 	}
1425 
1426 	public void set3dDistanceDelay(int aDistanceDelay)
1427 	{
1428 		Speech_set3dDistanceDelay(objhandle, aDistanceDelay);
1429 	}
1430 
1431 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1432 	{
1433 		Speech_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1434 	}
1435 
1436 	public void set3dAttenuator(SoloudObject aAttenuator)
1437 	{
1438 		Speech_set3dAttenuator(objhandle, aAttenuator.objhandle);
1439 	}
1440 
1441 	public void setInaudibleBehavior(int aMustTick, int aKill)
1442 	{
1443 		Speech_setInaudibleBehavior(objhandle, aMustTick, aKill);
1444 	}
1445 
1446 	public void setLoopPoint(double aLoopPoint)
1447 	{
1448 		Speech_setLoopPoint(objhandle, aLoopPoint);
1449 	}
1450 
1451 	public double getLoopPoint()
1452 	{
1453 		return Speech_getLoopPoint(objhandle);
1454 	}
1455 
1456 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1457 	{
1458 		Speech_setFilter(objhandle, aFilterId, aFilter.objhandle);
1459 	}
1460 
1461 	public void stop()
1462 	{
1463 		Speech_stop(objhandle);
1464 	}
1465 
1466 }
1467 
1468 public struct TedSid
1469 {
1470 
1471 
1472 	public SoloudObject soloudObject;
1473 	alias soloudObject this;
1474 
1475 	public static create()
1476 	{
1477 		return TedSid(SoloudObject(TedSid_create()));
1478 	}
1479 
1480 	void free()
1481 	{
1482 		TedSid_destroy(objhandle);
1483 	}
1484 
1485 	public int load(const(char)* aFilename)
1486 	{
1487 		return TedSid_load(objhandle, aFilename);
1488 	}
1489 
1490 	public int loadToMem(const(char)* aFilename)
1491 	{
1492 		return TedSid_loadToMem(objhandle, aFilename);
1493 	}
1494 
1495 	public int loadMem(ubyte* aMem, uint aLength, int aCopy = false, int aTakeOwnership = true)
1496 	{
1497 		return TedSid_loadMemEx(objhandle, aMem, aLength, aCopy, aTakeOwnership);
1498 	}
1499 
1500 	public int loadFileToMem(SoloudObject aFile)
1501 	{
1502 		return TedSid_loadFileToMem(objhandle, aFile.objhandle);
1503 	}
1504 
1505 	public int loadFile(SoloudObject aFile)
1506 	{
1507 		return TedSid_loadFile(objhandle, aFile.objhandle);
1508 	}
1509 
1510 	public void setVolume(float aVolume)
1511 	{
1512 		TedSid_setVolume(objhandle, aVolume);
1513 	}
1514 
1515 	public void setLooping(int aLoop)
1516 	{
1517 		TedSid_setLooping(objhandle, aLoop);
1518 	}
1519 
1520 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1521 	{
1522 		TedSid_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1523 	}
1524 
1525 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1526 	{
1527 		TedSid_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1528 	}
1529 
1530 	public void set3dDopplerFactor(float aDopplerFactor)
1531 	{
1532 		TedSid_set3dDopplerFactor(objhandle, aDopplerFactor);
1533 	}
1534 
1535 	public void set3dListenerRelative(int aListenerRelative)
1536 	{
1537 		TedSid_set3dListenerRelative(objhandle, aListenerRelative);
1538 	}
1539 
1540 	public void set3dDistanceDelay(int aDistanceDelay)
1541 	{
1542 		TedSid_set3dDistanceDelay(objhandle, aDistanceDelay);
1543 	}
1544 
1545 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1546 	{
1547 		TedSid_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1548 	}
1549 
1550 	public void set3dAttenuator(SoloudObject aAttenuator)
1551 	{
1552 		TedSid_set3dAttenuator(objhandle, aAttenuator.objhandle);
1553 	}
1554 
1555 	public void setInaudibleBehavior(int aMustTick, int aKill)
1556 	{
1557 		TedSid_setInaudibleBehavior(objhandle, aMustTick, aKill);
1558 	}
1559 
1560 	public void setLoopPoint(double aLoopPoint)
1561 	{
1562 		TedSid_setLoopPoint(objhandle, aLoopPoint);
1563 	}
1564 
1565 	public double getLoopPoint()
1566 	{
1567 		return TedSid_getLoopPoint(objhandle);
1568 	}
1569 
1570 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1571 	{
1572 		TedSid_setFilter(objhandle, aFilterId, aFilter.objhandle);
1573 	}
1574 
1575 	public void stop()
1576 	{
1577 		TedSid_stop(objhandle);
1578 	}
1579 
1580 }
1581 
1582 public struct Vic
1583 {
1584 
1585 	public enum NTSC = 1;
1586 	public enum PAL = 0;
1587 	public enum SOPRANO = 2;
1588 	public enum ALTO = 1;
1589 	public enum MAX_REGS = 4;
1590 	public enum BASS = 0;
1591 	public enum NOISE = 3;
1592 
1593 	public SoloudObject soloudObject;
1594 	alias soloudObject this;
1595 
1596 	public static create()
1597 	{
1598 		return Vic(SoloudObject(Vic_create()));
1599 	}
1600 
1601 	void free()
1602 	{
1603 		Vic_destroy(objhandle);
1604 	}
1605 
1606 	public void setModel(int model)
1607 	{
1608 		Vic_setModel(objhandle, model);
1609 	}
1610 
1611 	public int getModel()
1612 	{
1613 		return Vic_getModel(objhandle);
1614 	}
1615 
1616 	public void setRegister(int reg, ubyte value)
1617 	{
1618 		Vic_setRegister(objhandle, reg, value);
1619 	}
1620 
1621 	public ubyte getRegister(int reg)
1622 	{
1623 		return Vic_getRegister(objhandle, reg);
1624 	}
1625 
1626 	public void setVolume(float aVolume)
1627 	{
1628 		Vic_setVolume(objhandle, aVolume);
1629 	}
1630 
1631 	public void setLooping(int aLoop)
1632 	{
1633 		Vic_setLooping(objhandle, aLoop);
1634 	}
1635 
1636 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1637 	{
1638 		Vic_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1639 	}
1640 
1641 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1642 	{
1643 		Vic_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1644 	}
1645 
1646 	public void set3dDopplerFactor(float aDopplerFactor)
1647 	{
1648 		Vic_set3dDopplerFactor(objhandle, aDopplerFactor);
1649 	}
1650 
1651 	public void set3dListenerRelative(int aListenerRelative)
1652 	{
1653 		Vic_set3dListenerRelative(objhandle, aListenerRelative);
1654 	}
1655 
1656 	public void set3dDistanceDelay(int aDistanceDelay)
1657 	{
1658 		Vic_set3dDistanceDelay(objhandle, aDistanceDelay);
1659 	}
1660 
1661 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1662 	{
1663 		Vic_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1664 	}
1665 
1666 	public void set3dAttenuator(SoloudObject aAttenuator)
1667 	{
1668 		Vic_set3dAttenuator(objhandle, aAttenuator.objhandle);
1669 	}
1670 
1671 	public void setInaudibleBehavior(int aMustTick, int aKill)
1672 	{
1673 		Vic_setInaudibleBehavior(objhandle, aMustTick, aKill);
1674 	}
1675 
1676 	public void setLoopPoint(double aLoopPoint)
1677 	{
1678 		Vic_setLoopPoint(objhandle, aLoopPoint);
1679 	}
1680 
1681 	public double getLoopPoint()
1682 	{
1683 		return Vic_getLoopPoint(objhandle);
1684 	}
1685 
1686 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1687 	{
1688 		Vic_setFilter(objhandle, aFilterId, aFilter.objhandle);
1689 	}
1690 
1691 	public void stop()
1692 	{
1693 		Vic_stop(objhandle);
1694 	}
1695 
1696 }
1697 
1698 public struct Vizsn
1699 {
1700 
1701 
1702 	public SoloudObject soloudObject;
1703 	alias soloudObject this;
1704 
1705 	public static create()
1706 	{
1707 		return Vizsn(SoloudObject(Vizsn_create()));
1708 	}
1709 
1710 	void free()
1711 	{
1712 		Vizsn_destroy(objhandle);
1713 	}
1714 
1715 	public void setText(const(char)* aText)
1716 	{
1717 		Vizsn_setText(objhandle, cast(char*)aText);
1718 	}
1719 
1720 	public void setVolume(float aVolume)
1721 	{
1722 		Vizsn_setVolume(objhandle, aVolume);
1723 	}
1724 
1725 	public void setLooping(int aLoop)
1726 	{
1727 		Vizsn_setLooping(objhandle, aLoop);
1728 	}
1729 
1730 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1731 	{
1732 		Vizsn_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1733 	}
1734 
1735 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1736 	{
1737 		Vizsn_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1738 	}
1739 
1740 	public void set3dDopplerFactor(float aDopplerFactor)
1741 	{
1742 		Vizsn_set3dDopplerFactor(objhandle, aDopplerFactor);
1743 	}
1744 
1745 	public void set3dListenerRelative(int aListenerRelative)
1746 	{
1747 		Vizsn_set3dListenerRelative(objhandle, aListenerRelative);
1748 	}
1749 
1750 	public void set3dDistanceDelay(int aDistanceDelay)
1751 	{
1752 		Vizsn_set3dDistanceDelay(objhandle, aDistanceDelay);
1753 	}
1754 
1755 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1756 	{
1757 		Vizsn_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1758 	}
1759 
1760 	public void set3dAttenuator(SoloudObject aAttenuator)
1761 	{
1762 		Vizsn_set3dAttenuator(objhandle, aAttenuator.objhandle);
1763 	}
1764 
1765 	public void setInaudibleBehavior(int aMustTick, int aKill)
1766 	{
1767 		Vizsn_setInaudibleBehavior(objhandle, aMustTick, aKill);
1768 	}
1769 
1770 	public void setLoopPoint(double aLoopPoint)
1771 	{
1772 		Vizsn_setLoopPoint(objhandle, aLoopPoint);
1773 	}
1774 
1775 	public double getLoopPoint()
1776 	{
1777 		return Vizsn_getLoopPoint(objhandle);
1778 	}
1779 
1780 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1781 	{
1782 		Vizsn_setFilter(objhandle, aFilterId, aFilter.objhandle);
1783 	}
1784 
1785 	public void stop()
1786 	{
1787 		Vizsn_stop(objhandle);
1788 	}
1789 
1790 }
1791 
1792 public struct Wav
1793 {
1794 
1795 
1796 	public SoloudObject soloudObject;
1797 	alias soloudObject this;
1798 
1799 	public static create()
1800 	{
1801 		return Wav(SoloudObject(Wav_create()));
1802 	}
1803 
1804 	void free()
1805 	{
1806 		Wav_destroy(objhandle);
1807 	}
1808 
1809 	public int load(const(char)* aFilename)
1810 	{
1811 		return Wav_load(objhandle, aFilename);
1812 	}
1813 
1814 	public int loadMem(ubyte* aMem, uint aLength, int aCopy = false, int aTakeOwnership = true)
1815 	{
1816 		return Wav_loadMemEx(objhandle, aMem, aLength, aCopy, aTakeOwnership);
1817 	}
1818 
1819 	public int loadFile(SoloudObject aFile)
1820 	{
1821 		return Wav_loadFile(objhandle, aFile.objhandle);
1822 	}
1823 
1824 	public int loadRawWave8(ubyte* aMem, uint aLength, float aSamplerate = 44100.0f, uint aChannels = 1)
1825 	{
1826 		return Wav_loadRawWave8Ex(objhandle, aMem, aLength, aSamplerate, aChannels);
1827 	}
1828 
1829 	public int loadRawWave16(short[] aMem, uint aLength, float aSamplerate = 44100.0f, uint aChannels = 1)
1830 	{
1831 		return Wav_loadRawWave16Ex(objhandle, aMem, aLength, aSamplerate, aChannels);
1832 	}
1833 
1834 	public int loadRawWave(float[] aMem, uint aLength, float aSamplerate = 44100.0f, uint aChannels = 1, int aCopy = false, int aTakeOwnership = true)
1835 	{
1836 		return Wav_loadRawWaveEx(objhandle, aMem, aLength, aSamplerate, aChannels, aCopy, aTakeOwnership);
1837 	}
1838 
1839 	public double getLength()
1840 	{
1841 		return Wav_getLength(objhandle);
1842 	}
1843 
1844 	public void setVolume(float aVolume)
1845 	{
1846 		Wav_setVolume(objhandle, aVolume);
1847 	}
1848 
1849 	public void setLooping(int aLoop)
1850 	{
1851 		Wav_setLooping(objhandle, aLoop);
1852 	}
1853 
1854 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1855 	{
1856 		Wav_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
1857 	}
1858 
1859 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
1860 	{
1861 		Wav_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
1862 	}
1863 
1864 	public void set3dDopplerFactor(float aDopplerFactor)
1865 	{
1866 		Wav_set3dDopplerFactor(objhandle, aDopplerFactor);
1867 	}
1868 
1869 	public void set3dListenerRelative(int aListenerRelative)
1870 	{
1871 		Wav_set3dListenerRelative(objhandle, aListenerRelative);
1872 	}
1873 
1874 	public void set3dDistanceDelay(int aDistanceDelay)
1875 	{
1876 		Wav_set3dDistanceDelay(objhandle, aDistanceDelay);
1877 	}
1878 
1879 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
1880 	{
1881 		Wav_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
1882 	}
1883 
1884 	public void set3dAttenuator(SoloudObject aAttenuator)
1885 	{
1886 		Wav_set3dAttenuator(objhandle, aAttenuator.objhandle);
1887 	}
1888 
1889 	public void setInaudibleBehavior(int aMustTick, int aKill)
1890 	{
1891 		Wav_setInaudibleBehavior(objhandle, aMustTick, aKill);
1892 	}
1893 
1894 	public void setLoopPoint(double aLoopPoint)
1895 	{
1896 		Wav_setLoopPoint(objhandle, aLoopPoint);
1897 	}
1898 
1899 	public double getLoopPoint()
1900 	{
1901 		return Wav_getLoopPoint(objhandle);
1902 	}
1903 
1904 	public void setFilter(uint aFilterId, SoloudObject aFilter)
1905 	{
1906 		Wav_setFilter(objhandle, aFilterId, aFilter.objhandle);
1907 	}
1908 
1909 	public void stop()
1910 	{
1911 		Wav_stop(objhandle);
1912 	}
1913 
1914 }
1915 
1916 public struct WaveShaperFilter
1917 {
1918 
1919 
1920 	public SoloudObject soloudObject;
1921 	alias soloudObject this;
1922 
1923 	public static create()
1924 	{
1925 		return WaveShaperFilter(SoloudObject(WaveShaperFilter_create()));
1926 	}
1927 
1928 	void free()
1929 	{
1930 		WaveShaperFilter_destroy(objhandle);
1931 	}
1932 
1933 	public int setParams(float aAmount, float aWet = 1.0f)
1934 	{
1935 		return WaveShaperFilter_setParamsEx(objhandle, aAmount, aWet);
1936 	}
1937 
1938 }
1939 
1940 public struct WavStream
1941 {
1942 
1943 
1944 	public SoloudObject soloudObject;
1945 	alias soloudObject this;
1946 
1947 	public static create()
1948 	{
1949 		return WavStream(SoloudObject(WavStream_create()));
1950 	}
1951 
1952 	void free()
1953 	{
1954 		WavStream_destroy(objhandle);
1955 	}
1956 
1957 	public int load(const(char)* aFilename)
1958 	{
1959 		return WavStream_load(objhandle, aFilename);
1960 	}
1961 
1962 	public int loadMem(ubyte* aData, uint aDataLen, int aCopy = false, int aTakeOwnership = true)
1963 	{
1964 		return WavStream_loadMemEx(objhandle, aData, aDataLen, aCopy, aTakeOwnership);
1965 	}
1966 
1967 	public int loadToMem(const(char)* aFilename)
1968 	{
1969 		return WavStream_loadToMem(objhandle, aFilename);
1970 	}
1971 
1972 	public int loadFile(SoloudObject aFile)
1973 	{
1974 		return WavStream_loadFile(objhandle, aFile.objhandle);
1975 	}
1976 
1977 	public int loadFileToMem(SoloudObject aFile)
1978 	{
1979 		return WavStream_loadFileToMem(objhandle, aFile.objhandle);
1980 	}
1981 
1982 	public double getLength()
1983 	{
1984 		return WavStream_getLength(objhandle);
1985 	}
1986 
1987 	public void setVolume(float aVolume)
1988 	{
1989 		WavStream_setVolume(objhandle, aVolume);
1990 	}
1991 
1992 	public void setLooping(int aLoop)
1993 	{
1994 		WavStream_setLooping(objhandle, aLoop);
1995 	}
1996 
1997 	public void set3dMinMaxDistance(float aMinDistance, float aMaxDistance)
1998 	{
1999 		WavStream_set3dMinMaxDistance(objhandle, aMinDistance, aMaxDistance);
2000 	}
2001 
2002 	public void set3dAttenuation(uint aAttenuationModel, float aAttenuationRolloffFactor)
2003 	{
2004 		WavStream_set3dAttenuation(objhandle, aAttenuationModel, aAttenuationRolloffFactor);
2005 	}
2006 
2007 	public void set3dDopplerFactor(float aDopplerFactor)
2008 	{
2009 		WavStream_set3dDopplerFactor(objhandle, aDopplerFactor);
2010 	}
2011 
2012 	public void set3dListenerRelative(int aListenerRelative)
2013 	{
2014 		WavStream_set3dListenerRelative(objhandle, aListenerRelative);
2015 	}
2016 
2017 	public void set3dDistanceDelay(int aDistanceDelay)
2018 	{
2019 		WavStream_set3dDistanceDelay(objhandle, aDistanceDelay);
2020 	}
2021 
2022 	public void set3dCollider(SoloudObject aCollider, int aUserData = 0)
2023 	{
2024 		WavStream_set3dColliderEx(objhandle, aCollider.objhandle, aUserData);
2025 	}
2026 
2027 	public void set3dAttenuator(SoloudObject aAttenuator)
2028 	{
2029 		WavStream_set3dAttenuator(objhandle, aAttenuator.objhandle);
2030 	}
2031 
2032 	public void setInaudibleBehavior(int aMustTick, int aKill)
2033 	{
2034 		WavStream_setInaudibleBehavior(objhandle, aMustTick, aKill);
2035 	}
2036 
2037 	public void setLoopPoint(double aLoopPoint)
2038 	{
2039 		WavStream_setLoopPoint(objhandle, aLoopPoint);
2040 	}
2041 
2042 	public double getLoopPoint()
2043 	{
2044 		return WavStream_getLoopPoint(objhandle);
2045 	}
2046 
2047 	public void setFilter(uint aFilterId, SoloudObject aFilter)
2048 	{
2049 		WavStream_setFilter(objhandle, aFilterId, aFilter.objhandle);
2050 	}
2051 
2052 	public void stop()
2053 	{
2054 		WavStream_stop(objhandle);
2055 	}
2056 
2057 }