OLD | NEW |
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 #include "ui/display/chromeos/display_configurator.h" | 5 #include "ui/display/chromeos/display_configurator.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <cmath> | 9 #include <cmath> |
10 #include <cstdarg> | 10 #include <cstdarg> |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 outputs_ = outputs; | 147 outputs_ = outputs; |
148 } | 148 } |
149 | 149 |
150 void set_max_configurable_pixels(int pixels) { | 150 void set_max_configurable_pixels(int pixels) { |
151 max_configurable_pixels_ = pixels; | 151 max_configurable_pixels_ = pixels; |
152 } | 152 } |
153 | 153 |
154 void set_hdcp_state(HDCPState state) { hdcp_state_ = state; } | 154 void set_hdcp_state(HDCPState state) { hdcp_state_ = state; } |
155 | 155 |
156 // DisplayConfigurator::Delegate overrides: | 156 // DisplayConfigurator::Delegate overrides: |
157 virtual void Initialize() OVERRIDE { log_->AppendAction(kInitXRandR); } | 157 virtual void Initialize() override { log_->AppendAction(kInitXRandR); } |
158 virtual void GrabServer() OVERRIDE { log_->AppendAction(kGrab); } | 158 virtual void GrabServer() override { log_->AppendAction(kGrab); } |
159 virtual void UngrabServer() OVERRIDE { log_->AppendAction(kUngrab); } | 159 virtual void UngrabServer() override { log_->AppendAction(kUngrab); } |
160 virtual void SyncWithServer() OVERRIDE { log_->AppendAction(kSync); } | 160 virtual void SyncWithServer() override { log_->AppendAction(kSync); } |
161 virtual void SetBackgroundColor(uint32_t color_argb) OVERRIDE { | 161 virtual void SetBackgroundColor(uint32_t color_argb) override { |
162 log_->AppendAction(GetBackgroundAction(color_argb)); | 162 log_->AppendAction(GetBackgroundAction(color_argb)); |
163 } | 163 } |
164 virtual void ForceDPMSOn() OVERRIDE { log_->AppendAction(kForceDPMS); } | 164 virtual void ForceDPMSOn() override { log_->AppendAction(kForceDPMS); } |
165 virtual std::vector<DisplaySnapshot*> GetDisplays() OVERRIDE { | 165 virtual std::vector<DisplaySnapshot*> GetDisplays() override { |
166 return outputs_; | 166 return outputs_; |
167 } | 167 } |
168 virtual void AddMode(const DisplaySnapshot& output, | 168 virtual void AddMode(const DisplaySnapshot& output, |
169 const DisplayMode* mode) OVERRIDE { | 169 const DisplayMode* mode) override { |
170 log_->AppendAction(GetAddOutputModeAction(output, mode)); | 170 log_->AppendAction(GetAddOutputModeAction(output, mode)); |
171 } | 171 } |
172 virtual bool Configure(const DisplaySnapshot& output, | 172 virtual bool Configure(const DisplaySnapshot& output, |
173 const DisplayMode* mode, | 173 const DisplayMode* mode, |
174 const gfx::Point& origin) OVERRIDE { | 174 const gfx::Point& origin) override { |
175 log_->AppendAction(GetCrtcAction(output, mode, origin)); | 175 log_->AppendAction(GetCrtcAction(output, mode, origin)); |
176 | 176 |
177 if (max_configurable_pixels_ == 0) | 177 if (max_configurable_pixels_ == 0) |
178 return true; | 178 return true; |
179 | 179 |
180 if (!mode) | 180 if (!mode) |
181 return false; | 181 return false; |
182 | 182 |
183 return mode->size().GetArea() <= max_configurable_pixels_; | 183 return mode->size().GetArea() <= max_configurable_pixels_; |
184 } | 184 } |
185 virtual void CreateFrameBuffer(const gfx::Size& size) OVERRIDE { | 185 virtual void CreateFrameBuffer(const gfx::Size& size) override { |
186 log_->AppendAction( | 186 log_->AppendAction( |
187 GetFramebufferAction(size, | 187 GetFramebufferAction(size, |
188 outputs_.size() >= 1 ? outputs_[0] : NULL, | 188 outputs_.size() >= 1 ? outputs_[0] : NULL, |
189 outputs_.size() >= 2 ? outputs_[1] : NULL)); | 189 outputs_.size() >= 2 ? outputs_[1] : NULL)); |
190 } | 190 } |
191 virtual bool GetHDCPState(const DisplaySnapshot& output, | 191 virtual bool GetHDCPState(const DisplaySnapshot& output, |
192 HDCPState* state) OVERRIDE { | 192 HDCPState* state) override { |
193 *state = hdcp_state_; | 193 *state = hdcp_state_; |
194 return true; | 194 return true; |
195 } | 195 } |
196 | 196 |
197 virtual bool SetHDCPState(const DisplaySnapshot& output, | 197 virtual bool SetHDCPState(const DisplaySnapshot& output, |
198 HDCPState state) OVERRIDE { | 198 HDCPState state) override { |
199 log_->AppendAction(GetSetHDCPStateAction(output, state)); | 199 log_->AppendAction(GetSetHDCPStateAction(output, state)); |
200 return true; | 200 return true; |
201 } | 201 } |
202 | 202 |
203 virtual std::vector<ui::ColorCalibrationProfile> | 203 virtual std::vector<ui::ColorCalibrationProfile> |
204 GetAvailableColorCalibrationProfiles(const DisplaySnapshot& output) OVERRIDE { | 204 GetAvailableColorCalibrationProfiles(const DisplaySnapshot& output) override { |
205 return std::vector<ui::ColorCalibrationProfile>(); | 205 return std::vector<ui::ColorCalibrationProfile>(); |
206 } | 206 } |
207 | 207 |
208 virtual bool SetColorCalibrationProfile( | 208 virtual bool SetColorCalibrationProfile( |
209 const DisplaySnapshot& output, | 209 const DisplaySnapshot& output, |
210 ui::ColorCalibrationProfile new_profile) OVERRIDE { | 210 ui::ColorCalibrationProfile new_profile) override { |
211 return false; | 211 return false; |
212 } | 212 } |
213 | 213 |
214 virtual void AddObserver(NativeDisplayObserver* observer) OVERRIDE {} | 214 virtual void AddObserver(NativeDisplayObserver* observer) override {} |
215 | 215 |
216 virtual void RemoveObserver(NativeDisplayObserver* observer) OVERRIDE {} | 216 virtual void RemoveObserver(NativeDisplayObserver* observer) override {} |
217 | 217 |
218 private: | 218 private: |
219 // Outputs to be returned by GetDisplays(). | 219 // Outputs to be returned by GetDisplays(). |
220 std::vector<DisplaySnapshot*> outputs_; | 220 std::vector<DisplaySnapshot*> outputs_; |
221 | 221 |
222 // |max_configurable_pixels_| represents the maximum number of pixels that | 222 // |max_configurable_pixels_| represents the maximum number of pixels that |
223 // Configure will support. Tests can use this to force Configure | 223 // Configure will support. Tests can use this to force Configure |
224 // to fail if attempting to set a resolution that is higher than what | 224 // to fail if attempting to set a resolution that is higher than what |
225 // a device might support under a given circumstance. | 225 // a device might support under a given circumstance. |
226 // A value of 0 means that no limit is enforced and Configure will | 226 // A value of 0 means that no limit is enforced and Configure will |
(...skipping 28 matching lines...) Expand all Loading... |
255 | 255 |
256 void Reset() { | 256 void Reset() { |
257 num_changes_ = 0; | 257 num_changes_ = 0; |
258 num_failures_ = 0; | 258 num_failures_ = 0; |
259 latest_outputs_.clear(); | 259 latest_outputs_.clear(); |
260 latest_failed_state_ = MULTIPLE_DISPLAY_STATE_INVALID; | 260 latest_failed_state_ = MULTIPLE_DISPLAY_STATE_INVALID; |
261 } | 261 } |
262 | 262 |
263 // DisplayConfigurator::Observer overrides: | 263 // DisplayConfigurator::Observer overrides: |
264 virtual void OnDisplayModeChanged( | 264 virtual void OnDisplayModeChanged( |
265 const DisplayConfigurator::DisplayStateList& outputs) OVERRIDE { | 265 const DisplayConfigurator::DisplayStateList& outputs) override { |
266 num_changes_++; | 266 num_changes_++; |
267 latest_outputs_ = outputs; | 267 latest_outputs_ = outputs; |
268 } | 268 } |
269 | 269 |
270 virtual void OnDisplayModeChangeFailed(MultipleDisplayState failed_new_state) | 270 virtual void OnDisplayModeChangeFailed(MultipleDisplayState failed_new_state) |
271 OVERRIDE { | 271 override { |
272 num_failures_++; | 272 num_failures_++; |
273 latest_failed_state_ = failed_new_state; | 273 latest_failed_state_ = failed_new_state; |
274 } | 274 } |
275 | 275 |
276 private: | 276 private: |
277 DisplayConfigurator* configurator_; // Not owned. | 277 DisplayConfigurator* configurator_; // Not owned. |
278 | 278 |
279 // Number of times that OnDisplayMode*() has been called. | 279 // Number of times that OnDisplayMode*() has been called. |
280 int num_changes_; | 280 int num_changes_; |
281 int num_failures_; | 281 int num_failures_; |
282 | 282 |
283 // Parameters most recently passed to OnDisplayMode*(). | 283 // Parameters most recently passed to OnDisplayMode*(). |
284 DisplayConfigurator::DisplayStateList latest_outputs_; | 284 DisplayConfigurator::DisplayStateList latest_outputs_; |
285 MultipleDisplayState latest_failed_state_; | 285 MultipleDisplayState latest_failed_state_; |
286 | 286 |
287 DISALLOW_COPY_AND_ASSIGN(TestObserver); | 287 DISALLOW_COPY_AND_ASSIGN(TestObserver); |
288 }; | 288 }; |
289 | 289 |
290 class TestStateController : public DisplayConfigurator::StateController { | 290 class TestStateController : public DisplayConfigurator::StateController { |
291 public: | 291 public: |
292 TestStateController() : state_(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED) {} | 292 TestStateController() : state_(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED) {} |
293 virtual ~TestStateController() {} | 293 virtual ~TestStateController() {} |
294 | 294 |
295 void set_state(MultipleDisplayState state) { state_ = state; } | 295 void set_state(MultipleDisplayState state) { state_ = state; } |
296 | 296 |
297 // DisplayConfigurator::StateController overrides: | 297 // DisplayConfigurator::StateController overrides: |
298 virtual MultipleDisplayState GetStateForDisplayIds( | 298 virtual MultipleDisplayState GetStateForDisplayIds( |
299 const std::vector<int64_t>& outputs) const OVERRIDE { | 299 const std::vector<int64_t>& outputs) const override { |
300 return state_; | 300 return state_; |
301 } | 301 } |
302 virtual bool GetResolutionForDisplayId(int64_t display_id, | 302 virtual bool GetResolutionForDisplayId(int64_t display_id, |
303 gfx::Size* size) const OVERRIDE { | 303 gfx::Size* size) const override { |
304 return false; | 304 return false; |
305 } | 305 } |
306 | 306 |
307 private: | 307 private: |
308 MultipleDisplayState state_; | 308 MultipleDisplayState state_; |
309 | 309 |
310 DISALLOW_COPY_AND_ASSIGN(TestStateController); | 310 DISALLOW_COPY_AND_ASSIGN(TestStateController); |
311 }; | 311 }; |
312 | 312 |
313 class TestMirroringController | 313 class TestMirroringController |
314 : public DisplayConfigurator::SoftwareMirroringController { | 314 : public DisplayConfigurator::SoftwareMirroringController { |
315 public: | 315 public: |
316 TestMirroringController() : software_mirroring_enabled_(false) {} | 316 TestMirroringController() : software_mirroring_enabled_(false) {} |
317 virtual ~TestMirroringController() {} | 317 virtual ~TestMirroringController() {} |
318 | 318 |
319 virtual void SetSoftwareMirroring(bool enabled) OVERRIDE { | 319 virtual void SetSoftwareMirroring(bool enabled) override { |
320 software_mirroring_enabled_ = enabled; | 320 software_mirroring_enabled_ = enabled; |
321 } | 321 } |
322 | 322 |
323 virtual bool SoftwareMirroringEnabled() const OVERRIDE { | 323 virtual bool SoftwareMirroringEnabled() const override { |
324 return software_mirroring_enabled_; | 324 return software_mirroring_enabled_; |
325 } | 325 } |
326 | 326 |
327 private: | 327 private: |
328 bool software_mirroring_enabled_; | 328 bool software_mirroring_enabled_; |
329 | 329 |
330 DISALLOW_COPY_AND_ASSIGN(TestMirroringController); | 330 DISALLOW_COPY_AND_ASSIGN(TestMirroringController); |
331 }; | 331 }; |
332 | 332 |
333 class DisplayConfiguratorTest : public testing::Test { | 333 class DisplayConfiguratorTest : public testing::Test { |
334 public: | 334 public: |
335 DisplayConfiguratorTest() | 335 DisplayConfiguratorTest() |
336 : small_mode_(gfx::Size(1366, 768), false, 60.0f), | 336 : small_mode_(gfx::Size(1366, 768), false, 60.0f), |
337 big_mode_(gfx::Size(2560, 1600), false, 60.0f), | 337 big_mode_(gfx::Size(2560, 1600), false, 60.0f), |
338 observer_(&configurator_), | 338 observer_(&configurator_), |
339 test_api_(&configurator_) {} | 339 test_api_(&configurator_) {} |
340 virtual ~DisplayConfiguratorTest() {} | 340 virtual ~DisplayConfiguratorTest() {} |
341 | 341 |
342 virtual void SetUp() OVERRIDE { | 342 virtual void SetUp() override { |
343 log_.reset(new ActionLogger()); | 343 log_.reset(new ActionLogger()); |
344 | 344 |
345 native_display_delegate_ = new TestNativeDisplayDelegate(log_.get()); | 345 native_display_delegate_ = new TestNativeDisplayDelegate(log_.get()); |
346 configurator_.SetDelegateForTesting( | 346 configurator_.SetDelegateForTesting( |
347 scoped_ptr<NativeDisplayDelegate>(native_display_delegate_)); | 347 scoped_ptr<NativeDisplayDelegate>(native_display_delegate_)); |
348 | 348 |
349 configurator_.set_state_controller(&state_controller_); | 349 configurator_.set_state_controller(&state_controller_); |
350 configurator_.set_mirroring_controller(&mirroring_controller_); | 350 configurator_.set_mirroring_controller(&mirroring_controller_); |
351 | 351 |
352 std::vector<const DisplayMode*> modes; | 352 std::vector<const DisplayMode*> modes; |
(...skipping 979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1332 JoinActions( | 1332 JoinActions( |
1333 kGrab, | 1333 kGrab, |
1334 GetFramebufferAction(small_mode_.size(), &outputs_[0], NULL).c_str(), | 1334 GetFramebufferAction(small_mode_.size(), &outputs_[0], NULL).c_str(), |
1335 GetCrtcAction(outputs_[0], &small_mode_, gfx::Point(0, 0)).c_str(), | 1335 GetCrtcAction(outputs_[0], &small_mode_, gfx::Point(0, 0)).c_str(), |
1336 kUngrab, | 1336 kUngrab, |
1337 NULL), | 1337 NULL), |
1338 log_->GetActionsAndClear()); | 1338 log_->GetActionsAndClear()); |
1339 } | 1339 } |
1340 | 1340 |
1341 } // namespace ui | 1341 } // namespace ui |
OLD | NEW |