Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / browser / device_sensors / data_fetcher_shared_memory.h
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 #ifndef CONTENT_BROWSER_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_
6 #define CONTENT_BROWSER_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_
7
8 #include "content/browser/device_sensors/data_fetcher_shared_memory_base.h"
9
10 #if !defined(OS_ANDROID)
11 #include "content/common/device_sensors/device_motion_hardware_buffer.h"
12 #include "content/common/device_sensors/device_orientation_hardware_buffer.h"
13 #endif
14
15 #if defined(OS_MACOSX)
16 class SuddenMotionSensor;
17 #elif defined(OS_WIN)
18 #include <SensorsApi.h>
19 #include "base/win/scoped_comptr.h"
20 #endif
21
22 namespace content {
23
24 class CONTENT_EXPORT DataFetcherSharedMemory
25     : public DataFetcherSharedMemoryBase {
26
27  public:
28   DataFetcherSharedMemory();
29   virtual ~DataFetcherSharedMemory();
30
31  private:
32   virtual bool Start(ConsumerType consumer_type, void* buffer) OVERRIDE;
33   virtual bool Stop(ConsumerType consumer_type) OVERRIDE;
34
35 #if !defined(OS_ANDROID)
36   DeviceMotionHardwareBuffer* motion_buffer_;
37   DeviceOrientationHardwareBuffer* orientation_buffer_;
38 #endif
39 #if defined(OS_MACOSX)
40   virtual void Fetch(unsigned consumer_bitmask) OVERRIDE;
41   virtual FetcherType GetType() const OVERRIDE;
42
43   scoped_ptr<SuddenMotionSensor> sudden_motion_sensor_;
44 #elif defined(OS_WIN)
45   class SensorEventSink;
46   class SensorEventSinkMotion;
47   class SensorEventSinkOrientation;
48
49   virtual FetcherType GetType() const OVERRIDE;
50
51   bool RegisterForSensor(REFSENSOR_TYPE_ID sensor_type, ISensor** sensor,
52       scoped_refptr<SensorEventSink> event_sink);
53   void DisableSensors(ConsumerType consumer_type);
54   void SetBufferAvailableState(ConsumerType consumer_type, bool enabled);
55
56   base::win::ScopedComPtr<ISensor> sensor_inclinometer_;
57   base::win::ScopedComPtr<ISensor> sensor_accelerometer_;
58   base::win::ScopedComPtr<ISensor> sensor_gyrometer_;
59 #endif
60
61   DISALLOW_COPY_AND_ASSIGN(DataFetcherSharedMemory);
62 };
63
64 }  // namespace content
65
66 #endif  // CONTENT_BROWSER_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_