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

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

Issue 1019623002: Remove DisplayState from the public interface for DisplayConfigurator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months 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>
(...skipping 24 matching lines...) Expand all
35 class UpdateDisplayConfigurationTask; 35 class UpdateDisplayConfigurationTask;
36 36
37 // This class interacts directly with the system display configurator. 37 // This class interacts directly with the system display configurator.
38 class DISPLAY_EXPORT DisplayConfigurator : public NativeDisplayObserver { 38 class DISPLAY_EXPORT DisplayConfigurator : public NativeDisplayObserver {
39 public: 39 public:
40 typedef uint64_t ContentProtectionClientId; 40 typedef uint64_t ContentProtectionClientId;
41 static const ContentProtectionClientId kInvalidClientId = 0; 41 static const ContentProtectionClientId kInvalidClientId = 0;
42 42
43 typedef base::Callback<void(bool)> ConfigurationCallback; 43 typedef base::Callback<void(bool)> ConfigurationCallback;
44 44
45 struct DisplayState { 45 typedef std::vector<DisplaySnapshot*> DisplayStateList;
dnicoara 2015/03/18 20:01:50 I was thinking of renaming this as well. My though
oshima 2015/03/18 23:02:45 I don't have strong opinion, but I'd prefer to kee
46 DisplayState();
47
48 DisplaySnapshot* display; // Not owned.
49
50 // User-selected mode for the display.
51 const DisplayMode* selected_mode;
52
53 // Mode used when displaying the same desktop on multiple displays.
54 const DisplayMode* mirror_mode;
55 };
56
57 typedef std::vector<DisplayState> DisplayStateList;
58 46
59 class Observer { 47 class Observer {
60 public: 48 public:
61 virtual ~Observer() {} 49 virtual ~Observer() {}
62 50
63 // Called after the display mode has been changed. |display| contains the 51 // Called after the display mode has been changed. |display| contains the
64 // just-applied configuration. Note that the X server is no longer grabbed 52 // just-applied configuration. Note that the X server is no longer grabbed
65 // when this method is called, so the actual configuration could've changed 53 // when this method is called, so the actual configuration could've changed
66 // already. 54 // already.
67 virtual void OnDisplayModeChanged( 55 virtual void OnDisplayModeChanged(
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 const = 0; 97 const = 0;
110 98
111 virtual StateController* GetStateController() const = 0; 99 virtual StateController* GetStateController() const = 0;
112 100
113 // Returns the current display state. 101 // Returns the current display state.
114 virtual MultipleDisplayState GetDisplayState() const = 0; 102 virtual MultipleDisplayState GetDisplayState() const = 0;
115 103
116 // Returns the current power state. 104 // Returns the current power state.
117 virtual chromeos::DisplayPowerState GetPowerState() const = 0; 105 virtual chromeos::DisplayPowerState GetPowerState() const = 0;
118 106
119 // Parses the |displays| into a list of DisplayStates. This effectively adds
120 // |mirror_mode| and |selected_mode| to the returned results.
121 // TODO(dnicoara): This operation doesn't depend on state and could be done
122 // directly in |GetDisplayLayout()|. Though I need to make sure that there
123 // are no uses for those fields outside DisplayConfigurator.
124 virtual std::vector<DisplayState> ParseDisplays(
125 const std::vector<DisplaySnapshot*>& displays) const = 0;
126
127 // Based on the given |displays|, display state and power state, it will 107 // Based on the given |displays|, display state and power state, it will
128 // create display configuration requests which will then be used to 108 // create display configuration requests which will then be used to
129 // configure the hardware. The requested configuration is stored in 109 // configure the hardware. The requested configuration is stored in
130 // |requests| and |framebuffer_size|. 110 // |requests| and |framebuffer_size|.
131 virtual bool GetDisplayLayout( 111 virtual bool GetDisplayLayout(
132 const std::vector<DisplayState>& displays, 112 const std::vector<DisplaySnapshot*>& displays,
133 MultipleDisplayState new_display_state, 113 MultipleDisplayState new_display_state,
134 chromeos::DisplayPowerState new_power_state, 114 chromeos::DisplayPowerState new_power_state,
135 std::vector<DisplayConfigureRequest>* requests, 115 std::vector<DisplayConfigureRequest>* requests,
136 gfx::Size* framebuffer_size) const = 0; 116 gfx::Size* framebuffer_size) const = 0;
137 }; 117 };
138 118
139 // Helper class used by tests. 119 // Helper class used by tests.
140 class TestApi { 120 class TestApi {
141 public: 121 public:
142 TestApi(DisplayConfigurator* configurator) : configurator_(configurator) {} 122 TestApi(DisplayConfigurator* configurator) : configurator_(configurator) {}
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 const gfx::Size& size); 156 const gfx::Size& size);
177 157
178 DisplayConfigurator(); 158 DisplayConfigurator();
179 ~DisplayConfigurator() override; 159 ~DisplayConfigurator() override;
180 160
181 MultipleDisplayState display_state() const { return current_display_state_; } 161 MultipleDisplayState display_state() const { return current_display_state_; }
182 chromeos::DisplayPowerState requested_power_state() const { 162 chromeos::DisplayPowerState requested_power_state() const {
183 return requested_power_state_; 163 return requested_power_state_;
184 } 164 }
185 const gfx::Size framebuffer_size() const { return framebuffer_size_; } 165 const gfx::Size framebuffer_size() const { return framebuffer_size_; }
186 const std::vector<DisplayState>& cached_displays() const { 166 const std::vector<DisplaySnapshot*>& cached_displays() const {
187 return cached_displays_; 167 return cached_displays_;
188 } 168 }
189 169
190 // Called when an external process no longer needs to control the display 170 // Called when an external process no longer needs to control the display
191 // and Chrome can take control. 171 // and Chrome can take control.
192 void TakeControl(); 172 void TakeControl();
193 173
194 // Called when an external process needs to control the display and thus 174 // Called when an external process needs to control the display and thus
195 // Chrome should relinquish it. 175 // Chrome should relinquish it.
196 void RelinquishControl(); 176 void RelinquishControl();
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 void RestoreRequestedPowerStateAfterResume(); 287 void RestoreRequestedPowerStateAfterResume();
308 288
309 // Notifies observers about an attempted state change. 289 // Notifies observers about an attempted state change.
310 void NotifyObservers(bool success, MultipleDisplayState attempted_state); 290 void NotifyObservers(bool success, MultipleDisplayState attempted_state);
311 291
312 // Returns the display state that should be used with |cached_displays_| while 292 // Returns the display state that should be used with |cached_displays_| while
313 // in |power_state|. 293 // in |power_state|.
314 MultipleDisplayState ChooseDisplayState( 294 MultipleDisplayState ChooseDisplayState(
315 chromeos::DisplayPowerState power_state) const; 295 chromeos::DisplayPowerState power_state) const;
316 296
317 // Returns the ratio between mirrored mode area and native mode area:
318 // (mirror_mode_width * mirrow_mode_height) / (native_width * native_height)
319 float GetMirroredDisplayAreaRatio(const DisplayState& display);
320
321 // Returns true if in either hardware or software mirroring mode. 297 // Returns true if in either hardware or software mirroring mode.
322 bool IsMirroring() const; 298 bool IsMirroring() const;
323 299
324 // Applies display protections according to requests. 300 // Applies display protections according to requests.
325 bool ApplyProtections(const ContentProtections& requests); 301 bool ApplyProtections(const ContentProtections& requests);
326 302
327 // If |configuration_task_| isn't initialized, initializes it and starts the 303 // If |configuration_task_| isn't initialized, initializes it and starts the
328 // configuration task. 304 // configuration task.
329 void RunPendingConfiguration(); 305 void RunPendingConfiguration();
330 306
331 // Callback for |configuration_taks_|. When the configuration process finishes 307 // Callback for |configuration_taks_|. When the configuration process finishes
332 // this is called with the result (|success|) and the updated display state. 308 // this is called with the result (|success|) and the updated display state.
333 void OnConfigured(bool success, 309 void OnConfigured(bool success,
334 const std::vector<DisplayState>& displays, 310 const std::vector<DisplaySnapshot*>& displays,
335 const gfx::Size& framebuffer_size, 311 const gfx::Size& framebuffer_size,
336 MultipleDisplayState new_display_state, 312 MultipleDisplayState new_display_state,
337 chromeos::DisplayPowerState new_power_state); 313 chromeos::DisplayPowerState new_power_state);
338 314
339 // Helps in identifying if a configuration task needs to be scheduled. 315 // Helps in identifying if a configuration task needs to be scheduled.
340 // Return true if any of the |requested_*| parameters have been updated. False 316 // Return true if any of the |requested_*| parameters have been updated. False
341 // otherwise. 317 // otherwise.
342 bool ShouldRunConfigurationTask() const; 318 bool ShouldRunConfigurationTask() const;
343 319
344 // Helper functions which will call the callbacks in 320 // Helper functions which will call the callbacks in
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 402
427 // This must be the last variable. 403 // This must be the last variable.
428 base::WeakPtrFactory<DisplayConfigurator> weak_ptr_factory_; 404 base::WeakPtrFactory<DisplayConfigurator> weak_ptr_factory_;
429 405
430 DISALLOW_COPY_AND_ASSIGN(DisplayConfigurator); 406 DISALLOW_COPY_AND_ASSIGN(DisplayConfigurator);
431 }; 407 };
432 408
433 } // namespace ui 409 } // namespace ui
434 410
435 #endif // UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_ 411 #endif // UI_DISPLAY_CHROMEOS_DISPLAY_CONFIGURATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698