Use multiline attribute to check for IA2_STATE_MULTILINE.
[chromium-blink-merge.git] / content / browser / device_sensors / data_fetcher_shared_memory.h
blobea56b003fd7abfb543fac4afc3ee4f0c6e048a05
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.
5 #ifndef CONTENT_BROWSER_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_
6 #define CONTENT_BROWSER_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_
8 #include "content/browser/device_sensors/data_fetcher_shared_memory_base.h"
10 #if !defined(OS_ANDROID)
11 #include "content/common/device_sensors/device_light_hardware_buffer.h"
12 #include "content/common/device_sensors/device_motion_hardware_buffer.h"
13 #include "content/common/device_sensors/device_orientation_hardware_buffer.h"
14 #endif
16 #if defined(OS_MACOSX)
17 class SuddenMotionSensor;
18 #elif defined(OS_WIN)
19 #include <SensorsApi.h>
20 #include "base/win/scoped_comptr.h"
21 #endif
23 namespace content {
25 #if defined(OS_CHROMEOS)
26 class SensorManagerChromeOS;
27 #elif defined(OS_MACOSX)
28 class AmbientLightSensor;
29 #endif
31 class CONTENT_EXPORT DataFetcherSharedMemory
32 : public DataFetcherSharedMemoryBase {
34 public:
35 DataFetcherSharedMemory();
36 ~DataFetcherSharedMemory() override;
38 #if defined(OS_ANDROID)
39 void Shutdown() override;
40 #endif
42 private:
43 bool Start(ConsumerType consumer_type, void* buffer) override;
44 bool Stop(ConsumerType consumer_type) override;
46 #if !defined(OS_ANDROID)
47 DeviceMotionHardwareBuffer* motion_buffer_;
48 DeviceOrientationHardwareBuffer* orientation_buffer_;
49 DeviceLightHardwareBuffer* light_buffer_;
50 #endif
52 #if defined(OS_CHROMEOS)
53 scoped_ptr<SensorManagerChromeOS> sensor_manager_;
54 #elif defined(OS_MACOSX)
55 void Fetch(unsigned consumer_bitmask) override;
56 FetcherType GetType() const override;
58 scoped_ptr<AmbientLightSensor> ambient_light_sensor_;
59 scoped_ptr<SuddenMotionSensor> sudden_motion_sensor_;
60 #elif defined(OS_WIN)
61 class SensorEventSink;
62 class SensorEventSinkMotion;
63 class SensorEventSinkOrientation;
64 class SensorEventSinkLight;
66 FetcherType GetType() const override;
68 bool RegisterForSensor(REFSENSOR_TYPE_ID sensor_type, ISensor** sensor,
69 scoped_refptr<SensorEventSink> event_sink);
70 void DisableSensors(ConsumerType consumer_type);
71 void SetBufferAvailableState(ConsumerType consumer_type, bool enabled);
73 base::win::ScopedComPtr<ISensor> sensor_inclinometer_;
74 base::win::ScopedComPtr<ISensor> sensor_accelerometer_;
75 base::win::ScopedComPtr<ISensor> sensor_gyrometer_;
76 base::win::ScopedComPtr<ISensor> sensor_light_;
77 #endif
79 DISALLOW_COPY_AND_ASSIGN(DataFetcherSharedMemory);
82 } // namespace content
84 #endif // CONTENT_BROWSER_DEVICE_SENSORS_DATA_FETCHER_SHARED_MEMORY_H_