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 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 #include "config.h"
27 #include "WebDeviceOrientation.h"
28
29 #include "DeviceOrientation.h"
30 #include <wtf/PassRefPtr.h>
31
32 namespace WebKit {
33
WebDeviceOrientation(const PassRefPtr<WebCore::DeviceOrientation> & orientation)34 WebDeviceOrientation::WebDeviceOrientation(const PassRefPtr<WebCore::DeviceOrientation>& orientation)
35 {
36 if (!orientation) {
37 m_isNull = true;
38 m_canProvideAlpha = false;
39 m_alpha = 0;
40 m_canProvideBeta = false;
41 m_beta = 0;
42 m_canProvideGamma = false;
43 m_gamma = 0;
44 return;
45 }
46
47 m_isNull = false;
48 m_canProvideAlpha = orientation->canProvideAlpha();
49 m_alpha = orientation->alpha();
50 m_canProvideBeta = orientation->canProvideBeta();
51 m_beta = orientation->beta();
52 m_canProvideGamma = orientation->canProvideGamma();
53 m_gamma = orientation->gamma();
54 }
55
operator =(const PassRefPtr<WebCore::DeviceOrientation> & orientation)56 WebDeviceOrientation& WebDeviceOrientation::operator=(const PassRefPtr<WebCore::DeviceOrientation>& orientation)
57 {
58 if (!orientation) {
59 m_isNull = true;
60 m_canProvideAlpha = false;
61 m_alpha = 0;
62 m_canProvideBeta = false;
63 m_beta = 0;
64 m_canProvideGamma = false;
65 m_gamma = 0;
66 return *this;
67 }
68
69 m_isNull = false;
70 m_canProvideAlpha = orientation->canProvideAlpha();
71 m_alpha = orientation->alpha();
72 m_canProvideBeta = orientation->canProvideBeta();
73 m_beta = orientation->beta();
74 m_canProvideGamma = orientation->canProvideGamma();
75 m_gamma = orientation->gamma();
76 return *this;
77 }
78
operator PassRefPtr<WebCore::DeviceOrientation>() const79 WebDeviceOrientation::operator PassRefPtr<WebCore::DeviceOrientation>() const
80 {
81 if (m_isNull)
82 return 0;
83 return WebCore::DeviceOrientation::create(m_canProvideAlpha, m_alpha, m_canProvideBeta, m_beta, m_canProvideGamma, m_gamma);
84 }
85
86 } // namespace WebKit
87