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

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

Issue 2540313002: Split //ui/display and create //ui/display/manager. (Closed)
Patch Set: Cleanup export header. Created 4 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef UI_DISPLAY_CHROMEOS_UPDATE_DISPLAY_CONFIGURATION_TASK_H_
6 #define UI_DISPLAY_CHROMEOS_UPDATE_DISPLAY_CONFIGURATION_TASK_H_
7
8 #include <stdint.h>
9
10 #include <vector>
11
12 #include "base/macros.h"
13 #include "base/memory/weak_ptr.h"
14 #include "ui/display/chromeos/configure_displays_task.h"
15 #include "ui/display/chromeos/display_configurator.h"
16
17 namespace ui {
18
19 class DisplaySnapshot;
20 class NativeDisplayDelegate;
21
22 class DISPLAY_EXPORT UpdateDisplayConfigurationTask {
23 public:
24 typedef base::Callback<void(
25 bool /* success */,
26 const std::vector<DisplaySnapshot*>& /* displays */,
27 const gfx::Size& /* framebuffer_size */,
28 MultipleDisplayState /* new_display_state */,
29 chromeos::DisplayPowerState /* new_power_state */)> ResponseCallback;
30
31 UpdateDisplayConfigurationTask(NativeDisplayDelegate* delegate,
32 DisplayLayoutManager* layout_manager,
33 MultipleDisplayState new_display_state,
34 chromeos::DisplayPowerState new_power_state,
35 int power_flags,
36 uint32_t background_color_argb,
37 bool force_configure,
38 const ResponseCallback& callback);
39 ~UpdateDisplayConfigurationTask();
40
41 // The pointers to the DisplaySnapshots in this vector are owned by
42 // DisplayConfigurator.
43 void set_virtual_display_snapshots(std::vector<DisplaySnapshot*> snapshots) {
44 virtual_display_snapshots_ = snapshots;
45 }
46
47 void Run();
48
49 private:
50 // Callback to NativeDisplayDelegate::GetDisplays().
51 void OnDisplaysUpdated(const std::vector<DisplaySnapshot*>& displays);
52
53 // Callback to ConfigureDisplaysTask used to process the result of a display
54 // configuration run.
55 void OnStateEntered(ConfigureDisplaysTask::Status status);
56
57 // If the initial display configuration run failed due to errors entering
58 // mirror more, another configuration run is executed to enter software
59 // mirroring. This is the callback used to process the result of that
60 // configuration.
61 void OnEnableSoftwareMirroring(ConfigureDisplaysTask::Status status);
62
63 // Starts the configuration process. |callback| is used to continue the task
64 // after |configure_taks_| finishes executing.
65 void EnterState(const ConfigureDisplaysTask::ResponseCallback& callback);
66
67 // Finishes display configuration and runs |callback_|.
68 void FinishConfiguration(bool success);
69
70 // Returns true if the DPMS state should be force to on.
71 bool ShouldForceDpms() const;
72
73 // Returns true if a display configuration is required.
74 bool ShouldConfigure() const;
75
76 // Returns a display state based on the power state.
77 MultipleDisplayState ChooseDisplayState() const;
78
79 NativeDisplayDelegate* delegate_; // Not owned.
80 DisplayLayoutManager* layout_manager_; // Not owned.
81
82 // Requested display state.
83 MultipleDisplayState new_display_state_;
84
85 // Requested power state.
86 chromeos::DisplayPowerState new_power_state_;
87
88 // Bitwise-or-ed values for the kSetDisplayPower* values defined in
89 // DisplayConfigurator.
90 int power_flags_;
91
92 uint32_t background_color_argb_;
93
94 bool force_configure_;
95
96 // Used to signal that the task has finished.
97 ResponseCallback callback_;
98
99 bool force_dpms_;
100
101 // List of updated displays.
102 std::vector<DisplaySnapshot*> cached_displays_;
103
104 // Vector of unowned VirtualDisplaySnapshots to be added when doing the task.
105 std::vector<DisplaySnapshot*> virtual_display_snapshots_;
106
107 gfx::Size framebuffer_size_;
108
109 std::unique_ptr<ConfigureDisplaysTask> configure_task_;
110
111 base::WeakPtrFactory<UpdateDisplayConfigurationTask> weak_ptr_factory_;
112
113 DISALLOW_COPY_AND_ASSIGN(UpdateDisplayConfigurationTask);
114 };
115
116 } // namespace ui
117
118 #endif // UI_DISPLAY_CHROMEOS_UPDATE_DISPLAY_CONFIGURATION_TASK_H_
OLDNEW
« no previous file with comments | « ui/display/chromeos/touchscreen_util_unittest.cc ('k') | ui/display/chromeos/update_display_configuration_task.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698