gamepad_monitor.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright (c) 2012 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. #ifndef DEVICE_GAMEPAD_GAMEPAD_MONITOR_H_
  5. #define DEVICE_GAMEPAD_GAMEPAD_MONITOR_H_
  6. #include "base/compiler_specific.h"
  7. #include "device/gamepad/gamepad_consumer.h"
  8. #include "device/gamepad/gamepad_export.h"
  9. #include "device/gamepad/public/mojom/gamepad.mojom.h"
  10. #include "mojo/public/cpp/bindings/pending_receiver.h"
  11. #include "mojo/public/cpp/bindings/remote.h"
  12. namespace device {
  13. class DEVICE_GAMEPAD_EXPORT GamepadMonitor : public GamepadConsumer,
  14. public mojom::GamepadMonitor {
  15. public:
  16. GamepadMonitor();
  17. GamepadMonitor(const GamepadMonitor&) = delete;
  18. GamepadMonitor& operator=(const GamepadMonitor&) = delete;
  19. ~GamepadMonitor() override;
  20. static void Create(mojo::PendingReceiver<mojom::GamepadMonitor> receiver);
  21. // GamepadConsumer implementation.
  22. void OnGamepadConnected(uint32_t index, const Gamepad& gamepad) override;
  23. void OnGamepadDisconnected(uint32_t index, const Gamepad& gamepad) override;
  24. void OnGamepadChanged(const mojom::GamepadChanges& change) override;
  25. // mojom::GamepadMonitor implementation.
  26. void GamepadStartPolling(GamepadStartPollingCallback callback) override;
  27. void GamepadStopPolling(GamepadStopPollingCallback callback) override;
  28. void SetObserver(
  29. mojo::PendingRemote<mojom::GamepadObserver> gamepad_observer) override;
  30. private:
  31. mojo::Remote<mojom::GamepadObserver> gamepad_observer_remote_;
  32. // True if this monitor is an active gamepad consumer.
  33. bool is_started_ = false;
  34. // True if this monitor has been registered with the gamepad service.
  35. bool is_registered_consumer_ = false;
  36. };
  37. } // namespace device
  38. #endif // DEVICE_GAMEPAD_GAMEPAD_MONITOR_H_