OLD | NEW |
---|---|
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 #include "chromeos/display/output_configurator.h" | 5 #include "chromeos/display/output_configurator.h" |
6 | 6 |
7 #include <X11/Xlib.h> | 7 #include <X11/Xlib.h> |
8 #include <X11/extensions/Xrandr.h> | 8 #include <X11/extensions/Xrandr.h> |
9 #include <X11/extensions/XInput2.h> | 9 #include <X11/extensions/XInput2.h> |
10 | 10 |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
227 new_state, power_state_, outputs); | 227 new_state, power_state_, outputs); |
228 | 228 |
229 // Force the DPMS on chrome startup as the driver doesn't always detect | 229 // Force the DPMS on chrome startup as the driver doesn't always detect |
230 // that all displays are on when signing out. | 230 // that all displays are on when signing out. |
231 delegate_->ForceDPMSOn(); | 231 delegate_->ForceDPMSOn(); |
232 delegate_->UngrabServer(); | 232 delegate_->UngrabServer(); |
233 delegate_->SendProjectingStateToPowerManager(IsProjecting(outputs)); | 233 delegate_->SendProjectingStateToPowerManager(IsProjecting(outputs)); |
234 NotifyObservers(success, new_state); | 234 NotifyObservers(success, new_state); |
235 } | 235 } |
236 | 236 |
237 uint64_t OutputConfigurator::RegisterOutputProtectionClient() { | |
238 if (!configure_display_) | |
239 return 0; | |
240 | |
241 return delegate_->RegisterOutputProtectionClient(); | |
242 } | |
243 | |
244 void OutputConfigurator::UnregisterOutputProtectionClient(uint64_t client_id) { | |
245 if (!configure_display_) | |
246 return; | |
247 | |
248 delegate_->GrabServer(); | |
249 delegate_->UnregisterOutputProtectionClient(client_id); | |
250 delegate_->UngrabServer(); | |
251 } | |
252 | |
253 bool OutputConfigurator::QueryOutputProtectionStatus( | |
254 uint64_t client_id, | |
255 uint32_t* link_mask, | |
256 uint32_t* protection_mask) { | |
257 if (!configure_display_) | |
258 return false; | |
259 | |
260 delegate_->GrabServer(); | |
Daniel Erat
2013/09/18 22:39:16
the delegate isn't checking these server grabs. ar
marcheu
2013/09/18 23:21:35
Yup this grab isn't strictly required, as we are j
kcwu
2013/09/20 03:03:47
Done.
| |
261 bool result = delegate_->QueryOutputProtectionStatus(client_id, link_mask, | |
262 protection_mask); | |
263 delegate_->UngrabServer(); | |
264 return result; | |
265 } | |
266 | |
267 bool OutputConfigurator::EnableOutputProtection( | |
268 uint64_t client_id, | |
269 uint32_t desired_method_mask) { | |
270 if (!configure_display_) | |
271 return false; | |
272 | |
273 delegate_->GrabServer(); | |
274 bool result = delegate_->EnableOutputProtection(client_id, | |
275 desired_method_mask); | |
276 delegate_->UngrabServer(); | |
277 return result; | |
278 } | |
279 | |
237 void OutputConfigurator::Stop() { | 280 void OutputConfigurator::Stop() { |
238 configure_display_ = false; | 281 configure_display_ = false; |
239 } | 282 } |
240 | 283 |
241 bool OutputConfigurator::SetDisplayPower(DisplayPowerState power_state, | 284 bool OutputConfigurator::SetDisplayPower(DisplayPowerState power_state, |
242 int flags) { | 285 int flags) { |
243 if (!configure_display_) | 286 if (!configure_display_) |
244 return false; | 287 return false; |
245 | 288 |
246 VLOG(1) << "SetDisplayPower: power_state=" | 289 VLOG(1) << "SetDisplayPower: power_state=" |
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
699 float width_ratio = static_cast<float>(mirror_mode_info->width) / | 742 float width_ratio = static_cast<float>(mirror_mode_info->width) / |
700 static_cast<float>(native_mode_info->width); | 743 static_cast<float>(native_mode_info->width); |
701 float height_ratio = static_cast<float>(mirror_mode_info->height) / | 744 float height_ratio = static_cast<float>(mirror_mode_info->height) / |
702 static_cast<float>(native_mode_info->height); | 745 static_cast<float>(native_mode_info->height); |
703 | 746 |
704 area_ratio = width_ratio * height_ratio; | 747 area_ratio = width_ratio * height_ratio; |
705 return area_ratio; | 748 return area_ratio; |
706 } | 749 } |
707 | 750 |
708 } // namespace chromeos | 751 } // namespace chromeos |
OLD | NEW |