| Index: content/browser/gamepad/gamepad_platform_data_fetcher_win.h
|
| diff --git a/content/browser/gamepad/gamepad_platform_data_fetcher_win.h b/content/browser/gamepad/gamepad_platform_data_fetcher_win.h
|
| index ffb7106d6c28569e6f0bc9dcd17c9ff9c267081a..28082a9d529b7ce6b50935ccfc708458f55809d0 100644
|
| --- a/content/browser/gamepad/gamepad_platform_data_fetcher_win.h
|
| +++ b/content/browser/gamepad/gamepad_platform_data_fetcher_win.h
|
| @@ -18,9 +18,13 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/compiler_specific.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "base/message_loop/message_loop.h"
|
| #include "base/scoped_native_library.h"
|
| #include "content/browser/gamepad/gamepad_data_fetcher.h"
|
| #include "content/browser/gamepad/gamepad_standard_mappings.h"
|
| +#include "content/browser/gamepad/raw_input_data_fetcher_win.h"
|
| #include "third_party/WebKit/public/platform/WebGamepads.h"
|
|
|
| namespace content {
|
| @@ -31,6 +35,8 @@ class GamepadPlatformDataFetcherWin : public GamepadDataFetcher {
|
| virtual ~GamepadPlatformDataFetcherWin();
|
| virtual void GetGamepadData(blink::WebGamepads* pads,
|
| bool devices_changed_hint) OVERRIDE;
|
| + virtual void PauseHint(bool paused) OVERRIDE;
|
| +
|
| private:
|
| // XInput-specific implementation for GetGamepadData.
|
| bool GetXInputGamepadData(blink::WebGamepads* pads,
|
| @@ -54,9 +60,11 @@ class GamepadPlatformDataFetcherWin : public GamepadDataFetcher {
|
| bool GetXInputPadConnectivity(int i, blink::WebGamepad* pad) const;
|
|
|
| void GetXInputPadData(int i, blink::WebGamepad* pad);
|
| + void GetRawInputPadData(int i, blink::WebGamepad* pad);
|
|
|
| int FirstAvailableGamepadId() const;
|
| bool HasXInputGamepad(int index) const;
|
| + bool HasRawInputGamepad(const HANDLE handle) const;
|
|
|
| base::ScopedNativeLibrary xinput_dll_;
|
| bool xinput_available_;
|
| @@ -69,16 +77,21 @@ class GamepadPlatformDataFetcherWin : public GamepadDataFetcher {
|
|
|
| enum PadConnectionStatus {
|
| DISCONNECTED,
|
| - XINPUT_CONNECTED
|
| + XINPUT_CONNECTED,
|
| + RAWINPUT_CONNECTED
|
| };
|
|
|
| struct PadState {
|
| PadConnectionStatus status;
|
| - int xinput_index; // XInput-only.
|
| GamepadStandardMappingFunction mapper;
|
| +
|
| + int xinput_index; // XInput-only
|
| + HANDLE raw_input_handle; // RawInput-only fields.
|
| };
|
| PadState pad_state_[blink::WebGamepads::itemsLengthCap];
|
|
|
| + scoped_ptr<RawInputDataFetcher> raw_input_fetcher_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(GamepadPlatformDataFetcherWin);
|
| };
|
|
|
|
|