Chromium Code Reviews| Index: device/gamepad/gamepad_provider.h |
| diff --git a/content/browser/gamepad/gamepad_provider.h b/device/gamepad/gamepad_provider.h |
| similarity index 79% |
| rename from content/browser/gamepad/gamepad_provider.h |
| rename to device/gamepad/gamepad_provider.h |
| index 916138986aa57bec04e4ef94199cf4d00199dff5..b7dccf74677d6c67badd8c48788dacd532037f8d 100644 |
| --- a/content/browser/gamepad/gamepad_provider.h |
| +++ b/device/gamepad/gamepad_provider.h |
| @@ -2,8 +2,8 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef CONTENT_BROWSER_GAMEPAD_GAMEPAD_PROVIDER_H_ |
| -#define CONTENT_BROWSER_GAMEPAD_GAMEPAD_PROVIDER_H_ |
| +#ifndef DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ |
| +#define DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ |
| #include <memory> |
| #include <utility> |
| @@ -16,7 +16,8 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "base/synchronization/lock.h" |
| #include "base/system_monitor/system_monitor.h" |
| -#include "content/common/content_export.h" |
| +#include "device/gamepad/gamepad_export.h" |
| +#include "device/gamepad/gamepad_shared_buffer.h" |
| #include "third_party/WebKit/public/platform/WebGamepads.h" |
| namespace base { |
| @@ -24,18 +25,29 @@ class SingleThreadTaskRunner; |
| class Thread; |
| } |
| -namespace content { |
| +namespace device { |
| class GamepadDataFetcher; |
| -struct GamepadHardwareBuffer; |
| -class CONTENT_EXPORT GamepadProvider : |
| - public base::SystemMonitor::DevicesChangedObserver { |
| +class DEVICE_GAMEPAD_EXPORT GamepadConnectionChangeClient { |
| public: |
| - GamepadProvider(); |
| + virtual void OnGamepadConnectionChange(bool connected, |
| + int index, |
| + const blink::WebGamepad& pad) = 0; |
| +}; |
| + |
| +class DEVICE_GAMEPAD_EXPORT GamepadProvider |
| + : public base::SystemMonitor::DevicesChangedObserver { |
| + public: |
| + explicit GamepadProvider( |
| + std::unique_ptr<GamepadSharedBuffer> buffer, |
| + GamepadConnectionChangeClient* connection_change_client); |
| // Manually specifies the data fetcher. Used for testing. |
| - explicit GamepadProvider(std::unique_ptr<GamepadDataFetcher> fetcher); |
| + explicit GamepadProvider( |
| + std::unique_ptr<GamepadSharedBuffer> buffer, |
| + GamepadConnectionChangeClient* connection_change_client, |
| + std::unique_ptr<GamepadDataFetcher> fetcher); |
| ~GamepadProvider() override; |
| @@ -76,11 +88,11 @@ class CONTENT_EXPORT GamepadProvider : |
| void OnGamepadConnectionChange(bool connected, |
| int index, |
| const blink::WebGamepad& pad); |
| - void DispatchGamepadConnectionChange(bool connected, |
| + /*void DispatchGamepadConnectionChange(bool connected, |
| int index, |
| - const blink::WebGamepad& pad); |
| + const blink::WebGamepad& pad);*/ |
| - GamepadHardwareBuffer* SharedMemoryAsHardwareBuffer(); |
| + // GamepadHardwareBuffer* SharedMemoryAsHardwareBuffer(); |
| // Checks the gamepad state to see if the user has interacted with it. |
| void CheckForUserGesture(); |
| @@ -127,9 +139,7 @@ class CONTENT_EXPORT GamepadProvider : |
| class PadState { |
| public: |
| - PadState() { |
| - SetDisconnected(); |
| - } |
| + PadState() { SetDisconnected(); } |
| bool Match(const blink::WebGamepad& pad) const; |
| void SetPad(const blink::WebGamepad& pad); |
| @@ -153,16 +163,19 @@ class CONTENT_EXPORT GamepadProvider : |
| std::unique_ptr<GamepadDataFetcher> data_fetcher_; |
| base::Lock shared_memory_lock_; |
| - base::SharedMemory gamepad_shared_memory_; |
| + // base::SharedMemory gamepad_shared_memory_; |
|
scottmg
2016/06/23 17:27:19
?
|
| + std::unique_ptr<GamepadSharedBuffer> gamepad_shared_buffer_; |
| // Polling is done on this background thread. |
| std::unique_ptr<base::Thread> polling_thread_; |
| + GamepadConnectionChangeClient* connection_change_client_; |
| + |
| static GamepadProvider* instance_; |
| DISALLOW_COPY_AND_ASSIGN(GamepadProvider); |
| }; |
| -} // namespace content |
| +} // namespace device |
| -#endif // CONTENT_BROWSER_GAMEPAD_GAMEPAD_PROVIDER_H_ |
| +#endif // DEVICE_GAMEPAD_GAMEPAD_PROVIDER_H_ |