summaryrefslogtreecommitdiffstats
path: root/chromium/content/renderer/gamepad_shared_memory_reader.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/gamepad_shared_memory_reader.h')
-rw-r--r--chromium/content/renderer/gamepad_shared_memory_reader.h29
1 files changed, 26 insertions, 3 deletions
diff --git a/chromium/content/renderer/gamepad_shared_memory_reader.h b/chromium/content/renderer/gamepad_shared_memory_reader.h
index 08dc41a8c91..eb63867612c 100644
--- a/chromium/content/renderer/gamepad_shared_memory_reader.h
+++ b/chromium/content/renderer/gamepad_shared_memory_reader.h
@@ -7,23 +7,46 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/shared_memory.h"
+#include "content/common/gamepad_messages.h"
+#include "content/public/renderer/render_process_observer.h"
+#include "content/public/renderer/renderer_gamepad_provider.h"
#include "third_party/WebKit/public/platform/WebGamepads.h"
namespace content {
struct GamepadHardwareBuffer;
+class RendererWebKitPlatformSupportImpl;
-class GamepadSharedMemoryReader {
+class GamepadSharedMemoryReader
+ : public RenderProcessObserver,
+ public RendererGamepadProvider {
public:
- GamepadSharedMemoryReader();
+ GamepadSharedMemoryReader(
+ RendererWebKitPlatformSupportImpl* webkit_platform_support);
virtual ~GamepadSharedMemoryReader();
- void SampleGamepads(blink::WebGamepads&);
+
+ // RendererGamepadProvider implementation.
+ virtual void SampleGamepads(
+ blink::WebGamepads& gamepads) OVERRIDE;
+ virtual void SetGamepadListener(
+ blink::WebGamepadListener* listener) OVERRIDE;
+
+ // RenderProcessObserver implementation.
+ virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE;
private:
+ void OnGamepadConnected(int index, const blink::WebGamepad& gamepad);
+ void OnGamepadDisconnected(int index, const blink::WebGamepad& gamepad);
+
+ void StartPollingIfNecessary();
+ void StopPollingIfNecessary();
+
base::SharedMemoryHandle renderer_shared_memory_handle_;
scoped_ptr<base::SharedMemory> renderer_shared_memory_;
GamepadHardwareBuffer* gamepad_hardware_buffer_;
+ blink::WebGamepadListener* gamepad_listener_;
+ bool is_polling_;
bool ever_interacted_with_;
};