Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Unified Diff: content/browser/gamepad/gamepad_service.h

Issue 200873002: Gamepad API: add support for connection events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/gamepad/gamepad_provider.cc ('k') | content/browser/gamepad/gamepad_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
« no previous file with comments | « content/browser/gamepad/gamepad_provider.cc ('k') | content/browser/gamepad/gamepad_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698