• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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_ORIENTATION_DATA_FETCHER_SHARED_MEMORY_H_
6 #define CONTENT_BROWSER_DEVICE_ORIENTATION_DATA_FETCHER_SHARED_MEMORY_H_
7 
8 #include "content/browser/device_orientation/data_fetcher_shared_memory_base.h"
9 
10 #if !defined(OS_ANDROID)
11 #include "content/common/device_orientation/device_motion_hardware_buffer.h"
12 #include "content/common/device_orientation/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_ORIENTATION_DATA_FETCHER_SHARED_MEMORY_H_
67