Added SensorManager.getMinDelay()

Exposed the new "min delay" sensor property through native and
java sensor apis. This allows the caller to know what is the
maximum rate at which a sensor can return events, or, if a sensor
works in "update" mode (events returned only when the value changes).

Also augmented SensorManager.regusterSensorEvent() so that it can
accept a value in microsecond in addition to the 4 constants already
defined.

Change-Id: If425e9979892666df8c989d7de3c362230fa19e0
diff --git a/libs/gui/Sensor.cpp b/libs/gui/Sensor.cpp
index cb85df9..b1f37ff 100644
--- a/libs/gui/Sensor.cpp
+++ b/libs/gui/Sensor.cpp
@@ -32,7 +32,7 @@
 Sensor::Sensor()
     : mHandle(0), mType(0),
       mMinValue(0), mMaxValue(0), mResolution(0),
-      mPower(0)
+      mPower(0), mMinDelay(0)
 {
 }
 
@@ -46,6 +46,7 @@
     mMaxValue = hwSensor->maxRange;     // FIXME: maxValue
     mResolution = hwSensor->resolution;
     mPower = hwSensor->power;
+    mMinDelay = hwSensor->minDelay;
 }
 
 Sensor::~Sensor()
@@ -84,12 +85,17 @@
     return mPower;
 }
 
+int32_t Sensor::getMinDelay() const {
+    return mMinDelay;
+}
+
 size_t Sensor::getFlattenedSize() const
 {
     return  sizeof(int32_t) + ((mName.length() + 3) & ~3) +
             sizeof(int32_t) + ((mVendor.length() + 3) & ~3) +
             sizeof(int32_t) * 2 +
-            sizeof(float) * 4;
+            sizeof(float) * 4 +
+            sizeof(int32_t);
 }
 
 size_t Sensor::getFdCount() const
@@ -132,6 +138,7 @@
     offset += write(buffer, offset, mMaxValue);
     offset += write(buffer, offset, mResolution);
     offset += write(buffer, offset, mPower);
+    offset += write(buffer, offset, mMinDelay);
 
     return NO_ERROR;
 }
@@ -169,6 +176,7 @@
     offset += read(buffer, offset, &mMaxValue);
     offset += read(buffer, offset, &mResolution);
     offset += read(buffer, offset, &mPower);
+    offset += read(buffer, offset, &mMinDelay);
 
     return NO_ERROR;
 }
diff --git a/libs/gui/SensorEventQueue.cpp b/libs/gui/SensorEventQueue.cpp
index 4b46842..3396f25 100644
--- a/libs/gui/SensorEventQueue.cpp
+++ b/libs/gui/SensorEventQueue.cpp
@@ -114,10 +114,10 @@
     return mSensorEventConnection->enableDisable(sensor->getHandle(), false);
 }
 
-status_t SensorEventQueue::enableSensor(int32_t handle, int32_t ms) const {
+status_t SensorEventQueue::enableSensor(int32_t handle, int32_t us) const {
     status_t err = mSensorEventConnection->enableDisable(handle, true);
     if (err == NO_ERROR) {
-        mSensorEventConnection->setEventRate(handle, ms2ns(ms));
+        mSensorEventConnection->setEventRate(handle, us2ns(us));
     }
     return err;
 }