// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/mediacapture-main/#idl-def-mediatracksupportedconstraints

// NOTE: The names of this dictionary MUST be kept aligned with those in
// MediaTrackConstraintSet.idl.

dictionary MediaTrackSupportedConstraints {
    boolean width = true;
    boolean height = true;
    boolean aspectRatio = true;
    boolean frameRate = true;
    boolean facingMode = true;
    boolean volume = true;
    boolean sampleRate = true;
    boolean sampleSize = true;
    boolean echoCancellation = true;
    boolean latency = true;
    boolean channelCount = true;
    boolean deviceId = true;
    boolean groupId = true;

    // Media Capture Depth Stream Extensions
    // https://w3c.github.io/mediacapture-depth
    // TODO(aleksandar.stojiljkovic): videoKind, depthNear, depthFar,
    // focalLengthX and focalLengthY attributes should be declared as partial
    // dictionary but IDL parser can't support it yet. http://crbug.com/579896.
    [RuntimeEnabled=MediaCaptureDepthVideoKind] boolean videoKind = true;
    [RuntimeEnabled=MediaCaptureDepth] boolean depthNear = true;
    [RuntimeEnabled=MediaCaptureDepth] boolean depthFar = true;
    [RuntimeEnabled=MediaCaptureDepth] boolean focalLengthX = true;
    [RuntimeEnabled=MediaCaptureDepth] boolean focalLengthY = true;

    // W3C Image Capture API
    // https://w3c.github.io/mediacapture-image/#mediatracksupportedconstraints-section
    // TODO(mcasas) move out when partial dictionaries are supported
    // http://crbug.com/579896.
    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;
};
