1 /** 2 Adds a chorus audio effect. 3 4 Copyright: 5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. 6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) 7 Copyright (c) 2017-2018 Godot-D contributors 8 9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License) 10 11 12 */ 13 module godot.audioeffectchorus; 14 import std.meta : AliasSeq, staticIndexOf; 15 import std.traits : Unqual; 16 import godot.d.traits; 17 import godot.core; 18 import godot.c; 19 import godot.d.bind; 20 import godot.d.reference; 21 import godot.globalenums; 22 import godot.object; 23 import godot.classdb; 24 import godot.audioeffect; 25 import godot.resource; 26 /** 27 Adds a chorus audio effect. 28 29 The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter. 30 */ 31 @GodotBaseClass struct AudioEffectChorus 32 { 33 package(godot) enum string _GODOT_internal_name = "AudioEffectChorus"; 34 public: 35 @nogc nothrow: 36 union { /** */ godot_object _godot_object; /** */ AudioEffect _GODOT_base; } 37 alias _GODOT_base this; 38 alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses); 39 package(godot) __gshared bool _classBindingInitialized = false; 40 package(godot) static struct GDNativeClassBinding 41 { 42 __gshared: 43 @GodotName("get_dry") GodotMethod!(double) getDry; 44 @GodotName("get_voice_count") GodotMethod!(long) getVoiceCount; 45 @GodotName("get_voice_cutoff_hz") GodotMethod!(double, long) getVoiceCutoffHz; 46 @GodotName("get_voice_delay_ms") GodotMethod!(double, long) getVoiceDelayMs; 47 @GodotName("get_voice_depth_ms") GodotMethod!(double, long) getVoiceDepthMs; 48 @GodotName("get_voice_level_db") GodotMethod!(double, long) getVoiceLevelDb; 49 @GodotName("get_voice_pan") GodotMethod!(double, long) getVoicePan; 50 @GodotName("get_voice_rate_hz") GodotMethod!(double, long) getVoiceRateHz; 51 @GodotName("get_wet") GodotMethod!(double) getWet; 52 @GodotName("set_dry") GodotMethod!(void, double) setDry; 53 @GodotName("set_voice_count") GodotMethod!(void, long) setVoiceCount; 54 @GodotName("set_voice_cutoff_hz") GodotMethod!(void, long, double) setVoiceCutoffHz; 55 @GodotName("set_voice_delay_ms") GodotMethod!(void, long, double) setVoiceDelayMs; 56 @GodotName("set_voice_depth_ms") GodotMethod!(void, long, double) setVoiceDepthMs; 57 @GodotName("set_voice_level_db") GodotMethod!(void, long, double) setVoiceLevelDb; 58 @GodotName("set_voice_pan") GodotMethod!(void, long, double) setVoicePan; 59 @GodotName("set_voice_rate_hz") GodotMethod!(void, long, double) setVoiceRateHz; 60 @GodotName("set_wet") GodotMethod!(void, double) setWet; 61 } 62 /// 63 pragma(inline, true) bool opEquals(in AudioEffectChorus other) const 64 { return _godot_object.ptr is other._godot_object.ptr; } 65 /// 66 pragma(inline, true) typeof(null) opAssign(typeof(null) n) 67 { _godot_object.ptr = n; return null; } 68 /// 69 pragma(inline, true) bool opEquals(typeof(null) n) const 70 { return _godot_object.ptr is n; } 71 /// 72 size_t toHash() const @trusted { return cast(size_t)_godot_object.ptr; } 73 mixin baseCasts; 74 /// Construct a new instance of AudioEffectChorus. 75 /// Note: use `memnew!AudioEffectChorus` instead. 76 static AudioEffectChorus _new() 77 { 78 static godot_class_constructor constructor; 79 if(constructor is null) constructor = _godot_api.godot_get_class_constructor("AudioEffectChorus"); 80 if(constructor is null) return typeof(this).init; 81 return cast(AudioEffectChorus)(constructor()); 82 } 83 @disable new(size_t s); 84 /** 85 86 */ 87 double getDry() const 88 { 89 checkClassBinding!(typeof(this))(); 90 return ptrcall!(double)(GDNativeClassBinding.getDry, _godot_object); 91 } 92 /** 93 94 */ 95 long getVoiceCount() const 96 { 97 checkClassBinding!(typeof(this))(); 98 return ptrcall!(long)(GDNativeClassBinding.getVoiceCount, _godot_object); 99 } 100 /** 101 102 */ 103 double getVoiceCutoffHz(in long voice_idx) const 104 { 105 checkClassBinding!(typeof(this))(); 106 return ptrcall!(double)(GDNativeClassBinding.getVoiceCutoffHz, _godot_object, voice_idx); 107 } 108 /** 109 110 */ 111 double getVoiceDelayMs(in long voice_idx) const 112 { 113 checkClassBinding!(typeof(this))(); 114 return ptrcall!(double)(GDNativeClassBinding.getVoiceDelayMs, _godot_object, voice_idx); 115 } 116 /** 117 118 */ 119 double getVoiceDepthMs(in long voice_idx) const 120 { 121 checkClassBinding!(typeof(this))(); 122 return ptrcall!(double)(GDNativeClassBinding.getVoiceDepthMs, _godot_object, voice_idx); 123 } 124 /** 125 126 */ 127 double getVoiceLevelDb(in long voice_idx) const 128 { 129 checkClassBinding!(typeof(this))(); 130 return ptrcall!(double)(GDNativeClassBinding.getVoiceLevelDb, _godot_object, voice_idx); 131 } 132 /** 133 134 */ 135 double getVoicePan(in long voice_idx) const 136 { 137 checkClassBinding!(typeof(this))(); 138 return ptrcall!(double)(GDNativeClassBinding.getVoicePan, _godot_object, voice_idx); 139 } 140 /** 141 142 */ 143 double getVoiceRateHz(in long voice_idx) const 144 { 145 checkClassBinding!(typeof(this))(); 146 return ptrcall!(double)(GDNativeClassBinding.getVoiceRateHz, _godot_object, voice_idx); 147 } 148 /** 149 150 */ 151 double getWet() const 152 { 153 checkClassBinding!(typeof(this))(); 154 return ptrcall!(double)(GDNativeClassBinding.getWet, _godot_object); 155 } 156 /** 157 158 */ 159 void setDry(in double amount) 160 { 161 checkClassBinding!(typeof(this))(); 162 ptrcall!(void)(GDNativeClassBinding.setDry, _godot_object, amount); 163 } 164 /** 165 166 */ 167 void setVoiceCount(in long voices) 168 { 169 checkClassBinding!(typeof(this))(); 170 ptrcall!(void)(GDNativeClassBinding.setVoiceCount, _godot_object, voices); 171 } 172 /** 173 174 */ 175 void setVoiceCutoffHz(in long voice_idx, in double cutoff_hz) 176 { 177 checkClassBinding!(typeof(this))(); 178 ptrcall!(void)(GDNativeClassBinding.setVoiceCutoffHz, _godot_object, voice_idx, cutoff_hz); 179 } 180 /** 181 182 */ 183 void setVoiceDelayMs(in long voice_idx, in double delay_ms) 184 { 185 checkClassBinding!(typeof(this))(); 186 ptrcall!(void)(GDNativeClassBinding.setVoiceDelayMs, _godot_object, voice_idx, delay_ms); 187 } 188 /** 189 190 */ 191 void setVoiceDepthMs(in long voice_idx, in double depth_ms) 192 { 193 checkClassBinding!(typeof(this))(); 194 ptrcall!(void)(GDNativeClassBinding.setVoiceDepthMs, _godot_object, voice_idx, depth_ms); 195 } 196 /** 197 198 */ 199 void setVoiceLevelDb(in long voice_idx, in double level_db) 200 { 201 checkClassBinding!(typeof(this))(); 202 ptrcall!(void)(GDNativeClassBinding.setVoiceLevelDb, _godot_object, voice_idx, level_db); 203 } 204 /** 205 206 */ 207 void setVoicePan(in long voice_idx, in double pan) 208 { 209 checkClassBinding!(typeof(this))(); 210 ptrcall!(void)(GDNativeClassBinding.setVoicePan, _godot_object, voice_idx, pan); 211 } 212 /** 213 214 */ 215 void setVoiceRateHz(in long voice_idx, in double rate_hz) 216 { 217 checkClassBinding!(typeof(this))(); 218 ptrcall!(void)(GDNativeClassBinding.setVoiceRateHz, _godot_object, voice_idx, rate_hz); 219 } 220 /** 221 222 */ 223 void setWet(in double amount) 224 { 225 checkClassBinding!(typeof(this))(); 226 ptrcall!(void)(GDNativeClassBinding.setWet, _godot_object, amount); 227 } 228 /** 229 The effect's raw signal. 230 */ 231 @property double dry() 232 { 233 return getDry(); 234 } 235 /// ditto 236 @property void dry(double v) 237 { 238 setDry(v); 239 } 240 /** 241 The voice's cutoff frequency. 242 */ 243 @property double voice1CutoffHz() 244 { 245 return getVoiceCutoffHz(0); 246 } 247 /// ditto 248 @property void voice1CutoffHz(double v) 249 { 250 setVoiceCutoffHz(0, v); 251 } 252 /** 253 The voice's signal delay. 254 */ 255 @property double voice1DelayMs() 256 { 257 return getVoiceDelayMs(0); 258 } 259 /// ditto 260 @property void voice1DelayMs(double v) 261 { 262 setVoiceDelayMs(0, v); 263 } 264 /** 265 The voice filter's depth. 266 */ 267 @property double voice1DepthMs() 268 { 269 return getVoiceDepthMs(0); 270 } 271 /// ditto 272 @property void voice1DepthMs(double v) 273 { 274 setVoiceDepthMs(0, v); 275 } 276 /** 277 The voice's volume. 278 */ 279 @property double voice1LevelDb() 280 { 281 return getVoiceLevelDb(0); 282 } 283 /// ditto 284 @property void voice1LevelDb(double v) 285 { 286 setVoiceLevelDb(0, v); 287 } 288 /** 289 The voice's pan level. 290 */ 291 @property double voice1Pan() 292 { 293 return getVoicePan(0); 294 } 295 /// ditto 296 @property void voice1Pan(double v) 297 { 298 setVoicePan(0, v); 299 } 300 /** 301 The voice's filter rate. 302 */ 303 @property double voice1RateHz() 304 { 305 return getVoiceRateHz(0); 306 } 307 /// ditto 308 @property void voice1RateHz(double v) 309 { 310 setVoiceRateHz(0, v); 311 } 312 /** 313 The voice's cutoff frequency. 314 */ 315 @property double voice2CutoffHz() 316 { 317 return getVoiceCutoffHz(1); 318 } 319 /// ditto 320 @property void voice2CutoffHz(double v) 321 { 322 setVoiceCutoffHz(1, v); 323 } 324 /** 325 The voice's signal delay. 326 */ 327 @property double voice2DelayMs() 328 { 329 return getVoiceDelayMs(1); 330 } 331 /// ditto 332 @property void voice2DelayMs(double v) 333 { 334 setVoiceDelayMs(1, v); 335 } 336 /** 337 The voice filter's depth. 338 */ 339 @property double voice2DepthMs() 340 { 341 return getVoiceDepthMs(1); 342 } 343 /// ditto 344 @property void voice2DepthMs(double v) 345 { 346 setVoiceDepthMs(1, v); 347 } 348 /** 349 The voice's volume. 350 */ 351 @property double voice2LevelDb() 352 { 353 return getVoiceLevelDb(1); 354 } 355 /// ditto 356 @property void voice2LevelDb(double v) 357 { 358 setVoiceLevelDb(1, v); 359 } 360 /** 361 The voice's pan level. 362 */ 363 @property double voice2Pan() 364 { 365 return getVoicePan(1); 366 } 367 /// ditto 368 @property void voice2Pan(double v) 369 { 370 setVoicePan(1, v); 371 } 372 /** 373 The voice's filter rate. 374 */ 375 @property double voice2RateHz() 376 { 377 return getVoiceRateHz(1); 378 } 379 /// ditto 380 @property void voice2RateHz(double v) 381 { 382 setVoiceRateHz(1, v); 383 } 384 /** 385 The voice's cutoff frequency. 386 */ 387 @property double voice3CutoffHz() 388 { 389 return getVoiceCutoffHz(2); 390 } 391 /// ditto 392 @property void voice3CutoffHz(double v) 393 { 394 setVoiceCutoffHz(2, v); 395 } 396 /** 397 The voice's signal delay. 398 */ 399 @property double voice3DelayMs() 400 { 401 return getVoiceDelayMs(2); 402 } 403 /// ditto 404 @property void voice3DelayMs(double v) 405 { 406 setVoiceDelayMs(2, v); 407 } 408 /** 409 The voice filter's depth. 410 */ 411 @property double voice3DepthMs() 412 { 413 return getVoiceDepthMs(2); 414 } 415 /// ditto 416 @property void voice3DepthMs(double v) 417 { 418 setVoiceDepthMs(2, v); 419 } 420 /** 421 The voice's volume. 422 */ 423 @property double voice3LevelDb() 424 { 425 return getVoiceLevelDb(2); 426 } 427 /// ditto 428 @property void voice3LevelDb(double v) 429 { 430 setVoiceLevelDb(2, v); 431 } 432 /** 433 The voice's pan level. 434 */ 435 @property double voice3Pan() 436 { 437 return getVoicePan(2); 438 } 439 /// ditto 440 @property void voice3Pan(double v) 441 { 442 setVoicePan(2, v); 443 } 444 /** 445 The voice's filter rate. 446 */ 447 @property double voice3RateHz() 448 { 449 return getVoiceRateHz(2); 450 } 451 /// ditto 452 @property void voice3RateHz(double v) 453 { 454 setVoiceRateHz(2, v); 455 } 456 /** 457 The voice's cutoff frequency. 458 */ 459 @property double voice4CutoffHz() 460 { 461 return getVoiceCutoffHz(3); 462 } 463 /// ditto 464 @property void voice4CutoffHz(double v) 465 { 466 setVoiceCutoffHz(3, v); 467 } 468 /** 469 The voice's signal delay. 470 */ 471 @property double voice4DelayMs() 472 { 473 return getVoiceDelayMs(3); 474 } 475 /// ditto 476 @property void voice4DelayMs(double v) 477 { 478 setVoiceDelayMs(3, v); 479 } 480 /** 481 The voice filter's depth. 482 */ 483 @property double voice4DepthMs() 484 { 485 return getVoiceDepthMs(3); 486 } 487 /// ditto 488 @property void voice4DepthMs(double v) 489 { 490 setVoiceDepthMs(3, v); 491 } 492 /** 493 The voice's volume. 494 */ 495 @property double voice4LevelDb() 496 { 497 return getVoiceLevelDb(3); 498 } 499 /// ditto 500 @property void voice4LevelDb(double v) 501 { 502 setVoiceLevelDb(3, v); 503 } 504 /** 505 The voice's pan level. 506 */ 507 @property double voice4Pan() 508 { 509 return getVoicePan(3); 510 } 511 /// ditto 512 @property void voice4Pan(double v) 513 { 514 setVoicePan(3, v); 515 } 516 /** 517 The voice's filter rate. 518 */ 519 @property double voice4RateHz() 520 { 521 return getVoiceRateHz(3); 522 } 523 /// ditto 524 @property void voice4RateHz(double v) 525 { 526 setVoiceRateHz(3, v); 527 } 528 /** 529 The amount of voices in the effect. 530 */ 531 @property long voiceCount() 532 { 533 return getVoiceCount(); 534 } 535 /// ditto 536 @property void voiceCount(long v) 537 { 538 setVoiceCount(v); 539 } 540 /** 541 The effect's processed signal. 542 */ 543 @property double wet() 544 { 545 return getWet(); 546 } 547 /// ditto 548 @property void wet(double v) 549 { 550 setWet(v); 551 } 552 }