Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / xwalk / tizen / mobile / sensor / sensor_provider.h
index 84e8c7a..4475208 100644 (file)
@@ -8,6 +8,7 @@
 #include <set>
 
 #include "base/memory/scoped_ptr.h"
+#include "base/synchronization/lock.h"
 #include "ui/gfx/display.h"
 #include "third_party/WebKit/public/platform/WebScreenOrientationType.h"
 
@@ -18,6 +19,8 @@ class SensorProvider {
   static SensorProvider* GetInstance();
   virtual ~SensorProvider();
 
+  bool connected() const;
+
   class Observer {
    public:
     virtual ~Observer() {}
@@ -29,6 +32,8 @@ class SensorProvider {
     virtual void OnAccelerationChanged(float raw_x, float raw_y, float raw_z,
                                        float x, float y, float z) {}
     virtual void OnRotationRateChanged(float alpha, float beta, float gamma) {}
+
+    virtual void OnSensorConnected() {}
   };
 
   virtual void AddObserver(Observer* observer);
@@ -54,9 +59,14 @@ class SensorProvider {
                                      float x, float y, float z);
   virtual void OnRotationRateChanged(float alpha, float beta, float gamma);
 
+  virtual void OnSensorConnected();
+
   std::set<Observer*> observers_;
   blink::WebScreenOrientationType last_orientation_;
 
+  mutable base::Lock lock_;
+  mutable bool connected_;
+
  private:
   static scoped_ptr<SensorProvider> instance_;