gamepad_controller.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_GAMEPAD_CONTROLLER_H_ 6#define CONTENT_SHELL_RENDERER_TEST_RUNNER_GAMEPAD_CONTROLLER_H_ 7 8#include "base/memory/weak_ptr.h" 9#include "third_party/WebKit/public/platform/WebGamepads.h" 10 11namespace blink { 12class WebFrame; 13} 14 15namespace WebTestRunner { 16class WebTestDelegate; 17} 18 19namespace content { 20 21class GamepadController : public base::SupportsWeakPtr<GamepadController> { 22 public: 23 GamepadController(); 24 ~GamepadController(); 25 26 void Reset(); 27 void Install(blink::WebFrame* frame); 28 void SetDelegate(WebTestRunner::WebTestDelegate* delegate); 29 30 private: 31 friend class GamepadControllerBindings; 32 33 void Connect(int index); 34 void Disconnect(int index); 35 void SetId(int index, const std::string& src); 36 void SetButtonCount(int index, int buttons); 37 void SetButtonData(int index, int button, double data); 38 void SetAxisCount(int index, int axes); 39 void SetAxisData(int index, int axis, double data); 40 41 blink::WebGamepads gamepads_; 42 43 WebTestRunner::WebTestDelegate* delegate_; 44 45 base::WeakPtrFactory<GamepadController> weak_factory_; 46 47 DISALLOW_COPY_AND_ASSIGN(GamepadController); 48}; 49 50} // namespace content 51 52#endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_GAMEPAD_CONTROLLER_H_ 53