1/* 2 * Copyright (C) 2010 Google 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#include "config.h" 27#include "DeviceOrientationData.h" 28 29namespace WebCore { 30 31PassRefPtr<DeviceOrientationData> DeviceOrientationData::create() 32{ 33 return adoptRef(new DeviceOrientationData); 34} 35 36#if PLATFORM(IOS) 37// FIXME: We should reconcile the iOS and OpenSource differences. 38PassRefPtr<DeviceOrientationData> DeviceOrientationData::create(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma, bool canProvideCompassHeading, double compassHeading, bool canProvideCompassAccuracy, double compassAccuracy) 39{ 40 return adoptRef(new DeviceOrientationData(canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma, canProvideCompassHeading, compassHeading, canProvideCompassAccuracy, compassAccuracy)); 41} 42#else 43PassRefPtr<DeviceOrientationData> DeviceOrientationData::create(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma, bool canProvideAbsolute, bool absolute) 44{ 45 return adoptRef(new DeviceOrientationData(canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma, canProvideAbsolute, absolute)); 46} 47#endif 48 49 50DeviceOrientationData::DeviceOrientationData() 51 : m_canProvideAlpha(false) 52 , m_canProvideBeta(false) 53 , m_canProvideGamma(false) 54#if !PLATFORM(IOS) 55 , m_canProvideAbsolute(false) 56#endif 57 , m_alpha(0) 58 , m_beta(0) 59 , m_gamma(0) 60#if PLATFORM(IOS) 61 , m_canProvideCompassHeading(false) 62 , m_canProvideCompassAccuracy(false) 63#else 64 , m_absolute(false) 65#endif 66{ 67} 68 69#if PLATFORM(IOS) 70DeviceOrientationData::DeviceOrientationData(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma, bool canProvideCompassHeading, double compassHeading, bool canProvideCompassAccuracy, double compassAccuracy) 71 : m_canProvideAlpha(canProvideAlpha) 72 , m_canProvideBeta(canProvideBeta) 73 , m_canProvideGamma(canProvideGamma) 74 , m_alpha(alpha) 75 , m_beta(beta) 76 , m_gamma(gamma) 77 , m_canProvideCompassHeading(canProvideCompassHeading) 78 , m_canProvideCompassAccuracy(canProvideCompassAccuracy) 79 , m_compassHeading(compassHeading) 80 , m_compassAccuracy(compassAccuracy) 81#else 82DeviceOrientationData::DeviceOrientationData(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma, bool canProvideAbsolute, bool absolute) 83 : m_canProvideAlpha(canProvideAlpha) 84 , m_canProvideBeta(canProvideBeta) 85 , m_canProvideGamma(canProvideGamma) 86 , m_canProvideAbsolute(canProvideAbsolute) 87 , m_alpha(alpha) 88 , m_beta(beta) 89 , m_gamma(gamma) 90 , m_absolute(absolute) 91#endif 92{ 93} 94 95double DeviceOrientationData::alpha() const 96{ 97 return m_alpha; 98} 99 100double DeviceOrientationData::beta() const 101{ 102 return m_beta; 103} 104 105double DeviceOrientationData::gamma() const 106{ 107 return m_gamma; 108} 109 110#if !PLATFORM(IOS) 111bool DeviceOrientationData::absolute() const 112{ 113 return m_absolute; 114} 115#endif 116 117bool DeviceOrientationData::canProvideAlpha() const 118{ 119 return m_canProvideAlpha; 120} 121 122bool DeviceOrientationData::canProvideBeta() const 123{ 124 return m_canProvideBeta; 125} 126 127bool DeviceOrientationData::canProvideGamma() const 128{ 129 return m_canProvideGamma; 130} 131 132#if PLATFORM(IOS) 133double DeviceOrientationData::compassHeading() const 134{ 135 return m_compassHeading; 136} 137 138double DeviceOrientationData::compassAccuracy() const 139{ 140 return m_compassAccuracy; 141} 142 143bool DeviceOrientationData::canProvideCompassHeading() const 144{ 145 return m_canProvideCompassHeading; 146} 147 148bool DeviceOrientationData::canProvideCompassAccuracy() const 149{ 150 return m_canProvideCompassAccuracy; 151} 152#endif 153 154#if !PLATFORM(IOS) 155bool DeviceOrientationData::canProvideAbsolute() const 156{ 157 return m_canProvideAbsolute; 158} 159#endif 160 161} // namespace WebCore 162