Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(848)

Side by Side Diff: ui/display/chromeos/display_configurator.h

Issue 788423002: Add display task to trigger display configuration (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@async-refactor3
Patch Set: . Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_ 5 #ifndef UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_
6 #define UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_ 6 #define UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
11 #include <string> 11 #include <string>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/event_types.h" 14 #include "base/event_types.h"
15 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
16 #include "base/observer_list.h" 16 #include "base/observer_list.h"
17 #include "base/timer/timer.h" 17 #include "base/timer/timer.h"
18 #include "third_party/cros_system_api/dbus/service_constants.h" 18 #include "third_party/cros_system_api/dbus/service_constants.h"
19 #include "ui/display/chromeos/configure_displays_task.h"
19 #include "ui/display/display_export.h" 20 #include "ui/display/display_export.h"
20 #include "ui/display/types/display_constants.h" 21 #include "ui/display/types/display_constants.h"
21 #include "ui/display/types/native_display_observer.h" 22 #include "ui/display/types/native_display_observer.h"
22 #include "ui/gfx/geometry/size.h" 23 #include "ui/gfx/geometry/size.h"
23 24
24 namespace gfx { 25 namespace gfx {
25 class Point; 26 class Point;
26 class Size; 27 class Size;
27 } 28 }
28 29
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 // Interface for classes that implement software based mirroring. 88 // Interface for classes that implement software based mirroring.
88 class SoftwareMirroringController { 89 class SoftwareMirroringController {
89 public: 90 public:
90 virtual ~SoftwareMirroringController() {} 91 virtual ~SoftwareMirroringController() {}
91 92
92 // Called when the hardware mirroring failed. 93 // Called when the hardware mirroring failed.
93 virtual void SetSoftwareMirroring(bool enabled) = 0; 94 virtual void SetSoftwareMirroring(bool enabled) = 0;
94 virtual bool SoftwareMirroringEnabled() const = 0; 95 virtual bool SoftwareMirroringEnabled() const = 0;
95 }; 96 };
96 97
98 class DisplayLayoutManager {
99 public:
100 virtual ~DisplayLayoutManager() {}
101
102 virtual SoftwareMirroringController* GetSoftwareMirroringController()
103 const = 0;
104
105 virtual StateController* GetStateController() const = 0;
106
107 // Returns the current display state.
108 virtual MultipleDisplayState GetDisplayState() const = 0;
109
110 // Returns the current power state.
111 virtual chromeos::DisplayPowerState GetPowerState() const = 0;
112
113 // Parses the displays and adds |mirror_mode| and |selected_mode|.
Daniel Erat 2014/12/11 23:34:07 the mirror_mode and selected_mode mentions seem co
114 // TODO(dnicoara): This operation doesn't depend on state and could be done
115 // directly in |GetDisplayLayout()|. Though I need to make sure that there
116 // are no uses for those fields outside DisplayConfigurator.
117 virtual std::vector<DisplayState> ParseDisplays(
118 const std::vector<DisplaySnapshot*>& displays) const = 0;
119
120 // Based on the given |displays|, display state and power state, it will
121 // create display configuration requests which will then be used to
122 // configure the hardware. The requested configuration is stored in
123 // |requests| and |framebuffer_size|.
124 virtual bool GetDisplayLayout(
125 const std::vector<DisplayState>& displays,
126 MultipleDisplayState new_display_state,
127 chromeos::DisplayPowerState new_power_state,
128 std::vector<DisplayConfigureRequest>* requests,
129 gfx::Size* framebuffer_size) const = 0;
130 };
131
97 // Helper class used by tests. 132 // Helper class used by tests.
98 class TestApi { 133 class TestApi {
99 public: 134 public:
100 TestApi(DisplayConfigurator* configurator) : configurator_(configurator) {} 135 TestApi(DisplayConfigurator* configurator) : configurator_(configurator) {}
101 ~TestApi() {} 136 ~TestApi() {}
102 137
103 // If |configure_timer_| is started, stops the timer, runs 138 // If |configure_timer_| is started, stops the timer, runs
104 // ConfigureDisplays(), and returns true; returns false otherwise. 139 // ConfigureDisplays(), and returns true; returns false otherwise.
105 bool TriggerConfigureTimeout() WARN_UNUSED_RESULT; 140 bool TriggerConfigureTimeout() WARN_UNUSED_RESULT;
106 141
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 395
361 // Display controlled by an external entity. 396 // Display controlled by an external entity.
362 bool display_externally_controlled_; 397 bool display_externally_controlled_;
363 398
364 DISALLOW_COPY_AND_ASSIGN(DisplayConfigurator); 399 DISALLOW_COPY_AND_ASSIGN(DisplayConfigurator);
365 }; 400 };
366 401
367 } // namespace ui 402 } // namespace ui
368 403
369 #endif // UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_ 404 #endif // UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698