1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// found in the LICENSE file. 4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#ifndef WebKitGamepad_h 6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define WebKitGamepad_h 7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 8197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "bindings/core/v8/ScriptWrappable.h" 9d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "modules/gamepad/GamepadCommon.h" 1010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#include "platform/heap/Handle.h" 11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "wtf/Vector.h" 12d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 14d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 156f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdochclass WebKitGamepad FINAL : public GarbageCollectedFinalized<WebKitGamepad>, public GamepadCommon, public ScriptWrappable { 167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci DEFINE_WRAPPERTYPEINFO(); 17d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)public: 186f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch static WebKitGamepad* create() 19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 206f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch return new WebKitGamepad(); 21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) ~WebKitGamepad(); 23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 24d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) typedef Vector<float> FloatVector; 25d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) const FloatVector& buttons() const { return m_buttons; } 27e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void setButtons(unsigned count, const WebGamepadButton* data); 28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 29d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void trace(Visitor*) { } 30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)private: 32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) WebKitGamepad(); 33d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) FloatVector m_buttons; 34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}; 35d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 36c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 37d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 38d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#endif // WebKitGamepad_h 39