// Copyright 2017 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.

dictionary MediaTrackCapabilities {
    // W3C Image Capture API
    // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section
    // TODO(mcasas) move out when partial dictionaries are supported
    // http://crbug.com/579896.
    sequence<DOMString>  whiteBalanceMode;
    sequence<DOMString>  exposureMode;
    sequence<DOMString>  focusMode;
    MediaSettingsRange   exposureCompensation;
    MediaSettingsRange   colorTemperature;
    MediaSettingsRange   iso;
    MediaSettingsRange   brightness;
    MediaSettingsRange   contrast;
    MediaSettingsRange   saturation;
    MediaSettingsRange   sharpness;
    MediaSettingsRange   zoom;
    boolean              torch;
};
