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