sensord: enable auto_rotation sensor
[platform/core/system/sensord.git] / src / sensor / gravity / gravity_sensor.cpp
index 8b41fc5..d4c74ce 100644 (file)
@@ -71,13 +71,13 @@ gravity_sensor::~gravity_sensor()
        _I("gravity_sensor is destroyed!\n");
 }
 
-bool gravity_sensor::init()
+bool gravity_sensor::init(void)
 {
        /* Acc (+ Gyro) fusion */
        m_accel_sensor = sensor_loader::get_instance().get_sensor(ACCELEROMETER_SENSOR);
 
        if (!m_accel_sensor) {
-               _E("cannot load accelerometer sensor_hal[%s]", get_name());
+               _W("cannot load accelerometer sensor_hal[%s]", get_name());
                return false;
        }
 
@@ -150,7 +150,7 @@ void gravity_sensor::synthesize_rv(const sensor_event_t& event)
        int accuracy;
 
        if (!m_fusion->get_rotation_vector(x, y, z, w, heading_accuracy, accuracy)) {
-               _E("Failed to get rotation vector");
+               _W("Failed to get rotation vector");
                return;
        }
 
@@ -161,7 +161,10 @@ void gravity_sensor::synthesize_rv(const sensor_event_t& event)
 
        float rotation[4] = {x, y, z, w};
 
-       rotation_to_gravity(rotation, gravity);
+       if (!rotation_to_gravity(rotation, gravity)) {
+               _D("Invalid rotation_vector: [%10f] [%10f] [%10f] [%10f]", x, y, z, w);
+               return;
+       }
 
        gravity_event = (sensor_event_t *)malloc(sizeof(sensor_event_t));
        if (!gravity_event) {
@@ -320,7 +323,7 @@ void gravity_sensor::fusion_set_gyro(const sensor_event_t& event)
        m_time_new = event.data->timestamp;
 }
 
-void gravity_sensor::fusion_update_angle()
+void gravity_sensor::fusion_update_angle(void)
 {
        _D("AngleIn: (%f, %f, %f)", m_angle_n[0], m_angle_n[1], m_angle_n[2]);
        _D("AngAccl: (%f, %f, %f)", m_velocity[0], m_velocity[1], m_velocity[2]);
@@ -338,7 +341,7 @@ void gravity_sensor::fusion_update_angle()
        _D("Angle' : (%f, %f, %f)", m_angle[0], m_angle[1], m_angle[2]);
 }
 
-void gravity_sensor::fusion_get_gravity()
+void gravity_sensor::fusion_get_gravity(void)
 {
        double x = 0, y = 0, z = 0;
        double norm;