10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "content/browser/device_sensors/data_fetcher_shared_memory.h" 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/logging.h" 80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "content/browser/device_sensors/sensor_manager_android.h" 90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "content/common/device_sensors/device_motion_hardware_buffer.h" 100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "content/common/device_sensors/device_orientation_hardware_buffer.h" 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace content { 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)DataFetcherSharedMemory::DataFetcherSharedMemory() { 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)DataFetcherSharedMemory::~DataFetcherSharedMemory() { 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)bool DataFetcherSharedMemory::Start(ConsumerType consumer_type, void* buffer) { 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DCHECK(buffer); 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) switch (consumer_type) { 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) case CONSUMER_TYPE_MOTION: 255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return SensorManagerAndroid::GetInstance()-> 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) StartFetchingDeviceMotionData( 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static_cast<DeviceMotionHardwareBuffer*>(buffer)); 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) case CONSUMER_TYPE_ORIENTATION: 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return SensorManagerAndroid::GetInstance()-> 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) StartFetchingDeviceOrientationData( 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static_cast<DeviceOrientationHardwareBuffer*>(buffer)); 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) default: 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) NOTREACHED(); 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return false; 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)bool DataFetcherSharedMemory::Stop(ConsumerType consumer_type) { 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) switch (consumer_type) { 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) case CONSUMER_TYPE_MOTION: 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SensorManagerAndroid::GetInstance()->StopFetchingDeviceMotionData(); 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) return true; 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) case CONSUMER_TYPE_ORIENTATION: 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SensorManagerAndroid::GetInstance()->StopFetchingDeviceOrientationData(); 45424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) return true; 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) default: 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) NOTREACHED(); 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) return false; 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} // namespace content 53