| Index: content/browser/gamepad/gamepad_service.h
|
| diff --git a/content/browser/gamepad/gamepad_service.h b/content/browser/gamepad/gamepad_service.h
|
| index d453639363011f3b3ef898bc132d734704088804..b5c419b44d619ff30bb9995c2562c12bf766c016 100644
|
| --- a/content/browser/gamepad/gamepad_service.h
|
| +++ b/content/browser/gamepad/gamepad_service.h
|
| @@ -14,23 +14,28 @@
|
| #include "base/memory/singleton.h"
|
| #include "base/threading/thread_checker.h"
|
| #include "content/common/content_export.h"
|
| +#include "device/gamepad/gamepad_provider.h"
|
|
|
| namespace blink {
|
| class WebGamepad;
|
| }
|
|
|
| -namespace content {
|
| -
|
| +namespace device {
|
| class GamepadConsumer;
|
| class GamepadDataFetcher;
|
| class GamepadProvider;
|
| +}
|
| +
|
| +namespace content {
|
| +
|
| class GamepadServiceTestConstructor;
|
| class RenderProcessHost;
|
|
|
| // Owns the GamepadProvider (the background polling thread) and keeps track of
|
| // the number of consumers currently using the data (and pausing the provider
|
| // when not in use).
|
| -class CONTENT_EXPORT GamepadService {
|
| +class CONTENT_EXPORT GamepadService
|
| + : public device::GamepadConnectionChangeClient {
|
| public:
|
| // Returns the GamepadService singleton.
|
| static GamepadService* GetInstance();
|
| @@ -44,21 +49,21 @@ class CONTENT_EXPORT GamepadService {
|
| // gamepads.
|
| //
|
| // Must be called on the I/O thread.
|
| - void ConsumerBecameActive(GamepadConsumer* consumer);
|
| + void ConsumerBecameActive(device::GamepadConsumer* consumer);
|
|
|
| // Decrements the number of users of the provider. consumer will not be
|
| // informed about connections until it's added back via ConsumerBecameActive.
|
| // Must be matched with a ConsumerBecameActive call.
|
| //
|
| // Must be called on the I/O thread.
|
| - void ConsumerBecameInactive(GamepadConsumer* consumer);
|
| + void ConsumerBecameInactive(device::GamepadConsumer* consumer);
|
|
|
| // Decrements the number of users of the provider and removes consumer from
|
| // the set of consumers. Should be matched with a a ConsumerBecameActive
|
| // call.
|
| //
|
| // Must be called on the I/O thread.
|
| - void RemoveConsumer(GamepadConsumer* consumer);
|
| + void RemoveConsumer(device::GamepadConsumer* consumer);
|
|
|
| // Registers the given closure for calling when the user has interacted with
|
| // the device. This callback will only be issued once. Should only be called
|
| @@ -88,7 +93,8 @@ class CONTENT_EXPORT GamepadService {
|
|
|
| // Constructor for testing. This specifies the data fetcher to use for a
|
| // provider, bypassing the default platform one.
|
| - GamepadService(std::unique_ptr<GamepadDataFetcher> fetcher);
|
| + GamepadService(
|
| + std::unique_ptr<device::GamepadDataFetcher> fetcher);
|
|
|
| virtual ~GamepadService();
|
|
|
| @@ -96,22 +102,24 @@ class CONTENT_EXPORT GamepadService {
|
|
|
| void OnUserGesture();
|
|
|
| + void OnGamepadConnectionChange(bool connected,
|
| + int index,
|
| + const blink::WebGamepad& pad) override;
|
| +
|
| struct ConsumerInfo {
|
| - ConsumerInfo(GamepadConsumer* consumer)
|
| - : consumer(consumer),
|
| - did_observe_user_gesture(false) {
|
| - }
|
| + ConsumerInfo(device::GamepadConsumer* consumer)
|
| + : consumer(consumer), did_observe_user_gesture(false) {}
|
|
|
| bool operator<(const ConsumerInfo& other) const {
|
| return consumer < other.consumer;
|
| }
|
|
|
| - GamepadConsumer* consumer;
|
| + device::GamepadConsumer* consumer;
|
| mutable bool is_active;
|
| mutable bool did_observe_user_gesture;
|
| };
|
|
|
| - std::unique_ptr<GamepadProvider> provider_;
|
| + std::unique_ptr<device::GamepadProvider> provider_;
|
|
|
| base::ThreadChecker thread_checker_;
|
|
|
|
|