Home | History | Annotate | Download | only in device_sensors
      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_motion_hardware_buffer.h"
     10 #include "content/common/device_sensors/device_orientation_hardware_buffer.h"
     11 
     12 namespace content {
     13 
     14 DataFetcherSharedMemory::DataFetcherSharedMemory() {
     15 }
     16 
     17 DataFetcherSharedMemory::~DataFetcherSharedMemory() {
     18 }
     19 
     20 bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) {
     21   DCHECK(buffer);
     22 
     23   switch (consumer_type) {
     24     case CONSUMER_TYPE_MOTION:
     25       return SensorManagerAndroid::GetInstance()->
     26           StartFetchingDeviceMotionData(
     27               static_cast<DeviceMotionHardwareBuffer*>(buffer));
     28     case CONSUMER_TYPE_ORIENTATION:
     29       return SensorManagerAndroid::GetInstance()->
     30           StartFetchingDeviceOrientationData(
     31               static_cast<DeviceOrientationHardwareBuffer*>(buffer));
     32     default:
     33       NOTREACHED();
     34   }
     35   return false;
     36 }
     37 
     38 bool DataFetcherSharedMemory::Stop(ConsumerType consumer_type) {
     39   switch (consumer_type) {
     40     case CONSUMER_TYPE_MOTION:
     41       SensorManagerAndroid::GetInstance()->StopFetchingDeviceMotionData();
     42       return true;
     43     case CONSUMER_TYPE_ORIENTATION:
     44       SensorManagerAndroid::GetInstance()->StopFetchingDeviceOrientationData();
     45       return true;
     46     default:
     47       NOTREACHED();
     48   }
     49   return false;
     50 }
     51 
     52 }  // namespace content
     53