| Index: content/browser/gamepad/gamepad_service.h
|
| diff --git a/content/browser/gamepad/gamepad_service.h b/content/browser/gamepad/gamepad_service.h
|
| index 94620b34b60f901c8b1bfb4865d3092eeb313ee8..aad564eb6c840398d7a0cc8129bfce44259dd48f 100644
|
| --- a/content/browser/gamepad/gamepad_service.h
|
| +++ b/content/browser/gamepad/gamepad_service.h
|
| @@ -13,8 +13,13 @@
|
| #include "base/threading/thread_checker.h"
|
| #include "content/common/content_export.h"
|
|
|
| +namespace blink {
|
| +class WebGamepad;
|
| +}
|
| +
|
| namespace content {
|
|
|
| +class GamepadConsumer;
|
| class GamepadDataFetcher;
|
| class GamepadProvider;
|
| class GamepadServiceTestConstructor;
|
| @@ -32,12 +37,12 @@ class CONTENT_EXPORT GamepadService {
|
| // when there's > 0 users, and is paused when the count drops to 0.
|
| //
|
| // Must be called on the I/O thread.
|
| - void AddConsumer();
|
| + void AddConsumer(GamepadConsumer* consumer);
|
|
|
| // Removes a consumer. Should be matched with an AddConsumer call.
|
| //
|
| // Must be called on the I/O thread.
|
| - void RemoveConsumer();
|
| + void RemoveConsumer(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
|
| @@ -52,6 +57,12 @@ class CONTENT_EXPORT GamepadService {
|
| // Stop/join with the background thread in GamepadProvider |provider_|.
|
| void Terminate();
|
|
|
| + void OnUserGesture();
|
| + void DidReportUserGesture();
|
| +
|
| + void OnGamepadConnected(int index, const blink::WebGamepad& pad);
|
| + void OnGamepadDisconnected(int index, const blink::WebGamepad& pad);
|
| +
|
| private:
|
| friend struct DefaultSingletonTraits<GamepadService>;
|
| friend class GamepadServiceTestConstructor;
|
| @@ -64,7 +75,23 @@ class CONTENT_EXPORT GamepadService {
|
|
|
| virtual ~GamepadService();
|
|
|
| - int num_readers_;
|
| + struct ConsumerInfo {
|
| + explicit ConsumerInfo(GamepadConsumer* consumer)
|
| + : consumer(consumer),
|
| + did_observe_user_gesture(false) {
|
| + }
|
| +
|
| + friend bool operator<(const ConsumerInfo& a, const ConsumerInfo& b) {
|
| + return a.consumer < b.consumer;
|
| + }
|
| +
|
| + GamepadConsumer* consumer;
|
| + bool did_observe_user_gesture;
|
| + };
|
| +
|
| + typedef std::set<ConsumerInfo, std::less<ConsumerInfo> > ConsumerSet;
|
| + ConsumerSet consumers_;
|
| +
|
| scoped_ptr<GamepadProvider> provider_;
|
|
|
| base::ThreadChecker thread_checker_;
|
|
|