1 /* 2 * Copyright (C) 2010 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_DEVICE_ORIENTATION_DEVICE_MOTION_DATA_H_ 27 #define THIRD_PARTY_BLINK_RENDERER_MODULES_DEVICE_ORIENTATION_DEVICE_MOTION_DATA_H_ 28 29 #include "third_party/blink/renderer/modules/modules_export.h" 30 #include "third_party/blink/renderer/platform/heap/handle.h" 31 32 namespace blink { 33 34 class DeviceMotionEventAcceleration; 35 class DeviceMotionEventRotationRate; 36 class DeviceMotionEventInit; 37 38 class MODULES_EXPORT DeviceMotionData final 39 : public GarbageCollected<DeviceMotionData> { 40 public: 41 static DeviceMotionData* Create(); 42 static DeviceMotionData* Create( 43 DeviceMotionEventAcceleration*, 44 DeviceMotionEventAcceleration* acceleration_including_gravity, 45 DeviceMotionEventRotationRate*, 46 double interval); 47 static DeviceMotionData* Create(const DeviceMotionEventInit*); 48 49 DeviceMotionData(); 50 DeviceMotionData( 51 DeviceMotionEventAcceleration*, 52 DeviceMotionEventAcceleration* acceleration_including_gravity, 53 DeviceMotionEventRotationRate*, 54 double interval); 55 56 void Trace(Visitor*); 57 GetAcceleration()58 DeviceMotionEventAcceleration* GetAcceleration() const { 59 return acceleration_.Get(); 60 } GetAccelerationIncludingGravity()61 DeviceMotionEventAcceleration* GetAccelerationIncludingGravity() const { 62 return acceleration_including_gravity_.Get(); 63 } GetRotationRate()64 DeviceMotionEventRotationRate* GetRotationRate() const { 65 return rotation_rate_.Get(); 66 } 67 Interval()68 double Interval() const { return interval_; } 69 70 bool CanProvideEventData() const; 71 72 private: 73 Member<DeviceMotionEventAcceleration> acceleration_; 74 Member<DeviceMotionEventAcceleration> acceleration_including_gravity_; 75 Member<DeviceMotionEventRotationRate> rotation_rate_; 76 double interval_; 77 }; 78 79 } // namespace blink 80 81 #endif // THIRD_PARTY_BLINK_RENDERER_MODULES_DEVICE_ORIENTATION_DEVICE_MOTION_DATA_H_ 82