// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_EXO_GAMEPAD_DELEGATE_H_ #define COMPONENTS_EXO_GAMEPAD_DELEGATE_H_ namespace exo { // Handles events for a specific gamepad. class GamepadDelegate { public: // Called when the gamepad has been removed. virtual void OnRemoved() = 0; // Called when the user moved an axis of the gamepad. Valid axes are defined // by the W3C 'standard gamepad' specification. virtual void OnAxis(int axis, double value) = 0; // Called when the user pressed or moved a button of the gamepad. // Valid buttons are defined by the W3C 'standard gamepad' specification. virtual void OnButton(int button, bool pressed, double value) = 0; // Called after all gamepad information of this frame has been set and the // client should evaluate the updated state. virtual void OnFrame() = 0; protected: virtual ~GamepadDelegate() {} }; } // namespace exo #endif // COMPONENTS_EXO_GAMEPAD_DELEGATE_H_