diff options
Diffstat (limited to 'WebCore/dom/DeviceMotionData.h')
-rw-r--r-- | WebCore/dom/DeviceMotionData.h | 103 |
1 files changed, 61 insertions, 42 deletions
diff --git a/WebCore/dom/DeviceMotionData.h b/WebCore/dom/DeviceMotionData.h index cd90246..1d53b53 100644 --- a/WebCore/dom/DeviceMotionData.h +++ b/WebCore/dom/DeviceMotionData.h @@ -28,60 +28,79 @@ #include <wtf/PassRefPtr.h> #include <wtf/RefCounted.h> +#include <wtf/RefPtr.h> namespace WebCore { class DeviceMotionData : public RefCounted<DeviceMotionData> { public: + class Acceleration : public RefCounted<DeviceMotionData::Acceleration> { + public: + static PassRefPtr<Acceleration> create(bool canProvideX, double x, bool canProvideY, double y, bool canProvideZ, double z); + + bool canProvideX() const { return m_canProvideX; } + bool canProvideY() const { return m_canProvideY; } + bool canProvideZ() const { return m_canProvideZ; } + + double x() const { return m_x; } + double y() const { return m_y; } + double z() const { return m_z; } + + private: + Acceleration(bool canProvideX, double x, bool canProvideY, double y, bool canProvideZ, double z); + + double m_x; + double m_y; + double m_z; + + bool m_canProvideX; + bool m_canProvideY; + bool m_canProvideZ; + }; + + class RotationRate : public RefCounted<DeviceMotionData::RotationRate> { + public: + static PassRefPtr<RotationRate> create(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma); + + bool canProvideAlpha() const { return m_canProvideAlpha; } + bool canProvideBeta() const { return m_canProvideBeta; } + bool canProvideGamma() const { return m_canProvideGamma; } + + double alpha() const { return m_alpha; } + double beta() const { return m_beta; } + double gamma() const { return m_gamma; } + + private: + RotationRate(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma); + + double m_alpha; + double m_beta; + double m_gamma; + + bool m_canProvideAlpha; + bool m_canProvideBeta; + bool m_canProvideGamma; + }; + static PassRefPtr<DeviceMotionData> create(); - static PassRefPtr<DeviceMotionData> create(bool canProvideXAcceleration, double xAcceleration, - bool canProvideYAcceleration, double yAcceleration, - bool canProvideZAcceleration, double zAcceleration, - bool canProvideXRotationRate, double xRotationRate, - bool canProvideYRotationRate, double yRotationRate, - bool canProvideZRotationRate, double zRotationRate, - bool canProvideInterval, double interval); - - double xAcceleration() const { return m_xAcceleration; } - double yAcceleration() const { return m_yAcceleration; } - double zAcceleration() const { return m_zAcceleration; } - double xRotationRate() const { return m_xRotationRate; } - double yRotationRate() const { return m_yRotationRate; } - double zRotationRate() const { return m_zRotationRate; } - double interval() const { return m_interval; } + static PassRefPtr<DeviceMotionData> create(PassRefPtr<Acceleration> acceleration, PassRefPtr<Acceleration> accelerationIncludingGravity, + PassRefPtr<RotationRate> rotationRate, bool canProvideInterval, double interval); - bool canProvideXAcceleration() const { return m_canProvideXAcceleration; } - bool canProvideYAcceleration() const { return m_canProvideYAcceleration; } - bool canProvideZAcceleration() const { return m_canProvideZAcceleration; } - bool canProvideXRotationRate() const { return m_canProvideXRotationRate; } - bool canProvideYRotationRate() const { return m_canProvideYRotationRate; } - bool canProvideZRotationRate() const { return m_canProvideZRotationRate; } + const Acceleration* acceleration() const { return m_acceleration.get(); } + const Acceleration* accelerationIncludingGravity() const { return m_accelerationIncludingGravity.get(); } + const RotationRate* rotationRate() const { return m_rotationRate.get(); } + double interval() const { return m_interval; } bool canProvideInterval() const { return m_canProvideInterval; } private: DeviceMotionData(); - DeviceMotionData(bool canProvideXAcceleration, double xAcceleration, - bool canProvideYAcceleration, double yAcceleration, - bool canProvideZAcceleration, double zAcceleration, - bool canProvideXRotationRate, double xRotationRate, - bool canProvideYRotationRate, double yRotationRate, - bool canProvideZRotationRate, double zRotationRate, - bool canProvideInterval, double interval); - - bool m_canProvideXAcceleration; - bool m_canProvideYAcceleration; - bool m_canProvideZAcceleration; - bool m_canProvideXRotationRate; - bool m_canProvideYRotationRate; - bool m_canProvideZRotationRate; - bool m_canProvideInterval; + DeviceMotionData(PassRefPtr<Acceleration> acceleration, PassRefPtr<Acceleration> accelerationIncludingGravity, + PassRefPtr<RotationRate> rotationRate, bool canProvideInterval, double interval); - double m_xAcceleration; - double m_yAcceleration; - double m_zAcceleration; - double m_xRotationRate; - double m_yRotationRate; - double m_zRotationRate; + RefPtr<Acceleration> m_acceleration; + RefPtr<Acceleration> m_accelerationIncludingGravity; + RefPtr<RotationRate> m_rotationRate; + bool m_canProvideInterval; double m_interval; }; |