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