// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef DEVICE_GAMEPAD_ABSTRACT_HAPTIC_GAMEPAD_H_ #define DEVICE_GAMEPAD_ABSTRACT_HAPTIC_GAMEPAD_H_ #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h" #include "base/threading/thread_checker.h" #include "device/gamepad/gamepad_export.h" #include "device/gamepad/public/mojom/gamepad.mojom.h" namespace device { // AbstractHapticGamepad is a base class for gamepads that support dual-rumble // vibration effects. To use it, override the SetVibration method so that it // sets the vibration intensity on the device. Then, calling PlayEffect or // ResetVibration will call your SetVibration method at the appropriate times // to produce the desired vibration effect. When the effect is complete, or when // it has been preempted by another effect, the callback is invoked with a // result code. // // By default, SetZeroVibration simply calls SetVibration with both parameters // set to zero. You may optionally override SetZeroVibration if the device has a // more efficient means of stopping an ongoing effect. class DEVICE_GAMEPAD_EXPORT AbstractHapticGamepad { … }; } // namespace device #endif // DEVICE_GAMEPAD_ABSTRACT_HAPTIC_GAMEPAD_H_