interface Event {
};
interface EventTarget {
};
interface EventHandler {
};
interface Error {
};
dictionary EventInit {
};
[SecureContext]
interface Sensor : EventTarget {
readonly attribute SensorState state;
readonly attribute SensorReading? reading;
void start();
void stop();
attribute EventHandler onchange;
attribute EventHandler onactivate;
attribute EventHandler onerror;
};
dictionary SensorOptions {
double? frequency;
};
enum SensorState {
"idle",
"activating",
"activated",
"errored"
};
[SecureContext]
interface SensorReading {
readonly attribute DOMHighResTimeStamp timeStamp;
};
[SecureContext, Constructor(DOMString type, SensorErrorEventInit errorEventInitDict)]
interface SensorErrorEvent : Event {
readonly attribute Error error;
};
dictionary SensorErrorEventInit : EventInit {
required Error error;
};
[Constructor(optional AccelerometerOptions accelerometerOptions)]
interface Accelerometer : Sensor {
readonly attribute AccelerometerReading? reading;
readonly attribute boolean includesGravity;
};
dictionary AccelerometerOptions : SensorOptions {
boolean includeGravity = true;
};
[Constructor(AccelerometerReadingInit AccelerometerReadingInit)]
interface AccelerometerReading : SensorReading {
readonly attribute double x;
readonly attribute double y;
readonly attribute double z;
};
dictionary AccelerometerReadingInit {
double x = 0;
double y = 0;
double z = 0;
};