OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <stdio.h> | 5 #include <stdio.h> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "ash/display/display_info.h" | 9 #include "ash/display/display_info.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 DVLOG(1) << "DisplayInfoFromSpec info=" << display_info.ToString() | 163 DVLOG(1) << "DisplayInfoFromSpec info=" << display_info.ToString() |
164 << ", spec=" << spec; | 164 << ", spec=" << spec; |
165 return display_info; | 165 return display_info; |
166 } | 166 } |
167 | 167 |
168 DisplayInfo::DisplayInfo() | 168 DisplayInfo::DisplayInfo() |
169 : id_(gfx::Display::kInvalidDisplayID), | 169 : id_(gfx::Display::kInvalidDisplayID), |
170 has_overscan_(false), | 170 has_overscan_(false), |
171 rotation_(gfx::Display::ROTATE_0), | 171 rotation_(gfx::Display::ROTATE_0), |
172 touch_support_(gfx::Display::TOUCH_SUPPORT_UNKNOWN), | 172 touch_support_(gfx::Display::TOUCH_SUPPORT_UNKNOWN), |
| 173 touch_device_id_(0), |
173 device_scale_factor_(1.0f), | 174 device_scale_factor_(1.0f), |
174 overscan_insets_in_dip_(0, 0, 0, 0), | 175 overscan_insets_in_dip_(0, 0, 0, 0), |
175 configured_ui_scale_(1.0f), | 176 configured_ui_scale_(1.0f), |
176 native_(false) { | 177 native_(false) { |
177 } | 178 } |
178 | 179 |
179 DisplayInfo::DisplayInfo(int64 id, | 180 DisplayInfo::DisplayInfo(int64 id, |
180 const std::string& name, | 181 const std::string& name, |
181 bool has_overscan) | 182 bool has_overscan) |
182 : id_(id), | 183 : id_(id), |
183 name_(name), | 184 name_(name), |
184 has_overscan_(has_overscan), | 185 has_overscan_(has_overscan), |
185 rotation_(gfx::Display::ROTATE_0), | 186 rotation_(gfx::Display::ROTATE_0), |
186 touch_support_(gfx::Display::TOUCH_SUPPORT_UNKNOWN), | 187 touch_support_(gfx::Display::TOUCH_SUPPORT_UNKNOWN), |
| 188 touch_device_id_(0), |
187 device_scale_factor_(1.0f), | 189 device_scale_factor_(1.0f), |
188 overscan_insets_in_dip_(0, 0, 0, 0), | 190 overscan_insets_in_dip_(0, 0, 0, 0), |
189 configured_ui_scale_(1.0f), | 191 configured_ui_scale_(1.0f), |
190 native_(false) { | 192 native_(false) { |
191 } | 193 } |
192 | 194 |
193 DisplayInfo::~DisplayInfo() { | 195 DisplayInfo::~DisplayInfo() { |
194 } | 196 } |
195 | 197 |
196 void DisplayInfo::Copy(const DisplayInfo& native_info) { | 198 void DisplayInfo::Copy(const DisplayInfo& native_info) { |
197 DCHECK(id_ == native_info.id_); | 199 DCHECK(id_ == native_info.id_); |
198 name_ = native_info.name_; | 200 name_ = native_info.name_; |
199 has_overscan_ = native_info.has_overscan_; | 201 has_overscan_ = native_info.has_overscan_; |
200 | 202 |
201 DCHECK(!native_info.bounds_in_native_.IsEmpty()); | 203 DCHECK(!native_info.bounds_in_native_.IsEmpty()); |
202 bounds_in_native_ = native_info.bounds_in_native_; | 204 bounds_in_native_ = native_info.bounds_in_native_; |
203 size_in_pixel_ = native_info.size_in_pixel_; | 205 size_in_pixel_ = native_info.size_in_pixel_; |
204 device_scale_factor_ = native_info.device_scale_factor_; | 206 device_scale_factor_ = native_info.device_scale_factor_; |
205 display_modes_ = native_info.display_modes_; | 207 display_modes_ = native_info.display_modes_; |
206 touch_support_ = native_info.touch_support_; | 208 touch_support_ = native_info.touch_support_; |
| 209 touch_device_id_ = native_info.touch_device_id_; |
207 | 210 |
208 // Copy overscan_insets_in_dip_ if it's not empty. This is for test | 211 // Copy overscan_insets_in_dip_ if it's not empty. This is for test |
209 // cases which use "/o" annotation which sets the overscan inset | 212 // cases which use "/o" annotation which sets the overscan inset |
210 // to native, and that overscan has to be propagated. This does not | 213 // to native, and that overscan has to be propagated. This does not |
211 // happen on the real environment. | 214 // happen on the real environment. |
212 if (!native_info.overscan_insets_in_dip_.empty()) | 215 if (!native_info.overscan_insets_in_dip_.empty()) |
213 overscan_insets_in_dip_ = native_info.overscan_insets_in_dip_; | 216 overscan_insets_in_dip_ = native_info.overscan_insets_in_dip_; |
214 | 217 |
215 // Rotation_ and ui_scale_ are given by preference, or unit | 218 // Rotation_ and ui_scale_ are given by preference, or unit |
216 // tests. Don't copy if this native_info came from | 219 // tests. Don't copy if this native_info came from |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 } | 262 } |
260 | 263 |
261 gfx::Insets DisplayInfo::GetOverscanInsetsInPixel() const { | 264 gfx::Insets DisplayInfo::GetOverscanInsetsInPixel() const { |
262 return overscan_insets_in_dip_.Scale(device_scale_factor_); | 265 return overscan_insets_in_dip_.Scale(device_scale_factor_); |
263 } | 266 } |
264 | 267 |
265 std::string DisplayInfo::ToString() const { | 268 std::string DisplayInfo::ToString() const { |
266 int rotation_degree = static_cast<int>(rotation_) * 90; | 269 int rotation_degree = static_cast<int>(rotation_) * 90; |
267 return base::StringPrintf( | 270 return base::StringPrintf( |
268 "DisplayInfo[%lld] native bounds=%s, size=%s, scale=%f, " | 271 "DisplayInfo[%lld] native bounds=%s, size=%s, scale=%f, " |
269 "overscan=%s, rotation=%d, ui-scale=%f, touchscreen=%s", | 272 "overscan=%s, rotation=%d, ui-scale=%f, touchscreen=%s, " |
| 273 "touch-device-id=%d", |
270 static_cast<long long int>(id_), | 274 static_cast<long long int>(id_), |
271 bounds_in_native_.ToString().c_str(), | 275 bounds_in_native_.ToString().c_str(), |
272 size_in_pixel_.ToString().c_str(), | 276 size_in_pixel_.ToString().c_str(), |
273 device_scale_factor_, | 277 device_scale_factor_, |
274 overscan_insets_in_dip_.ToString().c_str(), | 278 overscan_insets_in_dip_.ToString().c_str(), |
275 rotation_degree, | 279 rotation_degree, |
276 configured_ui_scale_, | 280 configured_ui_scale_, |
277 touch_support_ == gfx::Display::TOUCH_SUPPORT_AVAILABLE | 281 touch_support_ == gfx::Display::TOUCH_SUPPORT_AVAILABLE |
278 ? "yes" | 282 ? "yes" |
279 : touch_support_ == gfx::Display::TOUCH_SUPPORT_UNAVAILABLE | 283 : touch_support_ == gfx::Display::TOUCH_SUPPORT_UNAVAILABLE |
280 ? "no" | 284 ? "no" |
281 : "unknown"); | 285 : "unknown", |
| 286 touch_device_id_); |
282 } | 287 } |
283 | 288 |
284 std::string DisplayInfo::ToFullString() const { | 289 std::string DisplayInfo::ToFullString() const { |
285 std::string display_modes_str; | 290 std::string display_modes_str; |
286 std::vector<DisplayMode>::const_iterator iter = display_modes_.begin(); | 291 std::vector<DisplayMode>::const_iterator iter = display_modes_.begin(); |
287 for (; iter != display_modes_.end(); ++iter) { | 292 for (; iter != display_modes_.end(); ++iter) { |
288 if (!display_modes_str.empty()) | 293 if (!display_modes_str.empty()) |
289 display_modes_str += ","; | 294 display_modes_str += ","; |
290 base::StringAppendF(&display_modes_str, | 295 base::StringAppendF(&display_modes_str, |
291 "(%dx%d@%f%c%s)", | 296 "(%dx%d@%f%c%s)", |
292 iter->size.width(), | 297 iter->size.width(), |
293 iter->size.height(), | 298 iter->size.height(), |
294 iter->refresh_rate, | 299 iter->refresh_rate, |
295 iter->interlaced ? 'I' : 'P', | 300 iter->interlaced ? 'I' : 'P', |
296 iter->native ? "(N)" : ""); | 301 iter->native ? "(N)" : ""); |
297 } | 302 } |
298 return ToString() + ", display_modes==" + display_modes_str; | 303 return ToString() + ", display_modes==" + display_modes_str; |
299 } | 304 } |
300 | 305 |
301 } // namespace internal | 306 } // namespace internal |
302 } // namespace ash | 307 } // namespace ash |
OLD | NEW |