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

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

Issue 13756002: chromeos: Add testing support code to OutputConfigurator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove delegate check Created 7 years, 8 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
« no previous file with comments | « no previous file | chromeos/display/output_configurator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 CrtcConfig* config1, 170 CrtcConfig* config1,
171 CrtcConfig* config2) = 0; 171 CrtcConfig* config2) = 0;
172 172
173 // Configures XInput's Coordinate Transformation Matrix property. 173 // Configures XInput's Coordinate Transformation Matrix property.
174 // |touch_device_id| the ID of the touchscreen device to configure. 174 // |touch_device_id| the ID of the touchscreen device to configure.
175 // |ctm| contains the desired transformation parameters. The offsets 175 // |ctm| contains the desired transformation parameters. The offsets
176 // in it should be normalized so that 1 corresponds to the X or Y axis 176 // in it should be normalized so that 1 corresponds to the X or Y axis
177 // size for the corresponding offset. 177 // size for the corresponding offset.
178 virtual void ConfigureCTM(int touch_device_id, 178 virtual void ConfigureCTM(int touch_device_id,
179 const CoordinateTransformation& ctm) = 0; 179 const CoordinateTransformation& ctm) = 0;
180
181 // Sends a D-Bus message to the power manager telling it that the
182 // machine is or is not projecting.
183 virtual void SendProjectingStateToPowerManager(bool projecting) = 0;
184 };
185
186 // Helper class used by tests.
187 class TestApi {
188 public:
189 TestApi(OutputConfigurator* configurator, int xrandr_event_base)
190 : configurator_(configurator),
191 xrandr_event_base_(xrandr_event_base) {}
192 ~TestApi() {}
193
194 // Dispatches RRScreenChangeNotify and RRNotify_OutputChange events to
195 // |configurator_| and runs ConfigureOutputs(). Returns false if
196 // |configure_timer_| wasn't started.
197 bool SendOutputChangeEvents(bool connected);
198
199 private:
200 OutputConfigurator* configurator_; // not owned
201
202 int xrandr_event_base_;
203
204 DISALLOW_COPY_AND_ASSIGN(TestApi);
180 }; 205 };
181 206
182 // Flags that can be passed to SetDisplayPower(). 207 // Flags that can be passed to SetDisplayPower().
183 static const int kSetDisplayPowerNoFlags = 0; 208 static const int kSetDisplayPowerNoFlags = 0;
184 // Configure displays even if the passed-in state matches |power_state_|. 209 // Configure displays even if the passed-in state matches |power_state_|.
185 static const int kSetDisplayPowerForceProbe = 1 << 0; 210 static const int kSetDisplayPowerForceProbe = 1 << 0;
186 // Do not change the state if multiple displays are connected or if the 211 // Do not change the state if multiple displays are connected or if the
187 // only connected display is external. 212 // only connected display is external.
188 static const int kSetDisplayPowerOnlyIfSingleInternalDisplay = 1 << 1; 213 static const int kSetDisplayPowerOnlyIfSingleInternalDisplay = 1 << 1;
189 214
215 // Gap between screens so cursor at bottom of active display doesn't
216 // partially appear on top of inactive display. Higher numbers guard
217 // against larger cursors, but also waste more memory.
218 // For simplicity, this is hard-coded to avoid the complexity of always
219 // determining the DPI of the screen and rationalizing which screen we
220 // need to use for the DPI calculation.
221 // See crbug.com/130188 for initial discussion.
222 static const int kVerticalGap = 60;
223
190 // Returns true if an output named |name| is an internal display. 224 // Returns true if an output named |name| is an internal display.
191 static bool IsInternalOutputName(const std::string& name); 225 static bool IsInternalOutputName(const std::string& name);
192 226
193 OutputConfigurator(); 227 OutputConfigurator();
194 virtual ~OutputConfigurator(); 228 virtual ~OutputConfigurator();
195 229
196 int connected_output_count() const { return connected_output_count_; } 230 int connected_output_count() const { return connected_output_count_; }
197 231
198 OutputState output_state() const { return output_state_; } 232 OutputState output_state() const { return output_state_; }
199 233
200 void set_display_power_state(DisplayPowerState power_state) { 234 void set_display_power_state(DisplayPowerState power_state) {
201 power_state_ = power_state; 235 power_state_ = power_state;
202 } 236 }
203 DisplayPowerState display_power_state() const { return power_state_; } 237 DisplayPowerState display_power_state() const { return power_state_; }
204 238
205 void set_state_controller(StateController* controller) { 239 void set_state_controller(StateController* controller) {
206 state_controller_ = controller; 240 state_controller_ = controller;
207 } 241 }
208 242
243 // Replaces |delegate_| with |delegate| and sets |configure_display_| to
244 // true. Should be called before Init().
245 void SetDelegateForTesting(scoped_ptr<Delegate> delegate);
246
209 // Initialization, must be called right after constructor. 247 // Initialization, must be called right after constructor.
210 // |is_panel_fitting_enabled| indicates hardware panel fitting support. 248 // |is_panel_fitting_enabled| indicates hardware panel fitting support.
211 // If |background_color_argb| is non zero and there are multiple displays, 249 // If |background_color_argb| is non zero and there are multiple displays,
212 // OutputConfigurator sets the background color of X's RootWindow to this 250 // OutputConfigurator sets the background color of X's RootWindow to this
213 // color. 251 // color.
214 void Init(bool is_panel_fitting_enabled, uint32 background_color_argb); 252 void Init(bool is_panel_fitting_enabled, uint32 background_color_argb);
215 253
216 // Detects displays first time from unknown state. 254 // Detects displays first time from unknown state.
217 void Start(); 255 void Start();
218 256
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 // The timer to delay configuring outputs. See also the comments in 338 // The timer to delay configuring outputs. See also the comments in
301 // |Dispatch()|. 339 // |Dispatch()|.
302 scoped_ptr<base::OneShotTimer<OutputConfigurator> > configure_timer_; 340 scoped_ptr<base::OneShotTimer<OutputConfigurator> > configure_timer_;
303 341
304 DISALLOW_COPY_AND_ASSIGN(OutputConfigurator); 342 DISALLOW_COPY_AND_ASSIGN(OutputConfigurator);
305 }; 343 };
306 344
307 } // namespace chromeos 345 } // namespace chromeos
308 346
309 #endif // CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_ 347 #endif // CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_
OLDNEW
« no previous file with comments | « no previous file | chromeos/display/output_configurator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698