1 module libwasm.bindings.AudioBuffer;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 @safe:
7 nothrow:
8 
9 struct AudioBuffer {
10   nothrow:
11   JsHandle handle;
12   alias handle this;
13   this(Handle h) {
14     this.handle = JsHandle(h);
15   }
16   float sampleRate()() {
17     return Object_Getter__float(this.handle, "sampleRate");
18   }
19   uint length()() {
20     return Object_Getter__uint(this.handle, "length");
21   }
22   double duration()() {
23     return Object_Getter__double(this.handle, "duration");
24   }
25   uint numberOfChannels()() {
26     return Object_Getter__uint(this.handle, "numberOfChannels");
27   }
28   auto getChannelData()(uint channel) {
29     return Float32Array(Object_Call_uint__Handle(this.handle, "getChannelData", channel));
30   }
31   void copyFromChannel()(scope ref Float32Array destination, int channelNumber, uint startInChannel /* = 0 */) {
32     Serialize_Object_VarArgCall!void(this.handle, "copyFromChannel", "Handle;int;uint", tuple(cast(Handle)destination.handle, channelNumber, startInChannel));
33   }
34   void copyFromChannel()(scope ref Float32Array destination, int channelNumber) {
35     Serialize_Object_VarArgCall!void(this.handle, "copyFromChannel", "Handle;int", tuple(cast(Handle)destination.handle, channelNumber));
36   }
37   void copyToChannel()(scope ref Float32Array source, int channelNumber, uint startInChannel /* = 0 */) {
38     Serialize_Object_VarArgCall!void(this.handle, "copyToChannel", "Handle;int;uint", tuple(cast(Handle)source.handle, channelNumber, startInChannel));
39   }
40   void copyToChannel()(scope ref Float32Array source, int channelNumber) {
41     Serialize_Object_VarArgCall!void(this.handle, "copyToChannel", "Handle;int", tuple(cast(Handle)source.handle, channelNumber));
42   }
43 }
44 struct AudioBufferOptions {
45   nothrow:
46   JsHandle handle;
47   alias handle this;
48   this(Handle h) {
49     this.handle = JsHandle(h);
50   }
51   static auto create() {
52     return AudioBufferOptions(libwasm_add__object());
53   }
54   void numberOfChannels()(uint numberOfChannels) {
55     Object_Call_uint__void(this.handle, "numberOfChannels", numberOfChannels);
56   }
57   uint numberOfChannels()() {
58     return Object_Getter__uint(this.handle, "numberOfChannels");
59   }
60   void length()(uint length) {
61     Object_Call_uint__void(this.handle, "length", length);
62   }
63   uint length()() {
64     return Object_Getter__uint(this.handle, "length");
65   }
66   void sampleRate()(float sampleRate) {
67     Object_Call_float__void(this.handle, "sampleRate", sampleRate);
68   }
69   float sampleRate()() {
70     return Object_Getter__float(this.handle, "sampleRate");
71   }
72 }
73 
74