Index: ash/accelerometer/accelerometer_controller.h |
=================================================================== |
--- ash/accelerometer/accelerometer_controller.h (revision 0) |
+++ ash/accelerometer/accelerometer_controller.h (revision 0) |
@@ -0,0 +1,71 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef ASH_ACCELEROMETER_ACCELEROMETER_CONTROLLER_H_ |
+#define ASH_ACCELEROMETER_ACCELEROMETER_CONTROLLER_H_ |
+ |
+#include "ash/ash_export.h" |
+#include "base/memory/ref_counted.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "base/observer_list.h" |
+ |
+#if defined(OS_CHROMEOS) |
+#include "chromeos/accelerometer/accelerometer_reader.h" |
+#endif |
+ |
+namespace base { |
+class TaskRunner; |
+} |
+ |
+namespace gfx { |
+class Vector3dF; |
+} |
+ |
+namespace ash { |
+ |
+class AccelerometerObserver; |
+ |
+// This class owns the communication interface for talking to the accelerometer |
+// on supporting devices. Observers will be delivered OnAccelerometerRead |
+// notifications if an accelerometer was detected. |
+class ASH_EXPORT AccelerometerController |
+#if defined(OS_CHROMEOS) |
+ : public chromeos::AccelerometerReader::Delegate { |
+#else |
+ { |
+#endif |
+ public: |
+ AccelerometerController(); |
+ virtual ~AccelerometerController(); |
+ |
+ // Initialize the accelerometer reader. |
+ void Initialize(scoped_refptr<base::TaskRunner> blocking_task_runner); |
+ |
+ // Add/remove observer. |
+ void AddObserver(AccelerometerObserver* observer); |
+ void RemoveObserver(AccelerometerObserver* observer); |
+ |
+#if defined(OS_CHROMEOS) |
+ // This needs to be CHROMEOS only as on other platforms it does not actually |
+ // override a method. |
+ // chromeos::AccelerometerReader::Delegate: |
+ virtual void HandleAccelerometerReading(const gfx::Vector3dF& base, |
+ const gfx::Vector3dF& lid) OVERRIDE; |
+#endif |
+ |
+ private: |
+#if defined(OS_CHROMEOS) |
+ // The AccelerometerReader which directly triggers and reads from the |
+ // accelerometer device. |
+ scoped_ptr<chromeos::AccelerometerReader> reader_; |
+#endif |
+ |
+ ObserverList<AccelerometerObserver, true> observers_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AccelerometerController); |
+}; |
+ |
+} // namespace ash |
+ |
+#endif // ASH_ACCELEROMETER_ACCELEROMETER_CONTROLLER_H_ |
Property changes on: ash/accelerometer/accelerometer_controller.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |