interface Event {}; interface EventHandler {}; interface EventTarget {}; interface MediaStreamTrack {};
// https://w3c.github.io/mediacapture-image [Constructor(MediaStreamTrack videoTrack)] interface ImageCapture { Promise takePhoto(optional PhotoSettings photoSettings); Promise getPhotoCapabilities(); Promise grabFrame(); readonly attribute MediaStreamTrack track; }; interface PhotoCapabilities { readonly attribute RedEyeReduction redEyeReduction; readonly attribute MediaSettingsRange imageHeight; readonly attribute MediaSettingsRange imageWidth; readonly attribute FrozenArray fillLightMode; }; dictionary PhotoSettings { FillLightMode fillLightMode; double imageHeight; double imageWidth; boolean redEyeReduction; }; interface MediaSettingsRange { readonly attribute double max; readonly attribute double min; readonly attribute double step; }; enum RedEyeReduction { "never", "always", "controllable", }; enum FillLightMode { "auto", "off", "flash", }; // Partial dictionaries are unsupported, see // https://github.com/w3c/testharness.js/issues/84 partial dictionary MediaTrackSupportedConstraints { boolean whiteBalanceMode = true; boolean exposureMode = true; boolean focusMode = true; boolean pointsOfInterest = true; boolean exposureCompensation = true; boolean colorTemperature = true; boolean iso = true; boolean brightness = true; boolean contrast = true; boolean saturation = true; boolean sharpness = true; boolean zoom = true; boolean torch = true; }; partial dictionary MediaTrackCapabilities { sequence whiteBalanceMode; sequence exposureMode; sequence focusMode; MediaSettingsRange exposureCompensation; MediaSettingsRange colorTemperature; MediaSettingsRange iso; MediaSettingsRange brightness; MediaSettingsRange contrast; MediaSettingsRange saturation; MediaSettingsRange sharpness; MediaSettingsRange zoom; boolean torch; }; partial dictionary MediaTrackConstraintSet { ConstrainDOMString whiteBalanceMode; ConstrainDOMString exposureMode; ConstrainDOMString focusMode; ConstrainPoint2D pointsOfInterest; ConstrainDouble exposureCompensation; ConstrainDouble colorTemperature; ConstrainDouble iso; ConstrainDouble brightness; ConstrainDouble contrast; ConstrainDouble saturation; ConstrainDouble sharpness; ConstrainDouble zoom; ConstrainBoolean torch; }; partial dictionary MediaTrackSettings { DOMString whiteBalanceMode; DOMString exposureMode; DOMString focusMode; sequence pointsOfInterest; double exposureCompensation; double colorTemperature; double iso; double brightness; double contrast; double saturation; double sharpness; double zoom; boolean torch; }; dictionary ConstrainPoint2DParameters { sequence exact; sequence ideal; }; typedef (sequence or ConstrainPoint2DParameters) ConstrainPoint2D; enum MeteringMode { "none", "manual", "single-shot", "continuous" }; dictionary Point2D { double x = 0.0; double y = 0.0; };