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

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

Issue 15067012: Move chromeos specific utility functions for display to chromeos/display (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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 <map> 8 #include <map>
9 #include <string>
9 #include <vector> 10 #include <vector>
10 11
11 #include "base/basictypes.h" 12 #include "base/basictypes.h"
12 #include "base/event_types.h" 13 #include "base/event_types.h"
13 #include "base/observer_list.h" 14 #include "base/observer_list.h"
14 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
15 #include "base/message_loop.h" 16 #include "base/message_loop.h"
16 #include "base/timer.h" 17 #include "base/timer.h"
17 #include "chromeos/chromeos_export.h" 18 #include "chromeos/chromeos_export.h"
18 #include "third_party/cros_system_api/dbus/service_constants.h" 19 #include "third_party/cros_system_api/dbus/service_constants.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 RRMode mirror_mode; 64 RRMode mirror_mode;
64 65
65 int y; 66 int y;
66 int height; 67 int height;
67 68
68 bool is_internal; 69 bool is_internal;
69 bool is_aspect_preserving_scaling; 70 bool is_aspect_preserving_scaling;
70 71
71 // XInput device ID or 0 if this output isn't a touchscreen. 72 // XInput device ID or 0 if this output isn't a touchscreen.
72 int touch_device_id; 73 int touch_device_id;
74
75 // Display id for this output.
76 int64 display_id;
73 }; 77 };
74 78
75 struct CoordinateTransformation { 79 struct CoordinateTransformation {
76 // Initialized to the identity transformation. 80 // Initialized to the identity transformation.
77 CoordinateTransformation(); 81 CoordinateTransformation();
78 82
79 float x_scale; 83 float x_scale;
80 float x_offset; 84 float x_offset;
81 float y_scale; 85 float y_scale;
82 float y_offset; 86 float y_offset;
(...skipping 23 matching lines...) Expand all
106 virtual void OnDisplayModeChangeFailed(OutputState failed_new_state) {} 110 virtual void OnDisplayModeChangeFailed(OutputState failed_new_state) {}
107 }; 111 };
108 112
109 // Interface for classes that make decisions about which output state 113 // Interface for classes that make decisions about which output state
110 // should be used. 114 // should be used.
111 class StateController { 115 class StateController {
112 public: 116 public:
113 virtual ~StateController() {} 117 virtual ~StateController() {}
114 118
115 // Called when displays are detected. 119 // Called when displays are detected.
116 virtual OutputState GetStateForOutputs( 120 virtual OutputState GetStateForDisplayIds(
117 const std::vector<OutputInfo>& outputs) const = 0; 121 const std::vector<int64>& display_ids) const = 0;
118 }; 122 };
119 123
120 // Interface for classes that perform actions on behalf of OutputController. 124 // Interface for classes that perform actions on behalf of OutputController.
121 class Delegate { 125 class Delegate {
122 public: 126 public:
123 virtual ~Delegate() {} 127 virtual ~Delegate() {}
124 128
125 virtual void SetPanelFittingEnabled(bool enabled) = 0; 129 virtual void SetPanelFittingEnabled(bool enabled) = 0;
126 130
127 // Initializes the XRandR extension, saving the base event ID to 131 // Initializes the XRandR extension, saving the base event ID to
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 218
215 // Gap between screens so cursor at bottom of active display doesn't 219 // Gap between screens so cursor at bottom of active display doesn't
216 // partially appear on top of inactive display. Higher numbers guard 220 // partially appear on top of inactive display. Higher numbers guard
217 // against larger cursors, but also waste more memory. 221 // against larger cursors, but also waste more memory.
218 // For simplicity, this is hard-coded to avoid the complexity of always 222 // For simplicity, this is hard-coded to avoid the complexity of always
219 // determining the DPI of the screen and rationalizing which screen we 223 // determining the DPI of the screen and rationalizing which screen we
220 // need to use for the DPI calculation. 224 // need to use for the DPI calculation.
221 // See crbug.com/130188 for initial discussion. 225 // See crbug.com/130188 for initial discussion.
222 static const int kVerticalGap = 60; 226 static const int kVerticalGap = 60;
223 227
224 // Returns true if an output named |name| is an internal display.
225 static bool IsInternalOutputName(const std::string& name);
226
227 OutputConfigurator(); 228 OutputConfigurator();
228 virtual ~OutputConfigurator(); 229 virtual ~OutputConfigurator();
229 230
230 OutputState output_state() const { return output_state_; } 231 OutputState output_state() const { return output_state_; }
231 DisplayPowerState power_state() const { return power_state_; } 232 DisplayPowerState power_state() const { return power_state_; }
232 233
233 void set_state_controller(StateController* controller) { 234 void set_state_controller(StateController* controller) {
234 state_controller_ = controller; 235 state_controller_ = controller;
235 } 236 }
236 237
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 // The timer to delay configuring outputs. See also the comments in 351 // The timer to delay configuring outputs. See also the comments in
351 // Dispatch(). 352 // Dispatch().
352 scoped_ptr<base::OneShotTimer<OutputConfigurator> > configure_timer_; 353 scoped_ptr<base::OneShotTimer<OutputConfigurator> > configure_timer_;
353 354
354 DISALLOW_COPY_AND_ASSIGN(OutputConfigurator); 355 DISALLOW_COPY_AND_ASSIGN(OutputConfigurator);
355 }; 356 };
356 357
357 } // namespace chromeos 358 } // namespace chromeos
358 359
359 #endif // CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_ 360 #endif // CHROMEOS_DISPLAY_OUTPUT_CONFIGURATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698