1 module libwasm.bindings.AudioBufferSourceNode; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.AudioBuffer; 7 import libwasm.bindings.AudioNode; 8 import libwasm.bindings.AudioParam; 9 import libwasm.bindings.AudioScheduledSourceNode; 10 11 @safe: 12 nothrow: 13 14 struct AudioBufferSourceNode { 15 nothrow: 16 libwasm.bindings.AudioScheduledSourceNode.AudioScheduledSourceNode _parent; 17 alias _parent this; 18 this(Handle h) { 19 _parent = .AudioScheduledSourceNode(h); 20 } 21 void buffer(T0)(scope auto ref Optional!(T0) buffer) if (isTOrPointer!(T0, AudioBuffer)) { 22 Serialize_Object_VarArgCall!void(this._parent, "buffer", "Optional!Handle", tuple(!buffer.empty, cast(Handle)buffer.front.handle)); 23 } 24 auto buffer()() { 25 return recastOpt!(AudioBuffer)(Object_Getter__OptionalHandle(this._parent, "buffer")); 26 } 27 auto playbackRate()() { 28 return AudioParam(Object_Getter__Handle(this._parent, "playbackRate")); 29 } 30 auto detune()() { 31 return AudioParam(Object_Getter__Handle(this._parent, "detune")); 32 } 33 void loop()(bool loop) { 34 Object_Call_bool__void(this._parent, "loop", loop); 35 } 36 bool loop()() { 37 return Object_Getter__bool(this._parent, "loop"); 38 } 39 void loopStart()(double loopStart) { 40 Object_Call_double__void(this._parent, "loopStart", loopStart); 41 } 42 double loopStart()() { 43 return Object_Getter__double(this._parent, "loopStart"); 44 } 45 void loopEnd()(double loopEnd) { 46 Object_Call_double__void(this._parent, "loopEnd", loopEnd); 47 } 48 double loopEnd()() { 49 return Object_Getter__double(this._parent, "loopEnd"); 50 } 51 void start()(double when /* = 0 */, double grainOffset /* = 0 */, double grainDuration) { 52 Serialize_Object_VarArgCall!void(this._parent, "start", "double;double;double", tuple(when, grainOffset, grainDuration)); 53 } 54 void start()(double when /* = 0 */, double grainOffset /* = 0 */) { 55 Object_Call_double_double__void(this._parent, "start", when, grainOffset); 56 } 57 void start()(double when /* = 0 */) { 58 Object_Call_double__void(this._parent, "start", when); 59 } 60 void start()() { 61 Object_Call__void(this._parent, "start"); 62 } 63 void passThrough()(bool passThrough) { 64 Object_Call_bool__void(this._parent, "passThrough", passThrough); 65 } 66 bool passThrough()() { 67 return Object_Getter__bool(this._parent, "passThrough"); 68 } 69 } 70 struct AudioBufferSourceOptions { 71 nothrow: 72 JsHandle handle; 73 alias handle this; 74 this(Handle h) { 75 this.handle = JsHandle(h); 76 } 77 static auto create() { 78 return AudioBufferSourceOptions(libwasm_add__object()); 79 } 80 void buffer(T0)(scope auto ref Optional!(T0) buffer) if (isTOrPointer!(T0, AudioBuffer)) { 81 Serialize_Object_VarArgCall!void(this.handle, "buffer", "Optional!Handle", tuple(!buffer.empty, cast(Handle)buffer.front.handle)); 82 } 83 auto buffer()() { 84 return recastOpt!(AudioBuffer)(Object_Getter__OptionalHandle(this.handle, "buffer")); 85 } 86 void detune()(float detune) { 87 Object_Call_float__void(this.handle, "detune", detune); 88 } 89 float detune()() { 90 return Object_Getter__float(this.handle, "detune"); 91 } 92 void loop()(bool loop) { 93 Object_Call_bool__void(this.handle, "loop", loop); 94 } 95 bool loop()() { 96 return Object_Getter__bool(this.handle, "loop"); 97 } 98 void loopEnd()(double loopEnd) { 99 Object_Call_double__void(this.handle, "loopEnd", loopEnd); 100 } 101 double loopEnd()() { 102 return Object_Getter__double(this.handle, "loopEnd"); 103 } 104 void loopStart()(double loopStart) { 105 Object_Call_double__void(this.handle, "loopStart", loopStart); 106 } 107 double loopStart()() { 108 return Object_Getter__double(this.handle, "loopStart"); 109 } 110 void playbackRate()(float playbackRate) { 111 Object_Call_float__void(this.handle, "playbackRate", playbackRate); 112 } 113 float playbackRate()() { 114 return Object_Getter__float(this.handle, "playbackRate"); 115 } 116 } 117 118