diff options
Diffstat (limited to 'chromium/content/renderer/gamepad_shared_memory_reader.h')
-rw-r--r-- | chromium/content/renderer/gamepad_shared_memory_reader.h | 29 |
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_; }; |