gamepad_controller.h revision effb81e5f8246d0db0270817048dc992db66e9fb
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 // TODO(b.kelemen): for historical reasons Connect just initializes the 34 // object. The 'gamepadconnected' event will be dispatched via 35 // DispatchConnected. Tests for connected events need to first connect(), 36 // then set the gamepad data and finally call dispatchConnected(). 37 // We should consider renaming Connect to Init and DispatchConnected to 38 // Connect and at the same time updating all the gamepad tests. 39 void Connect(int index); 40 void DispatchConnected(int index); 41 42 void Disconnect(int index); 43 void SetId(int index, const std::string& src); 44 void SetButtonCount(int index, int buttons); 45 void SetButtonData(int index, int button, double data); 46 void SetAxisCount(int index, int axes); 47 void SetAxisData(int index, int axis, double data); 48 49 blink::WebGamepads gamepads_; 50 51 WebTestRunner::WebTestDelegate* delegate_; 52 53 base::WeakPtrFactory<GamepadController> weak_factory_; 54 55 DISALLOW_COPY_AND_ASSIGN(GamepadController); 56}; 57 58} // namespace content 59 60#endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_GAMEPAD_CONTROLLER_H_ 61