1 module libwasm.bindings.MediaRecorder; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.EventHandler; 7 import libwasm.bindings.EventTarget; 8 import libwasm.bindings.MediaStream; 9 10 @safe: 11 nothrow: 12 13 struct MediaRecorder { 14 nothrow: 15 libwasm.bindings.EventTarget.EventTarget _parent; 16 alias _parent this; 17 this(Handle h) { 18 _parent = .EventTarget(h); 19 } 20 auto stream()() { 21 return MediaStream(Object_Getter__Handle(this._parent, "stream")); 22 } 23 string mimeType()() { 24 return Object_Getter__string(this._parent, "mimeType"); 25 } 26 RecordingState state()() { 27 return Object_Getter__int(this._parent, "state"); 28 } 29 void onstart(T0)(scope auto ref Optional!(T0) onstart) if (isTOrPointer!(T0, EventHandlerNonNull)) { 30 Object_Call_EventHandler__void(this._parent, "onstart", !onstart.empty, onstart.front); 31 } 32 EventHandler onstart()() { 33 return Object_Getter__EventHandler(this._parent, "onstart"); 34 } 35 void onstop(T0)(scope auto ref Optional!(T0) onstop) if (isTOrPointer!(T0, EventHandlerNonNull)) { 36 Object_Call_EventHandler__void(this._parent, "onstop", !onstop.empty, onstop.front); 37 } 38 EventHandler onstop()() { 39 return Object_Getter__EventHandler(this._parent, "onstop"); 40 } 41 void ondataavailable(T0)(scope auto ref Optional!(T0) ondataavailable) if (isTOrPointer!(T0, EventHandlerNonNull)) { 42 Object_Call_EventHandler__void(this._parent, "ondataavailable", !ondataavailable.empty, ondataavailable.front); 43 } 44 EventHandler ondataavailable()() { 45 return Object_Getter__EventHandler(this._parent, "ondataavailable"); 46 } 47 void onpause(T0)(scope auto ref Optional!(T0) onpause) if (isTOrPointer!(T0, EventHandlerNonNull)) { 48 Object_Call_EventHandler__void(this._parent, "onpause", !onpause.empty, onpause.front); 49 } 50 EventHandler onpause()() { 51 return Object_Getter__EventHandler(this._parent, "onpause"); 52 } 53 void onresume(T0)(scope auto ref Optional!(T0) onresume) if (isTOrPointer!(T0, EventHandlerNonNull)) { 54 Object_Call_EventHandler__void(this._parent, "onresume", !onresume.empty, onresume.front); 55 } 56 EventHandler onresume()() { 57 return Object_Getter__EventHandler(this._parent, "onresume"); 58 } 59 void onerror(T0)(scope auto ref Optional!(T0) onerror) if (isTOrPointer!(T0, EventHandlerNonNull)) { 60 Object_Call_EventHandler__void(this._parent, "onerror", !onerror.empty, onerror.front); 61 } 62 EventHandler onerror()() { 63 return Object_Getter__EventHandler(this._parent, "onerror"); 64 } 65 void onwarning(T0)(scope auto ref Optional!(T0) onwarning) if (isTOrPointer!(T0, EventHandlerNonNull)) { 66 Object_Call_EventHandler__void(this._parent, "onwarning", !onwarning.empty, onwarning.front); 67 } 68 EventHandler onwarning()() { 69 return Object_Getter__EventHandler(this._parent, "onwarning"); 70 } 71 void start()(int timeSlice) { 72 Object_Call_int__void(this._parent, "start", timeSlice); 73 } 74 void start()() { 75 Object_Call__void(this._parent, "start"); 76 } 77 void stop()() { 78 Object_Call__void(this._parent, "stop"); 79 } 80 void pause()() { 81 Object_Call__void(this._parent, "pause"); 82 } 83 void resume()() { 84 Object_Call__void(this._parent, "resume"); 85 } 86 void requestData()() { 87 Object_Call__void(this._parent, "requestData"); 88 } 89 bool isTypeSupported()(string type) { 90 return Object_Call_string__bool(this._parent, "isTypeSupported", type); 91 } 92 } 93 struct MediaRecorderOptions { 94 nothrow: 95 JsHandle handle; 96 alias handle this; 97 this(Handle h) { 98 this.handle = JsHandle(h); 99 } 100 static auto create() { 101 return MediaRecorderOptions(libwasm_add__object()); 102 } 103 void mimeType()(string mimeType) { 104 Object_Call_string__void(this.handle, "mimeType", mimeType); 105 } 106 string mimeType()() { 107 return Object_Getter__string(this.handle, "mimeType"); 108 } 109 void audioBitsPerSecond()(uint audioBitsPerSecond) { 110 Object_Call_uint__void(this.handle, "audioBitsPerSecond", audioBitsPerSecond); 111 } 112 uint audioBitsPerSecond()() { 113 return Object_Getter__uint(this.handle, "audioBitsPerSecond"); 114 } 115 void videoBitsPerSecond()(uint videoBitsPerSecond) { 116 Object_Call_uint__void(this.handle, "videoBitsPerSecond", videoBitsPerSecond); 117 } 118 uint videoBitsPerSecond()() { 119 return Object_Getter__uint(this.handle, "videoBitsPerSecond"); 120 } 121 void bitsPerSecond()(uint bitsPerSecond) { 122 Object_Call_uint__void(this.handle, "bitsPerSecond", bitsPerSecond); 123 } 124 uint bitsPerSecond()() { 125 return Object_Getter__uint(this.handle, "bitsPerSecond"); 126 } 127 } 128 enum RecordingState { 129 inactive, 130 recording, 131 paused 132 } 133 134