1 module libwasm.bindings.MediaKeys;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.MediaKeySession;
7 import libwasm.bindings.MediaKeyStatusMap;
8 
9 @safe:
10 nothrow:
11 
12 enum MediaKeySessionType {
13   temporary,
14   persistent_license
15 }
16 struct MediaKeys {
17   nothrow:
18   JsHandle handle;
19   alias handle this;
20   this(Handle h) {
21     this.handle = JsHandle(h);
22   }
23   string keySystem()() {
24     return Object_Getter__string(this.handle, "keySystem");
25   }
26   auto createSession()(MediaKeySessionType sessionType /* = "temporary" */) {
27     return MediaKeySession(Object_Call_int__Handle(this.handle, "createSession", sessionType));
28   }
29   auto createSession()() {
30     return MediaKeySession(Object_Getter__Handle(this.handle, "createSession"));
31   }
32   auto setServerCertificate()(scope ref BufferSource serverCertificate) {
33     return JsPromise!(void)(Object_Call_Handle__Handle(this.handle, "setServerCertificate", serverCertificate.handle));
34   }
35   auto getStatusForPolicy()(scope ref MediaKeysPolicy policy) {
36     return JsPromise!(MediaKeyStatus)(Object_Call_Handle__Handle(this.handle, "getStatusForPolicy", policy.handle));
37   }
38   auto getStatusForPolicy()() {
39     return JsPromise!(MediaKeyStatus)(Object_Getter__Handle(this.handle, "getStatusForPolicy"));
40   }
41 }
42 struct MediaKeysPolicy {
43   nothrow:
44   JsHandle handle;
45   alias handle this;
46   this(Handle h) {
47     this.handle = JsHandle(h);
48   }
49   static auto create() {
50     return MediaKeysPolicy(libwasm_add__object());
51   }
52   void minHdcpVersion()(string minHdcpVersion) {
53     Object_Call_string__void(this.handle, "minHdcpVersion", minHdcpVersion);
54   }
55   string minHdcpVersion()() {
56     return Object_Getter__string(this.handle, "minHdcpVersion");
57   }
58 }
59 
60