Files
sousa-gecko/widget/android/GeckoSensorSupport.cpp
Makoto Kato f979ac1b31 Bug 2046280 - Move device sensor feature to own class. r=geckoview-reviewers,owlish
For readability and maintainability, we want to move the device sensor
feature to its own class.

Differential Revision: https://phabricator.services.mozilla.com/D306984
2026-06-30 07:18:34 +00:00

58 lines
1.6 KiB
C++

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "GeckoSensorSupport.h"
#include "mozilla/Hal.h"
using namespace mozilla;
namespace mozilla::widget {
// static
void GeckoSensorSupport::OnSensorChanged(int32_t aType, float aX, float aY,
float aZ, float aW, int64_t aTime) {
AutoTArray<float, 4> values;
switch (aType) {
// Bug 938035, transfer HAL data for orientation sensor to meet w3c
// spec, ex: HAL report alpha=90 means East but alpha=90 means West
// in w3c spec
case hal::SENSOR_ORIENTATION:
values.AppendElement(360.0f - aX);
values.AppendElement(-aY);
values.AppendElement(-aZ);
break;
case hal::SENSOR_LINEAR_ACCELERATION:
case hal::SENSOR_ACCELERATION:
case hal::SENSOR_GYROSCOPE:
values.AppendElement(aX);
values.AppendElement(aY);
values.AppendElement(aZ);
break;
case hal::SENSOR_LIGHT:
values.AppendElement(aX);
break;
case hal::SENSOR_ROTATION_VECTOR:
case hal::SENSOR_GAME_ROTATION_VECTOR:
values.AppendElement(aX);
values.AppendElement(aY);
values.AppendElement(aZ);
values.AppendElement(aW);
break;
default:
__android_log_print(ANDROID_LOG_ERROR, "Gecko", "Unknown sensor type %d",
aType);
}
hal::SensorData sdata(hal::SensorType(aType), aTime, values);
hal::NotifySensorChange(sdata);
}
} // namespace mozilla::widget