| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This interface is deprecated and is not used anymore. |
| // Please use cros_display_config.mojom instead. |
| |
| module crosapi.mojom; |
| |
| import "ui/gfx/geometry/mojom/geometry.mojom"; |
| |
| // The structs in this file are copied from |
| // extensions/common/api/system_display.idl, |
| // with explicit versioning added to allow skew. Some simplifications (e.g., |
| // using gfx.mojom classes) are taken from |
| // ash/public/mojom/cros_display_config.mojom. |
| // However, the two mojoms operate at different layers and have different |
| // version stability requirements, so should not be mixed. |
| |
| [Stable, RenamedFrom="crosapi.mojom.DisplayMode"] |
| struct SysDisplayMode { |
| // The display mode sizes in device independent (user visible) pixels. |
| gfx.mojom.Size size@0; |
| |
| // The display mode size in native pixels. |
| gfx.mojom.Size size_in_native_pixels@1; |
| |
| // double? |ui_scale| is long deprecated, and therefore excluded. |
| |
| // The display mode device scale factor. |
| double device_scale_factor@2; |
| |
| // The display mode refresh rate in hertz. |
| double refresh_rate@3; |
| |
| // True if the mode is the display's native mode. |
| bool is_native@4; |
| |
| // True if the display mode is currently selected. |
| bool is_selected@5; |
| |
| // Whether |is_interlaced| is defined. |
| bool has_is_interlaced@6; |
| |
| // True if this mode is interlaced, false if not provided. |
| bool is_interlaced@7; |
| }; |
| |
| // EDID extracted parameters. Field description refers to "VESA ENHANCED |
| // EXTENDED DISPLAY IDENTIFICATION DATA STANDARD (Defines EDID Structure |
| // Version 1, Revision 4)" Release A, Revision 2 September 25, 2006. |
| // https://www.vesa.org/vesa-standards |
| [Stable, RenamedFrom="crosapi.mojom.Edid"] |
| struct SysDisplayEdid { |
| // Three character manufacturer code, Sec. 3.4.1 page 21. |
| string manufacturer_id@0; |
| |
| // Two byte manufacturer-assigned code, Sec. 3.4.2 page 21. |
| string product_id@1; |
| |
| // Year of manufacture. Sec. 3.4.4 page 22. |
| int32 year_of_manufacture@2; |
| }; |
| |
| // Struct to transmit extensions::api::system_display::DisplayUnitInfo. |
| [Stable, RenamedFrom="crosapi.mojom.DisplayUnitInfo"] |
| struct SysDisplayUnitInfo { |
| // The unique identifier of the display. |
| string id@0; |
| |
| // The user-friendly name (e.g. "Acme LCD monitor"). |
| string name@1; |
| |
| // EDID properties when available. |
| SysDisplayEdid? edid@2; |
| |
| // Identifier of the display that is being mirrored if mirroring is enabled, |
| // otherwise empty. This will be set for all displays (including the display |
| // being mirrored). |
| string mirroring_source_id@3; |
| |
| // Identifiers of the displays to which the source display is being mirrored. |
| // Empty if no displays are being mirrored. This will be set to the same value |
| // for all displays. This must not include |mirroringSourceId|. |
| array<string> mirroring_destination_ids@4; |
| |
| // True if this is the primary display. |
| bool is_primary@5; |
| |
| // True if this is an internal display. |
| bool is_internal@6; |
| |
| // True if this display is enabled. |
| bool is_enabled@7; |
| |
| // True for all displays when in unified desktop mode. See documentation |
| // for $(ref:enableUnifiedDesktop). |
| bool is_unified@8; |
| |
| // Whether |is_auto_rotation_allowed| is defined. |
| bool has_is_auto_rotation_allowed@9; |
| |
| // Optional: True when the auto-rotation is allowed in the device. |
| bool is_auto_rotation_allowed@10; |
| |
| // The number of pixels per inch along the x-axis. |
| double dpi_x@11; |
| |
| // The number of pixels per inch along the y-axis. |
| double dpi_y@12; |
| |
| // The display's clockwise rotation in degrees relative to the vertical |
| // position. A value of -1 will be interpreted as auto-rotate when the device |
| // is in a physical tablet state. |
| int32 rotation@13; |
| |
| // The display's logical bounds, represented using Rect. |
| gfx.mojom.Rect bounds_as_rect@14; |
| |
| // The display's ovserscan insets within its screen's bounds. |
| gfx.mojom.Insets overscan@15; |
| |
| // The usable work area of the display within the display bounds, represented |
| // using Rect. Excludes areas of the display reserved for the OS, e.g. the |
| // taskbar and launcher. |
| gfx.mojom.Rect work_area_as_rect@16; |
| |
| // The list of available display modes. The current mode will have |
| // is_selected=true. |
| array<SysDisplayMode> modes@17; |
| |
| // True if this display has a touch input device associated with it. |
| bool has_touch_support@18; |
| |
| // True if this display has an accelerometer associated with it. |
| bool has_accelerometer_support@19; |
| |
| // The list of allowed zoom factor values for the display. |
| array<double> available_display_zoom_factors@20; |
| |
| // The ratio between the display's current and default zoom. i.e. 1.0 is |
| // is equivalent to 100% zoom, and value 1.5 is equivalent to 150% zoom. |
| double display_zoom_factor@21; |
| }; |
| |
| // Interface for display change observer. Implemented by lacros-chrome. Used by |
| // ash-chrome to send display change event. |
| [Stable, Uuid="5c1e28fd-2f79-4b47-ab7c-780ef0cd2b0a"] |
| interface DisplayChangeObserver { |
| // Called by ash-chrome when display changes. |
| OnCrosapiDisplayChanged@0(); |
| }; |
| |
| // Deprecated. |
| // Replaced by CrosDisplayConfigController. |
| // Crosapi support for chrome.system.display extensions API. |
| [Stable, Uuid="07f25a88-9762-4876-a8ce-2c1e6ad9f797", |
| RenamedFrom="crosapi.mojom.SystemDisplay"] |
| interface SystemDisplayDeprecated { |
| // Returns the properties for all displays. If |single_unified| is true, a |
| // single display will be returned if the display layout is in unifed mode. |
| GetDisplayUnitInfoList@0(bool single_unified) => |
| (array<SysDisplayUnitInfo> info_list); |
| |
| // Adds an observer for display change. Multiple observers may be registered. |
| [MinVersion=1] AddDisplayChangeObserver@1( |
| pending_remote<DisplayChangeObserver> observer); |
| }; |