| Index: media/mojo/interfaces/image_capture.mojom
|
| diff --git a/media/mojo/interfaces/image_capture.mojom b/media/mojo/interfaces/image_capture.mojom
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..50504c8e04a788b9db9125de3404eec2eec8e174
|
| --- /dev/null
|
| +++ b/media/mojo/interfaces/image_capture.mojom
|
| @@ -0,0 +1,113 @@
|
| +// 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.
|
| +
|
| +module media.mojom;
|
| +
|
| +// Equivalent to idl MediaSettingsRange, arbitrary range representing the
|
| +// allowed variations of a Capability or an Option.
|
| +// https://www.w3.org/TR/image-capture/#MediaSettingsRange
|
| +struct Range {
|
| + double max;
|
| + double min;
|
| + double current;
|
| + double step;
|
| +};
|
| +
|
| +// https://www.w3.org/TR/image-capture/#MeteringMode
|
| +enum MeteringMode { NONE, MANUAL, SINGLE_SHOT, CONTINUOUS };
|
| +
|
| +// https://www.w3.org/TR/image-capture/#FillLightMode
|
| +enum FillLightMode { NONE, OFF, AUTO, FLASH, TORCH };
|
| +
|
| +// Equivalent to idl PhotoCapabilities,
|
| +// https://www.w3.org/TR/image-capture/#PhotoCapabilities
|
| +struct PhotoCapabilities {
|
| + MeteringMode white_balance_mode;
|
| + Range color_temperature;
|
| + MeteringMode exposure_mode;
|
| + Range exposure_compensation;
|
| + Range iso;
|
| + bool red_eye_reduction;
|
| + MeteringMode focus_mode;
|
| +
|
| + Range brightness;
|
| + Range contrast;
|
| + Range saturation;
|
| + Range sharpness;
|
| + Range height;
|
| + Range width;
|
| + Range zoom;
|
| + FillLightMode fill_light_mode;
|
| +};
|
| +
|
| +// Equivalent to idl Point2D.
|
| +// TODO(mcasas): use gfx::mojom::PointF after https://crbug.com/640049.
|
| +struct Point2D {
|
| + float x;
|
| + float y;
|
| +};
|
| +
|
| +// Equivalent to idl PhotoSettings,
|
| +// https://www.w3.org/TR/image-capture/#PhotoSettings
|
| +struct PhotoSettings {
|
| + // uint32 cannot be nullable, i.e. uint32? does not work, use instead a flag.
|
| + bool has_white_balance_mode;
|
| + MeteringMode white_balance_mode;
|
| + bool has_color_temperature;
|
| + double color_temperature;
|
| + bool has_exposure_mode;
|
| + MeteringMode exposure_mode;
|
| + bool has_exposure_compensation;
|
| + double exposure_compensation;
|
| + bool has_iso;
|
| + double iso;
|
| + bool has_red_eye_reduction;
|
| + bool red_eye_reduction;
|
| + bool has_focus_mode;
|
| + MeteringMode focus_mode;
|
| + array<Point2D> points_of_interest;
|
| +
|
| + bool has_brightness;
|
| + double brightness;
|
| + bool has_contrast;
|
| + double contrast;
|
| + bool has_saturation;
|
| + double saturation;
|
| + bool has_sharpness;
|
| + double sharpness;
|
| + bool has_zoom;
|
| + double zoom;
|
| + bool has_width;
|
| + double width;
|
| + bool has_height;
|
| + double height;
|
| + bool has_fill_light_mode;
|
| + FillLightMode fill_light_mode;
|
| +};
|
| +
|
| +// This is a mojo move-only equivalent of a Blob, i.e. MIME type and Data.
|
| +struct Blob {
|
| + string mime_type;
|
| + array<uint8> data;
|
| +};
|
| +
|
| +// |source_id| is the renderer-side UUID identifier of the image capture device.
|
| +interface ImageCapture
|
| +{
|
| + // Retrieves the image capture device capabilities and current settings.
|
| + // https://www.w3.org/TR/image-capture/#dom-imagecapture-getphotocapabilities
|
| + GetCapabilities(string source_id)
|
| + => (PhotoCapabilities capabilities);
|
| +
|
| + // Sets the |settings| on the associated video capture device.
|
| + // https://www.w3.org/TR/image-capture/#dom-imagecapture-setoptions
|
| + SetOptions(string source_id, PhotoSettings settings)
|
| + => (bool success);
|
| +
|
| + // Takes a Photo from the given |source_id|, returning it encoded in |blob|
|
| + // with the format specified in its |mime_type|.
|
| + // https://www.w3.org/TR/image-capture/#dom-imagecapture-takephoto
|
| + TakePhoto(string source_id)
|
| + => (Blob blob);
|
| +};
|
|
|