/* * Copyright (c) 2025, Psychpsyo * Copyright (c) 2025, stelar7 * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::Bindings { // https://w3c.github.io/encrypted-media/#dom-mediakeysystemmediacapability struct MediaKeySystemMediaCapability { Utf16String content_type; Optional encryption_scheme; Utf16String robustness; }; // https://w3c.github.io/encrypted-media/#dom-mediakeysystemconfiguration struct MediaKeySystemConfiguration { Utf16String label; Vector init_data_types; Vector audio_capabilities; Vector video_capabilities; Bindings::MediaKeysRequirement distinctive_identifier { Bindings::MediaKeysRequirement::Optional }; Bindings::MediaKeysRequirement persistent_state { Bindings::MediaKeysRequirement::Optional }; Optional> session_types; }; } namespace Web::EncryptedMediaExtensions { struct MediaKeyRestrictions { bool distinctive_identifiers { true }; bool persist_state { true }; }; enum CapabilitiesType { Audio, Video }; enum ConsentStatus { ConsentDenied, InformUser, Allowed }; struct ConsentConfiguration { ConsentStatus status { ConsentStatus::ConsentDenied }; Optional configuration; }; }