1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_DISPLAY_CHROMEOS_DISPLAY_LAYOUT_MANAGER_H_
6 #define UI_DISPLAY_CHROMEOS_DISPLAY_LAYOUT_MANAGER_H_
10 #include "third_party/cros_system_api/dbus/service_constants.h"
11 #include "ui/display/chromeos/display_configurator.h"
12 #include "ui/display/types/display_constants.h"
16 struct DisplayConfigureRequest
;
17 class DisplaySnapshot
;
19 class DisplayLayoutManager
{
21 virtual ~DisplayLayoutManager() {}
23 virtual DisplayConfigurator::SoftwareMirroringController
*
24 GetSoftwareMirroringController() const = 0;
26 virtual DisplayConfigurator::StateController
* GetStateController() const = 0;
28 // Returns the current display state.
29 virtual MultipleDisplayState
GetDisplayState() const = 0;
31 // Returns the current power state.
32 virtual chromeos::DisplayPowerState
GetPowerState() const = 0;
34 // Based on the given |displays|, display state and power state, it will
35 // create display configuration requests which will then be used to
36 // configure the hardware. The requested configuration is stored in
37 // |requests| and |framebuffer_size|.
38 virtual bool GetDisplayLayout(const std::vector
<DisplaySnapshot
*>& displays
,
39 MultipleDisplayState new_display_state
,
40 chromeos::DisplayPowerState new_power_state
,
41 std::vector
<DisplayConfigureRequest
>* requests
,
42 gfx::Size
* framebuffer_size
) const = 0;
44 virtual std::vector
<DisplaySnapshot
*> GetDisplayStates() const = 0;
46 virtual bool IsMirroring() const = 0;
51 #endif // UI_DISPLAY_CHROMEOS_DISPLAY_LAYOUT_MANAGER_H_