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 }