DeviceOrientationData.h [plain text]
#pragma once
#include "PlatformExportMacros.h"
#include <wtf/Optional.h>
#include <wtf/Ref.h>
#include <wtf/RefCounted.h>
namespace WebCore {
class DeviceOrientationData : public RefCounted<DeviceOrientationData> {
public:
static Ref<DeviceOrientationData> create()
{
return adoptRef(*new DeviceOrientationData);
}
#if PLATFORM(IOS)
WEBCORE_EXPORT static Ref<DeviceOrientationData> create(std::optional<double> alpha, std::optional<double> beta, std::optional<double> gamma, std::optional<double> compassHeading, std::optional<double> compassAccuracy);
#else
WEBCORE_EXPORT static Ref<DeviceOrientationData> create(std::optional<double> alpha, std::optional<double> beta, std::optional<double> gamma, std::optional<bool> absolute);
#endif
std::optional<double> alpha() const { return m_alpha; }
std::optional<double> beta() const { return m_beta; }
std::optional<double> gamma() const { return m_gamma; }
#if PLATFORM(IOS)
std::optional<double> compassHeading() const { return m_compassHeading; }
std::optional<double> compassAccuracy() const { return m_compassAccuracy; }
#else
std::optional<bool> absolute() const { return m_absolute; }
#endif
private:
DeviceOrientationData() = default;
#if PLATFORM(IOS)
DeviceOrientationData(std::optional<double> alpha, std::optional<double> beta, std::optional<double> gamma, std::optional<double> compassHeading, std::optional<double> compassAccuracy);
#else
DeviceOrientationData(std::optional<double> alpha, std::optional<double> beta, std::optional<double> gamma, std::optional<bool> absolute);
#endif
std::optional<double> m_alpha;
std::optional<double> m_beta;
std::optional<double> m_gamma;
#if PLATFORM(IOS)
std::optional<double> m_compassHeading;
std::optional<double> m_compassAccuracy;
#else
std::optional<bool> m_absolute;
#endif
};
}