// 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-mediatracksettings

dictionary MediaTrackSettings {
    long width;
    long height;
    double aspectRatio;
    double frameRate;
    DOMString facingMode;
    // volume, sampleRate and sampleSize are not implemented.
    // double volume;
    // long sampleRate;
    // long sampleSize;
    boolean echoCancellation;
    // latency and channelCount are not implemented.
    // double latency;
    // long channelCount;
    DOMString deviceId;
    // groupId is not implemented.
    // DOMString groupId;
    // Media Capture Depth Stream Extensions
    // https://w3c.github.io/mediacapture-depth/#mediatracksettings-dictionary
    // 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] DOMString videoKind;
    [RuntimeEnabled=MediaCaptureDepth] double depthNear;
    [RuntimeEnabled=MediaCaptureDepth] double depthFar;
    [RuntimeEnabled=MediaCaptureDepth] double focalLengthX;
    [RuntimeEnabled=MediaCaptureDepth] double focalLengthY;
    // W3C Image Capture API
    // https://w3c.github.io/mediacapture-image/#mediatracksettings-section
    // TODO(mcasas) move out when partial dictionaries are supported
    // http://crbug.com/579896.
    DOMString         whiteBalanceMode;
    DOMString         exposureMode;
    DOMString         focusMode;
    sequence<Point2D> pointsOfInterest;
    double            exposureCompensation;
    double            colorTemperature;
    double            iso;
    double            brightness;
    double            contrast;
    double            saturation;
    double            sharpness;
    double            zoom;
    boolean           torch;
};
