OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ | 5 #ifndef DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ |
6 #define DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ | 6 #define DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 24 matching lines...) Expand all Loading... |
35 virtual void OnGamepadConnectionChange(bool connected, | 35 virtual void OnGamepadConnectionChange(bool connected, |
36 int index, | 36 int index, |
37 const blink::WebGamepad& pad) = 0; | 37 const blink::WebGamepad& pad) = 0; |
38 }; | 38 }; |
39 | 39 |
40 class DEVICE_GAMEPAD_EXPORT GamepadProvider | 40 class DEVICE_GAMEPAD_EXPORT GamepadProvider |
41 : public GamepadPadStateProvider, | 41 : public GamepadPadStateProvider, |
42 public base::SystemMonitor::DevicesChangedObserver { | 42 public base::SystemMonitor::DevicesChangedObserver { |
43 public: | 43 public: |
44 explicit GamepadProvider( | 44 explicit GamepadProvider( |
45 std::unique_ptr<GamepadSharedBuffer> buffer, | |
46 GamepadConnectionChangeClient* connection_change_client); | 45 GamepadConnectionChangeClient* connection_change_client); |
47 | 46 |
48 // Manually specifies the data fetcher. Used for testing. | 47 // Manually specifies the data fetcher. Used for testing. |
49 explicit GamepadProvider( | 48 explicit GamepadProvider( |
50 std::unique_ptr<GamepadSharedBuffer> buffer, | |
51 GamepadConnectionChangeClient* connection_change_client, | 49 GamepadConnectionChangeClient* connection_change_client, |
52 std::unique_ptr<GamepadDataFetcher> fetcher); | 50 std::unique_ptr<GamepadDataFetcher> fetcher); |
53 | 51 |
54 ~GamepadProvider() override; | 52 ~GamepadProvider() override; |
55 | 53 |
56 // Returns the shared memory handle of the gamepad data duplicated into the | 54 // Returns the shared memory handle of the gamepad data duplicated into the |
57 // given process. | 55 // given process. |
58 base::SharedMemoryHandle GetSharedMemoryHandleForProcess( | 56 base::SharedMemoryHandle GetSharedMemoryHandleForProcess( |
59 base::ProcessHandle renderer_process); | 57 base::ProcessHandle renderer_process); |
60 | 58 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 144 |
147 bool ever_had_user_gesture_; | 145 bool ever_had_user_gesture_; |
148 bool sanitize_; | 146 bool sanitize_; |
149 | 147 |
150 // Only used on the polling thread. | 148 // Only used on the polling thread. |
151 typedef std::vector<std::unique_ptr<GamepadDataFetcher>> GamepadFetcherVector; | 149 typedef std::vector<std::unique_ptr<GamepadDataFetcher>> GamepadFetcherVector; |
152 GamepadFetcherVector data_fetchers_; | 150 GamepadFetcherVector data_fetchers_; |
153 | 151 |
154 base::Lock shared_memory_lock_; | 152 base::Lock shared_memory_lock_; |
155 std::unique_ptr<GamepadSharedBuffer> gamepad_shared_buffer_; | 153 std::unique_ptr<GamepadSharedBuffer> gamepad_shared_buffer_; |
| 154 base::SharedMemory* gamepad_shared_memory; |
156 | 155 |
157 // Polling is done on this background thread. | 156 // Polling is done on this background thread. |
158 std::unique_ptr<base::Thread> polling_thread_; | 157 std::unique_ptr<base::Thread> polling_thread_; |
159 | 158 |
160 GamepadConnectionChangeClient* connection_change_client_; | 159 GamepadConnectionChangeClient* connection_change_client_; |
161 | 160 |
162 DISALLOW_COPY_AND_ASSIGN(GamepadProvider); | 161 DISALLOW_COPY_AND_ASSIGN(GamepadProvider); |
163 }; | 162 }; |
164 | 163 |
165 } // namespace device | 164 } // namespace device |
166 | 165 |
167 #endif // DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ | 166 #endif // DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ |
OLD | NEW |