Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(877)

Unified Diff: third_party/WebKit/Source/modules/device_orientation/DeviceMotionData.cpp

Issue 2720943002: Implement DeviceMotionEvent constructor. (Closed)
Patch Set: Reference Candidate Recommendation. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/device_orientation/DeviceMotionData.cpp
diff --git a/third_party/WebKit/Source/modules/device_orientation/DeviceMotionData.cpp b/third_party/WebKit/Source/modules/device_orientation/DeviceMotionData.cpp
index c75a84ac27206dc48d09df8865569ed896754b07..e0965a8dfc06bb45cba9722f27abbfc6564632ba 100644
--- a/third_party/WebKit/Source/modules/device_orientation/DeviceMotionData.cpp
+++ b/third_party/WebKit/Source/modules/device_orientation/DeviceMotionData.cpp
@@ -24,6 +24,10 @@
*/
#include "modules/device_orientation/DeviceMotionData.h"
+
+#include "modules/device_orientation/DeviceAccelerationInit.h"
+#include "modules/device_orientation/DeviceMotionEventInit.h"
+#include "modules/device_orientation/DeviceRotationRateInit.h"
#include "public/platform/modules/device_orientation/WebDeviceMotionData.h"
namespace blink {
@@ -39,6 +43,13 @@ DeviceMotionData::Acceleration* DeviceMotionData::Acceleration::create(
canProvideZ, z);
}
+DeviceMotionData::Acceleration* DeviceMotionData::Acceleration::create(
+ const DeviceAccelerationInit& init) {
+ return new DeviceMotionData::Acceleration(
+ init.hasX(), init.hasX() ? init.x() : 0, init.hasY(),
+ init.hasY() ? init.y() : 0, init.hasZ(), init.hasZ() ? init.z() : 0);
+}
+
DeviceMotionData::Acceleration::Acceleration(bool canProvideX,
double x,
bool canProvideY,
@@ -65,6 +76,14 @@ DeviceMotionData::RotationRate* DeviceMotionData::RotationRate::create(
canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma);
}
+DeviceMotionData::RotationRate* DeviceMotionData::RotationRate::create(
+ const DeviceRotationRateInit& init) {
+ return new DeviceMotionData::RotationRate(
+ init.hasAlpha(), init.hasAlpha() ? init.alpha() : 0, init.hasBeta(),
+ init.hasBeta() ? init.beta() : 0, init.hasGamma(),
+ init.hasGamma() ? init.gamma() : 0);
+}
+
DeviceMotionData::RotationRate::RotationRate(bool canProvideAlpha,
double alpha,
bool canProvideBeta,
@@ -92,6 +111,21 @@ DeviceMotionData* DeviceMotionData::create(
rotationRate, canProvideInterval, interval);
}
+DeviceMotionData* DeviceMotionData::create(const DeviceMotionEventInit& init) {
+ return DeviceMotionData::create(
+ init.hasAcceleration()
+ ? DeviceMotionData::Acceleration::create(init.acceleration())
+ : nullptr,
+ init.hasAccelerationIncludingGravity()
+ ? DeviceMotionData::Acceleration::create(
+ init.accelerationIncludingGravity())
+ : nullptr,
+ init.hasRotationRate()
+ ? DeviceMotionData::RotationRate::create(init.rotationRate())
+ : nullptr,
+ init.hasInterval(), init.hasInterval() ? init.interval() : 0);
+}
+
DeviceMotionData* DeviceMotionData::create(const WebDeviceMotionData& data) {
return DeviceMotionData::create(
DeviceMotionData::Acceleration::create(

Powered by Google App Engine
This is Rietveld 408576698