#include <math.h>
#include <numbers>
#include <vector>
#include "base/functional/bind.h"
#include "base/memory/ptr_util.h"
#include "base/no_destructor.h"
#include "base/time/time.h"
#include "device/vr/orientation/orientation_device.h"
#include "device/vr/orientation/orientation_session.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/device/public/cpp/generic_sensor/sensor_reading.h"
#include "services/device/public/cpp/generic_sensor/sensor_reading_shared_buffer.h"
#include "services/device/public/cpp/generic_sensor/sensor_reading_shared_buffer_reader.h"
#include "services/device/public/mojom/sensor_provider.mojom.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
#include "ui/gfx/geometry/quaternion.h"
#include "ui/gfx/geometry/vector3d_f.h"
namespace device {
Quaternion;
Vector3dF;
namespace {
static constexpr int kDefaultPumpFrequencyHz = …;
display::Display::Rotation GetRotation() { … }
const std::vector<mojom::XRSessionFeature>& GetSupportedFeatures() { … }
}
VROrientationDevice::VROrientationDevice(mojom::SensorProvider* sensor_provider,
base::OnceClosure ready_callback)
: … { … }
VROrientationDevice::~VROrientationDevice() { … }
void VROrientationDevice::SensorReady(
device::mojom::SensorCreationResult,
device::mojom::SensorInitParamsPtr params) { … }
void VROrientationDevice::OnSensorAddConfiguration(bool success) { … }
void VROrientationDevice::RaiseError() { … }
void VROrientationDevice::HandleSensorError() { … }
void VROrientationDevice::RequestSession(
mojom::XRRuntimeSessionOptionsPtr options,
mojom::XRRuntime::RequestSessionCallback callback) { … }
void VROrientationDevice::ShutdownSession(
mojom::XRRuntime::ShutdownSessionCallback callback) { … }
void VROrientationDevice::EndMagicWindowSession(VROrientationSession* session) { … }
void VROrientationDevice::GetInlineFrameData(
mojom::XRFrameDataProvider::GetFrameDataCallback callback) { … }
Quaternion VROrientationDevice::SensorSpaceToWorldSpace(Quaternion q) { … }
Quaternion VROrientationDevice::WorldSpaceToUserOrientedSpace(Quaternion q) { … }
}