Index: Source/modules/gamepad/GamepadDispatcher.h |
diff --git a/Source/modules/gamepad/GamepadDispatcher.h b/Source/modules/gamepad/GamepadDispatcher.h |
index 8ee91a024cfac4afce91f4d445dd4b2ad14a5f71..f86eeefd09af68043209670dc807c816988be9b6 100644 |
--- a/Source/modules/gamepad/GamepadDispatcher.h |
+++ b/Source/modules/gamepad/GamepadDispatcher.h |
@@ -5,11 +5,12 @@ |
#ifndef GamepadDispatcher_h |
#define GamepadDispatcher_h |
-#include "core/frame/DeviceSensorEventDispatcher.h" |
+#include "core/frame/DeviceEventDispatcherBase.h" |
+#include "platform/heap/Handle.h" |
+#include "public/platform/WebGamepad.h" |
#include "public/platform/WebGamepadListener.h" |
namespace blink { |
-class WebGamepad; |
class WebGamepads; |
} |
@@ -17,24 +18,34 @@ namespace WebCore { |
class NavigatorGamepad; |
-class GamepadDispatcher : public DeviceSensorEventDispatcher, public blink::WebGamepadListener { |
+class GamepadDispatcher : public DeviceEventDispatcherBase, public blink::WebGamepadListener { |
public: |
static GamepadDispatcher& instance(); |
- void addClient(NavigatorGamepad*); |
- void removeClient(NavigatorGamepad*); |
void sampleGamepads(blink::WebGamepads&); |
+ struct ConnectionChange { |
+ blink::WebGamepad pad; |
+ unsigned index; |
+ }; |
+ |
+ const ConnectionChange& latestConnectionChange() const { return m_latestChange; } |
+ |
private: |
GamepadDispatcher(); |
virtual ~GamepadDispatcher(); |
+ // WebGamepadListener |
virtual void didConnectGamepad(unsigned index, const blink::WebGamepad&) OVERRIDE; |
virtual void didDisconnectGamepad(unsigned index, const blink::WebGamepad&) OVERRIDE; |
- void dispatchDidConnectOrDisconnectGamepad(unsigned index, const blink::WebGamepad&, bool connected); |
+ // DeviceEventDispatcherBase |
virtual void startListening() OVERRIDE; |
virtual void stopListening() OVERRIDE; |
+ |
+ void dispatchDidConnectOrDisconnectGamepad(unsigned index, const blink::WebGamepad&, bool connected); |
+ |
+ ConnectionChange m_latestChange; |
}; |
} // namespace WebCore |