| 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 |