// Copyright 2015 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-mediatrackconstraintset

typedef (long or ConstrainLongRange) ConstrainLong;
typedef (double or ConstrainDoubleRange) ConstrainDouble;
typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean;
typedef (DOMString or sequence<DOMString> or ConstrainDOMStringParameters) ConstrainDOMString;

dictionary MediaTrackConstraintSet {
    [RuntimeEnabled=MediaConstraints] ConstrainLong width;
    [RuntimeEnabled=MediaConstraints] ConstrainLong height;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble aspectRatio;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble frameRate;
    [RuntimeEnabled=MediaConstraints] ConstrainDOMString facingMode;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble volume;
    [RuntimeEnabled=MediaConstraints] ConstrainLong sampleRate;
    [RuntimeEnabled=MediaConstraints] ConstrainLong sampleSize;
    [RuntimeEnabled=MediaConstraints] ConstrainBoolean echoCancellation;
    [RuntimeEnabled=MediaConstraints] ConstrainDouble latency;
    [RuntimeEnabled=MediaConstraints] ConstrainLong channelCount;
    [RuntimeEnabled=MediaConstraints] ConstrainDOMString deviceId;
    [RuntimeEnabled=MediaConstraints] ConstrainDOMString groupId;
    // The "mandatory" and "_optional" members are retained for conformance
    // with https://www.w3.org/TR/2013/WD-mediacapture-streams-20130903/
    Dictionary mandatory;
    sequence<Dictionary> _optional;
    // Media Capture Depth Stream Extensions
    // https://w3c.github.io/mediacapture-depth/#mediatrackconstraints
    // TODO(aleksandar.stojiljkovic): depthNear, depthFar, focalLengthX and
    // focalLengthY attributes should be declared as partial dictionary but IDL
    // parser can't support it yet. Please see: http://crbug.com/579896.
    [RuntimeEnabled=MediaCaptureDepth] ConstrainDouble depthNear;
    [RuntimeEnabled=MediaCaptureDepth] ConstrainDouble depthFar;
    [RuntimeEnabled=MediaCaptureDepth] ConstrainDouble focalLengthX;
    [RuntimeEnabled=MediaCaptureDepth] ConstrainDouble focalLengthY;
};
