// Copyright 2015 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. #ifndef UI_DISPLAY_CHROMEOS_DISPLAY_LAYOUT_MANAGER_H_ #define UI_DISPLAY_CHROMEOS_DISPLAY_LAYOUT_MANAGER_H_ #include #include "third_party/cros_system_api/dbus/service_constants.h" #include "ui/display/chromeos/display_configurator.h" #include "ui/display/types/display_constants.h" namespace ui { struct DisplayConfigureRequest; class DisplaySnapshot; class DisplayLayoutManager { public: virtual ~DisplayLayoutManager() {} virtual DisplayConfigurator::SoftwareMirroringController* GetSoftwareMirroringController() const = 0; virtual DisplayConfigurator::StateController* GetStateController() const = 0; // Returns the current display state. virtual MultipleDisplayState GetDisplayState() const = 0; // Returns the current power state. virtual chromeos::DisplayPowerState GetPowerState() const = 0; // Based on the given |displays|, display state and power state, it will // create display configuration requests which will then be used to // configure the hardware. The requested configuration is stored in // |requests| and |framebuffer_size|. virtual bool GetDisplayLayout(const std::vector& displays, MultipleDisplayState new_display_state, chromeos::DisplayPowerState new_power_state, std::vector* requests, gfx::Size* framebuffer_size) const = 0; virtual std::vector GetDisplayStates() const = 0; virtual bool IsMirroring() const = 0; }; } // namespace ui #endif // UI_DISPLAY_CHROMEOS_DISPLAY_LAYOUT_MANAGER_H_