X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcontent%2Fbrowser%2Fgamepad%2Fgamepad_platform_data_fetcher_win.h;h=28082a9d529b7ce6b50935ccfc708458f55809d0;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=c894143b076316f6d5ce32cb17b7a1eef1f759d2;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/content/browser/gamepad/gamepad_platform_data_fetcher_win.h b/src/content/browser/gamepad/gamepad_platform_data_fetcher_win.h index c894143..28082a9 100644 --- a/src/content/browser/gamepad/gamepad_platform_data_fetcher_win.h +++ b/src/content/browser/gamepad/gamepad_platform_data_fetcher_win.h @@ -10,8 +10,6 @@ #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif -#define DIRECTINPUT_VERSION 0x0800 -#include #include #include #include @@ -20,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 { @@ -33,12 +35,12 @@ 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, bool devices_changed_hint); - bool GetDirectInputGamepadData(blink::WebGamepads* pads, - bool devices_changed_hint); // The three function types we use from xinput1_3.dll. typedef void (WINAPI *XInputEnableFunc)(BOOL enable); @@ -58,15 +60,14 @@ class GamepadPlatformDataFetcherWin : public GamepadDataFetcher { bool GetXInputPadConnectivity(int i, blink::WebGamepad* pad) const; void GetXInputPadData(int i, blink::WebGamepad* pad); - void GetDirectInputPadData(int i, blink::WebGamepad* pad); + void GetRawInputPadData(int i, blink::WebGamepad* pad); int FirstAvailableGamepadId() const; bool HasXInputGamepad(int index) const; - bool HasDirectInputGamepad(const GUID &guid) const; + bool HasRawInputGamepad(const HANDLE handle) const; base::ScopedNativeLibrary xinput_dll_; bool xinput_available_; - bool directinput_available_; // Function pointers to XInput functionality, retrieved in // |GetXinputDllFunctions|. @@ -74,24 +75,23 @@ class GamepadPlatformDataFetcherWin : public GamepadDataFetcher { XInputGetCapabilitiesFunc xinput_get_capabilities_; XInputGetStateFunc xinput_get_state_; - IDirectInput8* directinput_interface_; - enum PadConnectionStatus { DISCONNECTED, XINPUT_CONNECTED, - DIRECTINPUT_CONNECTED + RAWINPUT_CONNECTED }; struct PadState { PadConnectionStatus status; - int xinput_index; // XInput-only. - // Fields below are for DirectInput devices only. - GUID guid; - IDirectInputDevice8* directinput_gamepad; GamepadStandardMappingFunction mapper; + + int xinput_index; // XInput-only + HANDLE raw_input_handle; // RawInput-only fields. }; PadState pad_state_[blink::WebGamepads::itemsLengthCap]; + scoped_ptr raw_input_fetcher_; + DISALLOW_COPY_AND_ASSIGN(GamepadPlatformDataFetcherWin); };