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 "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 if (on) | 84 if (on) |
85 num_on_displays++; | 85 num_on_displays++; |
86 } | 86 } |
87 return num_on_displays; | 87 return num_on_displays; |
88 } | 88 } |
89 | 89 |
90 } // namespace | 90 } // namespace |
91 | 91 |
92 DisplayConfigurator::DisplayState::DisplayState() | 92 DisplayConfigurator::DisplayState::DisplayState() |
93 : display(NULL), | 93 : display(NULL), |
94 touch_device_id(0), | |
95 selected_mode(NULL), | 94 selected_mode(NULL), |
96 mirror_mode(NULL) {} | 95 mirror_mode(NULL) {} |
97 | 96 |
98 bool DisplayConfigurator::TestApi::TriggerConfigureTimeout() { | 97 bool DisplayConfigurator::TestApi::TriggerConfigureTimeout() { |
99 if (configurator_->configure_timer_.get() && | 98 if (configurator_->configure_timer_.get() && |
100 configurator_->configure_timer_->IsRunning()) { | 99 configurator_->configure_timer_->IsRunning()) { |
101 configurator_->configure_timer_.reset(); | 100 configurator_->configure_timer_.reset(); |
102 configurator_->ConfigureDisplays(); | 101 configurator_->ConfigureDisplays(); |
103 return true; | 102 return true; |
104 } else { | 103 } else { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 display_state_(MULTIPLE_DISPLAY_STATE_INVALID), | 151 display_state_(MULTIPLE_DISPLAY_STATE_INVALID), |
153 power_state_(chromeos::DISPLAY_POWER_ALL_ON), | 152 power_state_(chromeos::DISPLAY_POWER_ALL_ON), |
154 next_display_protection_client_id_(1) {} | 153 next_display_protection_client_id_(1) {} |
155 | 154 |
156 DisplayConfigurator::~DisplayConfigurator() { | 155 DisplayConfigurator::~DisplayConfigurator() { |
157 if (native_display_delegate_) | 156 if (native_display_delegate_) |
158 native_display_delegate_->RemoveObserver(this); | 157 native_display_delegate_->RemoveObserver(this); |
159 } | 158 } |
160 | 159 |
161 void DisplayConfigurator::SetDelegatesForTesting( | 160 void DisplayConfigurator::SetDelegatesForTesting( |
162 scoped_ptr<NativeDisplayDelegate> display_delegate, | 161 scoped_ptr<NativeDisplayDelegate> display_delegate) { |
163 scoped_ptr<TouchscreenDelegate> touchscreen_delegate) { | |
164 DCHECK(!native_display_delegate_); | 162 DCHECK(!native_display_delegate_); |
165 DCHECK(!touchscreen_delegate_); | |
166 | 163 |
167 InitializeDelegates(display_delegate.Pass(), touchscreen_delegate.Pass()); | 164 InitializeDelegates(display_delegate.Pass()); |
168 configure_display_ = true; | 165 configure_display_ = true; |
169 } | 166 } |
170 | 167 |
171 void DisplayConfigurator::SetInitialDisplayPower( | 168 void DisplayConfigurator::SetInitialDisplayPower( |
172 chromeos::DisplayPowerState power_state) { | 169 chromeos::DisplayPowerState power_state) { |
173 DCHECK_EQ(display_state_, MULTIPLE_DISPLAY_STATE_INVALID); | 170 DCHECK_EQ(display_state_, MULTIPLE_DISPLAY_STATE_INVALID); |
174 power_state_ = power_state; | 171 power_state_ = power_state; |
175 } | 172 } |
176 | 173 |
177 void DisplayConfigurator::Init(bool is_panel_fitting_enabled) { | 174 void DisplayConfigurator::Init(bool is_panel_fitting_enabled) { |
178 is_panel_fitting_enabled_ = is_panel_fitting_enabled; | 175 is_panel_fitting_enabled_ = is_panel_fitting_enabled; |
179 if (!configure_display_) | 176 if (!configure_display_) |
180 return; | 177 return; |
181 | 178 |
182 PlatformInitialize(); | 179 PlatformInitialize(); |
183 } | 180 } |
184 | 181 |
185 void DisplayConfigurator::InitializeDelegates( | 182 void DisplayConfigurator::InitializeDelegates( |
186 scoped_ptr<NativeDisplayDelegate> display_delegate, | 183 scoped_ptr<NativeDisplayDelegate> display_delegate) { |
187 scoped_ptr<TouchscreenDelegate> touchscreen_delegate) { | 184 if (!native_display_delegate_) { |
188 if (!native_display_delegate_ && !touchscreen_delegate_) { | |
189 native_display_delegate_ = display_delegate.Pass(); | 185 native_display_delegate_ = display_delegate.Pass(); |
190 touchscreen_delegate_ = touchscreen_delegate.Pass(); | |
191 | |
192 native_display_delegate_->AddObserver(this); | 186 native_display_delegate_->AddObserver(this); |
193 } | 187 } |
194 } | 188 } |
195 | 189 |
196 void DisplayConfigurator::ForceInitialConfigure( | 190 void DisplayConfigurator::ForceInitialConfigure( |
197 uint32_t background_color_argb) { | 191 uint32_t background_color_argb) { |
198 if (!configure_display_) | 192 if (!configure_display_) |
199 return; | 193 return; |
200 | 194 |
201 native_display_delegate_->GrabServer(); | 195 native_display_delegate_->GrabServer(); |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 std::vector<DisplaySnapshot*> snapshots = | 542 std::vector<DisplaySnapshot*> snapshots = |
549 native_display_delegate_->GetDisplays(); | 543 native_display_delegate_->GetDisplays(); |
550 | 544 |
551 cached_displays_.clear(); | 545 cached_displays_.clear(); |
552 for (size_t i = 0; i < snapshots.size(); ++i) { | 546 for (size_t i = 0; i < snapshots.size(); ++i) { |
553 DisplayState display_state; | 547 DisplayState display_state; |
554 display_state.display = snapshots[i]; | 548 display_state.display = snapshots[i]; |
555 cached_displays_.push_back(display_state); | 549 cached_displays_.push_back(display_state); |
556 } | 550 } |
557 | 551 |
558 touchscreen_delegate_->AssociateTouchscreens(&cached_displays_); | |
559 | |
560 // Set |selected_mode| fields. | 552 // Set |selected_mode| fields. |
561 for (size_t i = 0; i < cached_displays_.size(); ++i) { | 553 for (size_t i = 0; i < cached_displays_.size(); ++i) { |
562 DisplayState* display_state = &cached_displays_[i]; | 554 DisplayState* display_state = &cached_displays_[i]; |
563 if (display_state->display->has_proper_display_id()) { | 555 if (display_state->display->has_proper_display_id()) { |
564 gfx::Size size; | 556 gfx::Size size; |
565 if (state_controller_ && | 557 if (state_controller_ && |
566 state_controller_->GetResolutionForDisplayId( | 558 state_controller_->GetResolutionForDisplayId( |
567 display_state->display->display_id(), &size)) { | 559 display_state->display->display_id(), &size)) { |
568 display_state->selected_mode = | 560 display_state->selected_mode = |
569 FindDisplayModeMatchingSize(*display_state->display, size); | 561 FindDisplayModeMatchingSize(*display_state->display, size); |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
933 return state_controller_->GetStateForDisplayIds(display_ids); | 925 return state_controller_->GetStateForDisplayIds(display_ids); |
934 } | 926 } |
935 } | 927 } |
936 default: | 928 default: |
937 NOTREACHED(); | 929 NOTREACHED(); |
938 } | 930 } |
939 return MULTIPLE_DISPLAY_STATE_INVALID; | 931 return MULTIPLE_DISPLAY_STATE_INVALID; |
940 } | 932 } |
941 | 933 |
942 } // namespace ui | 934 } // namespace ui |
OLD | NEW |