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 3// found in the LICENSE file. 4 5#include "content/browser/device_sensors/data_fetcher_shared_memory.h" 6 7#include "base/logging.h" 8#include "content/browser/device_sensors/sensor_manager_android.h" 9#include "content/common/device_sensors/device_light_hardware_buffer.h" 10#include "content/common/device_sensors/device_motion_hardware_buffer.h" 11#include "content/common/device_sensors/device_orientation_hardware_buffer.h" 12 13namespace content { 14 15DataFetcherSharedMemory::DataFetcherSharedMemory() { 16} 17 18DataFetcherSharedMemory::~DataFetcherSharedMemory() { 19} 20 21bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) { 22 DCHECK(buffer); 23 24 switch (consumer_type) { 25 case CONSUMER_TYPE_MOTION: 26 return SensorManagerAndroid::GetInstance()-> 27 StartFetchingDeviceMotionData( 28 static_cast<DeviceMotionHardwareBuffer*>(buffer)); 29 case CONSUMER_TYPE_ORIENTATION: 30 return SensorManagerAndroid::GetInstance()-> 31 StartFetchingDeviceOrientationData( 32 static_cast<DeviceOrientationHardwareBuffer*>(buffer)); 33 case CONSUMER_TYPE_LIGHT: 34 return SensorManagerAndroid::GetInstance()->StartFetchingDeviceLightData( 35 static_cast<DeviceLightHardwareBuffer*>(buffer)); 36 default: 37 NOTREACHED(); 38 } 39 return false; 40} 41 42bool DataFetcherSharedMemory::Stop(ConsumerType consumer_type) { 43 switch (consumer_type) { 44 case CONSUMER_TYPE_MOTION: 45 SensorManagerAndroid::GetInstance()->StopFetchingDeviceMotionData(); 46 return true; 47 case CONSUMER_TYPE_ORIENTATION: 48 SensorManagerAndroid::GetInstance()->StopFetchingDeviceOrientationData(); 49 return true; 50 case CONSUMER_TYPE_LIGHT: 51 SensorManagerAndroid::GetInstance()->StopFetchingDeviceLightData(); 52 return true; 53 default: 54 NOTREACHED(); 55 } 56 return false; 57} 58 59} // namespace content 60