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