diff options
Diffstat (limited to 'Source/WebCore/Modules/gamepad/Gamepad.h')
-rw-r--r-- | Source/WebCore/Modules/gamepad/Gamepad.h | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/Source/WebCore/Modules/gamepad/Gamepad.h b/Source/WebCore/Modules/gamepad/Gamepad.h index 5b9b1d2dc..f32992f28 100644 --- a/Source/WebCore/Modules/gamepad/Gamepad.h +++ b/Source/WebCore/Modules/gamepad/Gamepad.h @@ -1,30 +1,29 @@ /* - * Copyright (C) 2011, Google Inc. All rights reserved. + * Copyright (C) 2014 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * + * modification, are permitted provided that the following conditions + * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef Gamepad_h -#define Gamepad_h +#pragma once #if ENABLE(GAMEPAD) @@ -34,42 +33,40 @@ namespace WebCore { +class GamepadButton; +class PlatformGamepad; + class Gamepad: public RefCounted<Gamepad> { public: - static PassRefPtr<Gamepad> create() + static Ref<Gamepad> create(const PlatformGamepad& platformGamepad) { - return adoptRef(new Gamepad); + return adoptRef(*new Gamepad(platformGamepad)); } ~Gamepad(); - typedef Vector<float> FloatVector; - const String& id() const { return m_id; } - void id(const String& id) { m_id = id; } - unsigned index() const { return m_index; } - void index(unsigned val) { m_index = val; } + const String& mapping() const { return m_mapping; } - unsigned long long timestamp() const { return m_timestamp; } - void timestamp(unsigned long long val) { m_timestamp = val; } + bool connected() const { return m_connected; } + double timestamp() const { return m_timestamp; } + const Vector<double>& axes() const; + const Vector<Ref<GamepadButton>>& buttons() const; - const FloatVector& axes() const { return m_axes; } - void axes(unsigned count, float* data); - - const FloatVector& buttons() const { return m_buttons; } - void buttons(unsigned count, float* data); + void updateFromPlatformGamepad(const PlatformGamepad&); private: - Gamepad(); + explicit Gamepad(const PlatformGamepad&); String m_id; unsigned m_index; - unsigned long long m_timestamp; - FloatVector m_axes; - FloatVector m_buttons; + bool m_connected; + double m_timestamp; + String m_mapping; + + Vector<double> m_axes; + Vector<Ref<GamepadButton>> m_buttons; }; } // namespace WebCore #endif // ENABLE(GAMEPAD) - -#endif // Gamepad_h |