Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2cce455e authored by Ricardo Cerqueira's avatar Ricardo Cerqueira
Browse files

sensors: Simplify the data translation in the back-compat hook

Since the sensor data comes in a union, we don't need to do a copy
for every possible entry, we just need one per type. This cuts us
down from 6 data copies on every poll to just 2.

Change-Id: I755f3018ad38be1b7fa04528143507204b4df605
parent febff45f
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -202,12 +202,10 @@ ssize_t SensorDevice::poll(sensors_event_t* buffer, size_t count) {
            buffer[pollsDone].timestamp = oldBuffer.time;
            buffer[pollsDone].sensor = result;
            buffer[pollsDone].type = oldBuffer.sensor;
            buffer[pollsDone].acceleration = oldBuffer.acceleration;
            buffer[pollsDone].magnetic = oldBuffer.magnetic;
            buffer[pollsDone].orientation = oldBuffer.orientation;
            /* This part is a union. Regardless of the sensor type,
             * we only need to copy a sensors_vec_t and a float */
            buffer[pollsDone].acceleration = oldBuffer.vector;
            buffer[pollsDone].temperature = oldBuffer.temperature;
            buffer[pollsDone].distance = oldBuffer.distance;
            buffer[pollsDone].light = oldBuffer.light;
            LOGV("Adding results for sensor %d", buffer[pollsDone].sensor);
            pollsDone++;
        }