| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_EXTENSIONS_SYSTEM_DISPLAY_DISPLAY_INFO_PROVIDER_UTILS_H_ |
| #define CHROME_BROWSER_EXTENSIONS_SYSTEM_DISPLAY_DISPLAY_INFO_PROVIDER_UTILS_H_ |
| |
| #include "chromeos/crosapi/mojom/cros_display_config.mojom-forward.h" |
| #include "extensions/browser/api/system_display/display_info_provider.h" |
| #include "extensions/common/api/system_display.h" |
| #include "ui/gfx/geometry/insets.h" |
| |
| namespace extensions { |
| |
| // Callback function for CrosDisplayConfigController crosapi interface. |
| // Converts input display layout `info` from crosapi to extension api type. |
| // Passes converted array into a `callback`. |
| void OnGetDisplayLayoutResult( |
| base::OnceCallback<void(DisplayInfoProvider::DisplayLayoutList)> callback, |
| crosapi::mojom::DisplayLayoutInfoPtr info); |
| |
| // Converts display id string to number. |
| // Returns invalid id in case of error. |
| int64_t GetDisplayId(const std::string& display_id_str); |
| |
| // Returns a display object for if display id is found. |
| // Return empty display object otherwise. |
| display::Display GetDisplayForId(const std::string& display_id_str); |
| |
| // Converts display layout `position` from extension api to crosapi type. |
| crosapi::mojom::DisplayLayoutPosition GetDisplayLayoutPosition( |
| api::system_display::LayoutPosition position); |
| |
| // Converts system display `insets` to gfx type. |
| gfx::Insets GetInsets(const api::system_display::Insets& insets); |
| |
| // Converts int `rotation_value` to crosapi type. |
| crosapi::mojom::DisplayRotationOptions GetMojomDisplayRotationOptions( |
| int rotation_value); |
| |
| // Converts crosapi `rotation_options` to int. |
| int GetRotationFromMojomDisplayRotationInfo( |
| crosapi::mojom::DisplayRotationOptions rotation_options); |
| |
| // Validates the DisplayProperties input. Does not perform any tests with |
| // DisplayManager dependencies. Returns an error string on failure or nullopt |
| // on success. |
| std::optional<std::string> ValidateDisplayPropertiesInput( |
| const std::string& display_id_str, |
| const api::system_display::DisplayProperties& info); |
| |
| // Converts display unit crosapi `mojo_info` to system display type. |
| api::system_display::DisplayUnitInfo GetDisplayUnitInfoFromMojo( |
| const crosapi::mojom::DisplayUnitInfo& mojo_info); |
| |
| // Converts system display calibration `pair` to crosapi type. |
| crosapi::mojom::TouchCalibrationPairPtr GetTouchCalibrationPair( |
| const api::system_display::TouchCalibrationPair& pair); |
| |
| void SetDisplayUnitInfoLayoutProperties( |
| const crosapi::mojom::DisplayLayoutInfo& layout, |
| api::system_display::DisplayUnitInfo* display); |
| |
| } // namespace extensions |
| |
| #endif // CHROME_BROWSER_EXTENSIONS_SYSTEM_DISPLAY_DISPLAY_INFO_PROVIDER_UTILS_H_ |