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_; |