[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 | // Use of this source code is governed by a BSD-style license that can be | ||||
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | 0a8d4275e | 2013-01-04 22:21:26 | [diff] [blame] | 5 | #ifndef CONTENT_RENDERER_GAMEPAD_SHARED_MEMORY_READER_H_ |
6 | #define CONTENT_RENDERER_GAMEPAD_SHARED_MEMORY_READER_H_ | ||||
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 7 | |
dcheng | cedca561 | 2016-04-09 01:40:15 | [diff] [blame] | 8 | #include <memory> |
9 | |||||
avi | 1023d01 | 2015-12-25 02:39:14 | [diff] [blame] | 10 | #include "base/macros.h" |
[email protected] | 8bac37b | 2013-07-18 19:13:56 | [diff] [blame] | 11 | #include "base/memory/shared_memory.h" |
[email protected] | 0ff73656 | 2014-05-09 09:09:47 | [diff] [blame] | 12 | #include "content/common/gamepad_messages.h" |
[email protected] | 078780b | 2014-06-20 16:57:06 | [diff] [blame] | 13 | #include "content/public/renderer/renderer_gamepad_provider.h" |
[email protected] | 5c30b5e0 | 2013-05-30 03:46:08 | [diff] [blame] | 14 | #include "third_party/WebKit/public/platform/WebGamepads.h" |
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 15 | |
16 | namespace content { | ||||
17 | |||||
18 | struct GamepadHardwareBuffer; | ||||
19 | |||||
[email protected] | 9c41b46 | 2014-08-19 15:51:34 | [diff] [blame] | 20 | class GamepadSharedMemoryReader : public RendererGamepadProvider { |
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 21 | public: |
[email protected] | 9c41b46 | 2014-08-19 15:51:34 | [diff] [blame] | 22 | explicit GamepadSharedMemoryReader(RenderThread* thread); |
dcheng | 6d18e40 | 2014-10-21 12:32:52 | [diff] [blame] | 23 | ~GamepadSharedMemoryReader() override; |
[email protected] | 0ff73656 | 2014-05-09 09:09:47 | [diff] [blame] | 24 | |
[email protected] | 078780b | 2014-06-20 16:57:06 | [diff] [blame] | 25 | // RendererGamepadProvider implementation. |
dcheng | 6d18e40 | 2014-10-21 12:32:52 | [diff] [blame] | 26 | void SampleGamepads(blink::WebGamepads& gamepads) override; |
27 | bool OnControlMessageReceived(const IPC::Message& message) override; | ||||
28 | void Start(blink::WebPlatformEventListener* listener) override; | ||||
[email protected] | 9c41b46 | 2014-08-19 15:51:34 | [diff] [blame] | 29 | |
30 | protected: | ||||
31 | // PlatformEventObserver protected methods. | ||||
dcheng | 6d18e40 | 2014-10-21 12:32:52 | [diff] [blame] | 32 | void SendStartMessage() override; |
33 | void SendStopMessage() override; | ||||
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 34 | |
35 | private: | ||||
[email protected] | 0ff73656 | 2014-05-09 09:09:47 | [diff] [blame] | 36 | void OnGamepadConnected(int index, const blink::WebGamepad& gamepad); |
37 | void OnGamepadDisconnected(int index, const blink::WebGamepad& gamepad); | ||||
38 | |||||
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 39 | base::SharedMemoryHandle renderer_shared_memory_handle_; |
dcheng | cedca561 | 2016-04-09 01:40:15 | [diff] [blame] | 40 | std::unique_ptr<base::SharedMemory> renderer_shared_memory_; |
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 41 | GamepadHardwareBuffer* gamepad_hardware_buffer_; |
42 | |||||
[email protected] | 00c0d04 | 2012-09-10 07:06:39 | [diff] [blame] | 43 | bool ever_interacted_with_; |
[email protected] | 9c41b46 | 2014-08-19 15:51:34 | [diff] [blame] | 44 | |
45 | DISALLOW_COPY_AND_ASSIGN(GamepadSharedMemoryReader); | ||||
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 46 | }; |
47 | |||||
[email protected] | 93df81e | 2012-08-10 22:22:46 | [diff] [blame] | 48 | } // namespace content |
[email protected] | 4324e61 | 2011-12-01 00:01:38 | [diff] [blame] | 49 | |
[email protected] | 0a8d4275e | 2013-01-04 22:21:26 | [diff] [blame] | 50 | #endif // CONTENT_RENDERER_GAMEPAD_SHARED_MEMORY_READER_H_ |