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

Side by Side Diff: chromeos/display/output_configurator.h

Issue 12505005: Store rotation/ui scale to local state. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_ 5 #ifndef CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_
6 #define CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_ 6 #define CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 public: 55 public:
56 // Called when the change of the display mode finished. It will usually 56 // Called when the change of the display mode finished. It will usually
57 // start the fading in the displays. 57 // start the fading in the displays.
58 virtual void OnDisplayModeChanged() {} 58 virtual void OnDisplayModeChanged() {}
59 59
60 // Called when the change of the display mode is issued but failed. 60 // Called when the change of the display mode is issued but failed.
61 // |failed_new_state| is the new state which the system failed to enter. 61 // |failed_new_state| is the new state which the system failed to enter.
62 virtual void OnDisplayModeChangeFailed(OutputState failed_new_state) {} 62 virtual void OnDisplayModeChangeFailed(OutputState failed_new_state) {}
63 }; 63 };
64 64
65 class Delegate {
66 public:
67 // Called when displays are detected first time. This is to allow
68 // chrome to select the display mode when started.
69 virtual OutputState GetStateForOutputs(
70 const std::vector<RROutput>& outputs) const = 0;
71 };
72
65 OutputConfigurator(); 73 OutputConfigurator();
66 virtual ~OutputConfigurator(); 74 virtual ~OutputConfigurator();
67 75
68 int connected_output_count() const { return connected_output_count_; } 76 int connected_output_count() const { return connected_output_count_; }
69 77
70 OutputState output_state() const { return output_state_; } 78 OutputState output_state() const { return output_state_; }
71 79
80 void set_delegate(Delegate* delegate) { delegate_ = delegate; }
81
72 // Initialization, must be called right after constructor. 82 // Initialization, must be called right after constructor.
73 // |is_panel_fitting_enabled| indicates hardware panel fitting support. 83 // |is_panel_fitting_enabled| indicates hardware panel fitting support.
74 // If |background_color_argb| is non zero and there are multiple displays, 84 // If |background_color_argb| is non zero and there are multiple displays,
75 // OutputConfigurator sets the background color of X's RootWindow to this 85 // OutputConfigurator sets the background color of X's RootWindow to this
76 // color. 86 // color.
77 void Init(bool is_panel_fitting_enabled, uint32 background_color_argb); 87 void Init(bool is_panel_fitting_enabled, uint32 background_color_argb);
78 88
79 // Stop handling display configuration events/requests. 89 // Stop handling display configuration events/requests.
80 void Stop(); 90 void Stop();
81 91
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 XRRScreenResources* screen, 175 XRRScreenResources* screen,
166 Window window, 176 Window window,
167 OutputState output_state, 177 OutputState output_state,
168 DisplayPowerState power_state, 178 DisplayPowerState power_state,
169 const std::vector<OutputSnapshot>& outputs); 179 const std::vector<OutputSnapshot>& outputs);
170 180
171 // Outputs UMA metrics of previous state (the state that is being left). 181 // Outputs UMA metrics of previous state (the state that is being left).
172 // Updates |mirror_mode_preserved_aspect_| and |last_enter_state_time_|. 182 // Updates |mirror_mode_preserved_aspect_| and |last_enter_state_time_|.
173 void RecordPreviousStateUMA(); 183 void RecordPreviousStateUMA();
174 184
185 // Returns next state.
186 OutputState GetNextState(Display* display,
187 XRRScreenResources* screen,
188 OutputState current_state,
189 const std::vector<OutputSnapshot>& outputs) const;
190
191
175 // Tells if the output specified by |output_info| is for internal display. 192 // Tells if the output specified by |output_info| is for internal display.
176 static bool IsInternalOutput(const XRROutputInfo* output_info); 193 static bool IsInternalOutput(const XRROutputInfo* output_info);
177 194
178 // Returns output's native mode, None if not found. 195 // Returns output's native mode, None if not found.
179 static RRMode GetOutputNativeMode(const XRROutputInfo* output_info); 196 static RRMode GetOutputNativeMode(const XRROutputInfo* output_info);
180 197
198 Delegate* delegate_;
199
181 // This is detected by the constructor to determine whether or not we should 200 // This is detected by the constructor to determine whether or not we should
182 // be enabled. If we aren't running on ChromeOS, we can't assume that the 201 // be enabled. If we aren't running on ChromeOS, we can't assume that the
183 // Xrandr X11 extension is supported. 202 // Xrandr X11 extension is supported.
184 // If this flag is set to false, any attempts to change the output 203 // If this flag is set to false, any attempts to change the output
185 // configuration to immediately fail without changing the state. 204 // configuration to immediately fail without changing the state.
186 bool configure_display_; 205 bool configure_display_;
187 206
188 // This is set externally in Init, 207 // This is set externally in Init,
189 // and is used to enable modes which rely on panel fitting. 208 // and is used to enable modes which rely on panel fitting.
190 bool is_panel_fitting_enabled_; 209 bool is_panel_fitting_enabled_;
(...skipping 27 matching lines...) Expand all
218 237
219 // Indicates the time at which |output_state_| was entered. 238 // Indicates the time at which |output_state_| was entered.
220 base::TimeTicks last_enter_state_time_; 239 base::TimeTicks last_enter_state_time_;
221 240
222 DISALLOW_COPY_AND_ASSIGN(OutputConfigurator); 241 DISALLOW_COPY_AND_ASSIGN(OutputConfigurator);
223 }; 242 };
224 243
225 } // namespace chromeos 244 } // namespace chromeos
226 245
227 #endif // CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_ 246 #endif // CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/chromeos/display_options_handler.cc ('k') | chromeos/display/output_configurator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698