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 "device/sensors/data_fetcher_shared_memory.h" | 5 #include "device/sensors/data_fetcher_shared_memory.h" |
6 | 6 |
7 #include <GuidDef.h> | 7 #include <GuidDef.h> |
8 #include <InitGuid.h> | 8 #include <InitGuid.h> |
9 #include <PortableDeviceTypes.h> | 9 #include <PortableDeviceTypes.h> |
10 #include <Sensors.h> | 10 #include <Sensors.h> |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 } | 310 } |
311 | 311 |
312 bool DataFetcherSharedMemory::RegisterForSensor( | 312 bool DataFetcherSharedMemory::RegisterForSensor( |
313 REFSENSOR_TYPE_ID sensor_type, | 313 REFSENSOR_TYPE_ID sensor_type, |
314 ISensor** sensor, | 314 ISensor** sensor, |
315 scoped_refptr<SensorEventSink> event_sink) { | 315 scoped_refptr<SensorEventSink> event_sink) { |
316 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 316 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
317 return false; | 317 return false; |
318 | 318 |
319 base::win::ScopedComPtr<ISensorManager> sensor_manager; | 319 base::win::ScopedComPtr<ISensorManager> sensor_manager; |
320 HRESULT hr = sensor_manager.CreateInstance(CLSID_SensorManager); | 320 HRESULT hr = ::CoCreateInstance(CLSID_SensorManager, nullptr, CLSCTX_ALL, |
| 321 IID_PPV_ARGS(&sensor_manager)); |
321 if (FAILED(hr) || !sensor_manager.Get()) | 322 if (FAILED(hr) || !sensor_manager.Get()) |
322 return false; | 323 return false; |
323 | 324 |
324 base::win::ScopedComPtr<ISensorCollection> sensor_collection; | 325 base::win::ScopedComPtr<ISensorCollection> sensor_collection; |
325 hr = sensor_manager->GetSensorsByType(sensor_type, | 326 hr = sensor_manager->GetSensorsByType(sensor_type, |
326 sensor_collection.GetAddressOf()); | 327 sensor_collection.GetAddressOf()); |
327 | 328 |
328 if (FAILED(hr) || !sensor_collection.Get()) | 329 if (FAILED(hr) || !sensor_collection.Get()) |
329 return false; | 330 return false; |
330 | 331 |
331 ULONG count = 0; | 332 ULONG count = 0; |
332 hr = sensor_collection->GetCount(&count); | 333 hr = sensor_collection->GetCount(&count); |
333 if (FAILED(hr) || !count) | 334 if (FAILED(hr) || !count) |
334 return false; | 335 return false; |
335 | 336 |
336 hr = sensor_collection->GetAt(0, sensor); | 337 hr = sensor_collection->GetAt(0, sensor); |
337 if (FAILED(hr) || !(*sensor)) | 338 if (FAILED(hr) || !(*sensor)) |
338 return false; | 339 return false; |
339 | 340 |
340 base::win::ScopedComPtr<IPortableDeviceValues> device_values; | 341 base::win::ScopedComPtr<IPortableDeviceValues> device_values; |
341 if (SUCCEEDED(device_values.CreateInstance(CLSID_PortableDeviceValues))) { | 342 if (SUCCEEDED(::CoCreateInstance(CLSID_PortableDeviceValues, nullptr, |
| 343 CLSCTX_ALL, IID_PPV_ARGS(&device_values)))) { |
342 if (SUCCEEDED(device_values->SetUnsignedIntegerValue( | 344 if (SUCCEEDED(device_values->SetUnsignedIntegerValue( |
343 SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL, | 345 SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL, |
344 GetInterval().InMilliseconds()))) { | 346 GetInterval().InMilliseconds()))) { |
345 base::win::ScopedComPtr<IPortableDeviceValues> return_values; | 347 base::win::ScopedComPtr<IPortableDeviceValues> return_values; |
346 (*sensor)->SetProperties(device_values.Get(), | 348 (*sensor)->SetProperties(device_values.Get(), |
347 return_values.GetAddressOf()); | 349 return_values.GetAddressOf()); |
348 } | 350 } |
349 } | 351 } |
350 | 352 |
351 base::win::ScopedComPtr<ISensorEvents> sensor_events; | 353 base::win::ScopedComPtr<ISensorEvents> sensor_events; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 motion_buffer_->data.all_available_sensors_are_active = enabled; | 416 motion_buffer_->data.all_available_sensors_are_active = enabled; |
415 motion_buffer_->seqlock.WriteEnd(); | 417 motion_buffer_->seqlock.WriteEnd(); |
416 } | 418 } |
417 break; | 419 break; |
418 default: | 420 default: |
419 NOTREACHED(); | 421 NOTREACHED(); |
420 } | 422 } |
421 } | 423 } |
422 | 424 |
423 } // namespace device | 425 } // namespace device |
OLD | NEW |