| 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 "content/browser/gamepad/raw_input_data_fetcher_win.h" | 5 #include "content/browser/gamepad/raw_input_data_fetcher_win.h" |
| 6 | 6 |
| 7 #include <stddef.h> |
| 8 |
| 9 #include "base/macros.h" |
| 7 #include "base/trace_event/trace_event.h" | 10 #include "base/trace_event/trace_event.h" |
| 8 #include "content/common/gamepad_hardware_buffer.h" | 11 #include "content/common/gamepad_hardware_buffer.h" |
| 9 #include "content/common/gamepad_messages.h" | 12 #include "content/common/gamepad_messages.h" |
| 10 | 13 |
| 11 namespace content { | 14 namespace content { |
| 12 | 15 |
| 13 using namespace blink; | 16 using namespace blink; |
| 14 | 17 |
| 15 namespace { | 18 namespace { |
| 16 | 19 |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 | 183 |
| 181 // Query basic device info. | 184 // Query basic device info. |
| 182 UINT result = GetRawInputDeviceInfo(hDevice, RIDI_DEVICEINFO, | 185 UINT result = GetRawInputDeviceInfo(hDevice, RIDI_DEVICEINFO, |
| 183 NULL, &size); | 186 NULL, &size); |
| 184 if (result == static_cast<UINT>(-1)) { | 187 if (result == static_cast<UINT>(-1)) { |
| 185 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; | 188 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; |
| 186 return NULL; | 189 return NULL; |
| 187 } | 190 } |
| 188 DCHECK_EQ(0u, result); | 191 DCHECK_EQ(0u, result); |
| 189 | 192 |
| 190 scoped_ptr<uint8[]> di_buffer(new uint8[size]); | 193 scoped_ptr<uint8_t[]> di_buffer(new uint8_t[size]); |
| 191 RID_DEVICE_INFO* device_info = | 194 RID_DEVICE_INFO* device_info = |
| 192 reinterpret_cast<RID_DEVICE_INFO*>(di_buffer.get()); | 195 reinterpret_cast<RID_DEVICE_INFO*>(di_buffer.get()); |
| 193 result = GetRawInputDeviceInfo(hDevice, RIDI_DEVICEINFO, | 196 result = GetRawInputDeviceInfo(hDevice, RIDI_DEVICEINFO, |
| 194 di_buffer.get(), &size); | 197 di_buffer.get(), &size); |
| 195 if (result == static_cast<UINT>(-1)) { | 198 if (result == static_cast<UINT>(-1)) { |
| 196 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; | 199 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; |
| 197 return NULL; | 200 return NULL; |
| 198 } | 201 } |
| 199 DCHECK_EQ(size, result); | 202 DCHECK_EQ(size, result); |
| 200 | 203 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 | 262 |
| 260 // Query device capabilities. | 263 // Query device capabilities. |
| 261 result = GetRawInputDeviceInfo(hDevice, RIDI_PREPARSEDDATA, | 264 result = GetRawInputDeviceInfo(hDevice, RIDI_PREPARSEDDATA, |
| 262 NULL, &size); | 265 NULL, &size); |
| 263 if (result == static_cast<UINT>(-1)) { | 266 if (result == static_cast<UINT>(-1)) { |
| 264 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; | 267 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; |
| 265 return NULL; | 268 return NULL; |
| 266 } | 269 } |
| 267 DCHECK_EQ(0u, result); | 270 DCHECK_EQ(0u, result); |
| 268 | 271 |
| 269 gamepad_info->ppd_buffer.reset(new uint8[size]); | 272 gamepad_info->ppd_buffer.reset(new uint8_t[size]); |
| 270 gamepad_info->preparsed_data = | 273 gamepad_info->preparsed_data = |
| 271 reinterpret_cast<PHIDP_PREPARSED_DATA>(gamepad_info->ppd_buffer.get()); | 274 reinterpret_cast<PHIDP_PREPARSED_DATA>(gamepad_info->ppd_buffer.get()); |
| 272 result = GetRawInputDeviceInfo(hDevice, RIDI_PREPARSEDDATA, | 275 result = GetRawInputDeviceInfo(hDevice, RIDI_PREPARSEDDATA, |
| 273 gamepad_info->ppd_buffer.get(), &size); | 276 gamepad_info->ppd_buffer.get(), &size); |
| 274 if (result == static_cast<UINT>(-1)) { | 277 if (result == static_cast<UINT>(-1)) { |
| 275 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; | 278 PLOG(ERROR) << "GetRawInputDeviceInfo() failed"; |
| 276 return NULL; | 279 return NULL; |
| 277 } | 280 } |
| 278 DCHECK_EQ(size, result); | 281 DCHECK_EQ(size, result); |
| 279 | 282 |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 UINT size = 0; | 438 UINT size = 0; |
| 436 UINT result = GetRawInputData( | 439 UINT result = GetRawInputData( |
| 437 input_handle, RID_INPUT, NULL, &size, sizeof(RAWINPUTHEADER)); | 440 input_handle, RID_INPUT, NULL, &size, sizeof(RAWINPUTHEADER)); |
| 438 if (result == static_cast<UINT>(-1)) { | 441 if (result == static_cast<UINT>(-1)) { |
| 439 PLOG(ERROR) << "GetRawInputData() failed"; | 442 PLOG(ERROR) << "GetRawInputData() failed"; |
| 440 return 0; | 443 return 0; |
| 441 } | 444 } |
| 442 DCHECK_EQ(0u, result); | 445 DCHECK_EQ(0u, result); |
| 443 | 446 |
| 444 // Retrieve the input record. | 447 // Retrieve the input record. |
| 445 scoped_ptr<uint8[]> buffer(new uint8[size]); | 448 scoped_ptr<uint8_t[]> buffer(new uint8_t[size]); |
| 446 RAWINPUT* input = reinterpret_cast<RAWINPUT*>(buffer.get()); | 449 RAWINPUT* input = reinterpret_cast<RAWINPUT*>(buffer.get()); |
| 447 result = GetRawInputData( | 450 result = GetRawInputData( |
| 448 input_handle, RID_INPUT, buffer.get(), &size, sizeof(RAWINPUTHEADER)); | 451 input_handle, RID_INPUT, buffer.get(), &size, sizeof(RAWINPUTHEADER)); |
| 449 if (result == static_cast<UINT>(-1)) { | 452 if (result == static_cast<UINT>(-1)) { |
| 450 PLOG(ERROR) << "GetRawInputData() failed"; | 453 PLOG(ERROR) << "GetRawInputData() failed"; |
| 451 return 0; | 454 return 0; |
| 452 } | 455 } |
| 453 DCHECK_EQ(size, result); | 456 DCHECK_EQ(size, result); |
| 454 | 457 |
| 455 // Notify the observer about events generated locally. | 458 // Notify the observer about events generated locally. |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 return false; | 516 return false; |
| 514 hidd_get_product_string_ = reinterpret_cast<HidDGetStringFunc>( | 517 hidd_get_product_string_ = reinterpret_cast<HidDGetStringFunc>( |
| 515 hid_dll_.GetFunctionPointer("HidD_GetProductString")); | 518 hid_dll_.GetFunctionPointer("HidD_GetProductString")); |
| 516 if (!hidd_get_product_string_) | 519 if (!hidd_get_product_string_) |
| 517 return false; | 520 return false; |
| 518 | 521 |
| 519 return true; | 522 return true; |
| 520 } | 523 } |
| 521 | 524 |
| 522 } // namespace content | 525 } // namespace content |
| OLD | NEW |