1 module libwasm.bindings.MediaKeySession;
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.MediaKeyError;
9 import libwasm.bindings.MediaKeyStatusMap;
10 
11 @safe:
12 nothrow:
13 
14 struct MediaKeySession {
15   nothrow:
16   libwasm.bindings.EventTarget.EventTarget _parent;
17   alias _parent this;
18   this(Handle h) {
19     _parent = .EventTarget(h);
20   }
21   auto error()() {
22     return recastOpt!(MediaKeyError)(Object_Getter__OptionalHandle(this._parent, "error"));
23   }
24   string sessionId()() {
25     return Object_Getter__string(this._parent, "sessionId");
26   }
27   double expiration()() {
28     return Object_Getter__double(this._parent, "expiration");
29   }
30   auto closed()() {
31     return JsPromise!(void)(Object_Getter__Handle(this._parent, "closed"));
32   }
33   auto keyStatuses()() {
34     return MediaKeyStatusMap(Object_Getter__Handle(this._parent, "keyStatuses"));
35   }
36   void onkeystatuseschange(T0)(scope auto ref Optional!(T0) onkeystatuseschange) if (isTOrPointer!(T0, EventHandlerNonNull)) {
37     Object_Call_EventHandler__void(this._parent, "onkeystatuseschange", !onkeystatuseschange.empty, onkeystatuseschange.front);
38   }
39   EventHandler onkeystatuseschange()() {
40     return Object_Getter__EventHandler(this._parent, "onkeystatuseschange");
41   }
42   void onmessage(T0)(scope auto ref Optional!(T0) onmessage) if (isTOrPointer!(T0, EventHandlerNonNull)) {
43     Object_Call_EventHandler__void(this._parent, "onmessage", !onmessage.empty, onmessage.front);
44   }
45   EventHandler onmessage()() {
46     return Object_Getter__EventHandler(this._parent, "onmessage");
47   }
48   auto generateRequest()(string initDataType, scope ref BufferSource initData) {
49     return JsPromise!(void)(Serialize_Object_VarArgCall!Handle(this._parent, "generateRequest", "string;Handle", tuple(initDataType, cast(Handle)initData.handle)));
50   }
51   auto load()(string sessionId) {
52     return JsPromise!(bool)(Object_Call_string__Handle(this._parent, "load", sessionId));
53   }
54   auto update()(scope ref BufferSource response) {
55     return JsPromise!(void)(Object_Call_Handle__Handle(this._parent, "update", response.handle));
56   }
57   auto close()() {
58     return JsPromise!(void)(Object_Getter__Handle(this._parent, "close"));
59   }
60   auto remove()() {
61     return JsPromise!(void)(Object_Getter__Handle(this._parent, "remove"));
62   }
63 }
64 
65