X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fhardware-intel-libsensors.git;a=blobdiff_plain;f=hsb%2FSensorConfig.h;h=28c01637585d797e4a66e0289db0318dec399dc8;hp=ebf185ad47754263b068021ae51f1190ca9fb915;hb=463d5aa217479c4643f88db987ccc152ec011d65;hpb=8ee28422c817a615d075214d7c770df6f8cefbbb diff --git a/hsb/SensorConfig.h b/hsb/SensorConfig.h index ebf185a..28c0163 100644 --- a/hsb/SensorConfig.h +++ b/hsb/SensorConfig.h @@ -125,28 +125,18 @@ inline unsigned int set_bit_range(int start, int end) return value; } -inline float convert_from_vtf_format(int size, int exponent, unsigned int value) +inline float convert_from_vtf_format(int size, float scale, unsigned int value) { int divider=1; int i; - float sample; - int mul = 1.0; + float mul = 1.0; value = value & set_bit_range(0, size*8); if (value & BIT(size*8-1)) { value = ((1LL << (size*8)) - value); mul = -1.0; } - sample = value * 1.0; - if (exponent < 0) { - exponent = abs(exponent); - for (i = 0; i < exponent; ++i) { - divider = divider*10; - } - return mul * sample/divider; - } else { - return mul * sample * pow(10.0, exponent); - } + return mul * scale * value; } // Platform sensor orientatation @@ -161,11 +151,11 @@ inline float convert_from_vtf_format(int size, int exponent, unsigned int value) // G to m/s2 #define CONVERT_FROM_VTF16(s,d,x) (convert_from_vtf_format(s,d,x)) #define CONVERT_A_G_VTF16E14_X(s,d,x) (DEF_ORIENT_ACCEL_X *\ - convert_from_vtf_format(s,d,x)*GRAVITY) + convert_from_vtf_format(s,d,x)) #define CONVERT_A_G_VTF16E14_Y(s,d,x) (DEF_ORIENT_ACCEL_Y *\ - convert_from_vtf_format(s,d,x)*GRAVITY) + convert_from_vtf_format(s,d,x)) #define CONVERT_A_G_VTF16E14_Z(s,d,x) (DEF_ORIENT_ACCEL_Z *\ - convert_from_vtf_format(s,d,x)*GRAVITY) + convert_from_vtf_format(s,d,x)) // Degree/sec to radian/sec #define CONVERT_G_D_VTF16E14_X(s,d,x) (DEF_ORIENT_GYRO_X *\