| Index: device/gamepad/raw_input_data_fetcher_win.h
|
| diff --git a/device/gamepad/raw_input_data_fetcher_win.h b/device/gamepad/raw_input_data_fetcher_win.h
|
| index 891a29648f512d2d10c5a3433b16a7007f3b2f75..79e5fb5987a1cbf569ec3686717e3cf392b8a5a1 100644
|
| --- a/device/gamepad/raw_input_data_fetcher_win.h
|
| +++ b/device/gamepad/raw_input_data_fetcher_win.h
|
| @@ -39,6 +39,8 @@ struct RawGamepadInfo {
|
| RawGamepadInfo();
|
| ~RawGamepadInfo();
|
|
|
| + int source_id;
|
| + int enumeration_id;
|
| HANDLE handle;
|
| std::unique_ptr<uint8_t[]> ppd_buffer;
|
| PHIDP_PREPARSED_DATA preparsed_data;
|
| @@ -56,23 +58,31 @@ struct RawGamepadInfo {
|
| RawGamepadAxis axes[blink::WebGamepad::axesLengthCap];
|
| };
|
|
|
| -class RawInputDataFetcher : public base::SupportsWeakPtr<RawInputDataFetcher>,
|
| +class RawInputDataFetcher : public GamepadDataFetcher,
|
| + public base::SupportsWeakPtr<RawInputDataFetcher>,
|
| public base::MessageLoop::DestructionObserver {
|
| public:
|
| + typedef GamepadDataFetcherFactoryImpl<RawInputDataFetcher,
|
| + GAMEPAD_SOURCE_WIN_RAW>
|
| + Factory;
|
| +
|
| explicit RawInputDataFetcher();
|
| ~RawInputDataFetcher() override;
|
|
|
| + GamepadSource source() override;
|
| +
|
| // DestructionObserver overrides.
|
| void WillDestroyCurrentMessageLoop() override;
|
|
|
| - bool Available() { return rawinput_available_; }
|
| - void StartMonitor();
|
| - void StopMonitor();
|
| -
|
| - std::vector<RawGamepadInfo*> EnumerateDevices();
|
| - RawGamepadInfo* GetGamepadInfo(HANDLE handle);
|
| + void GetGamepadData(bool devices_changed_hint) override;
|
| + void PauseHint(bool paused) override;
|
|
|
| private:
|
| + void OnAddedToProvider() override;
|
| +
|
| + void StartMonitor();
|
| + void StopMonitor();
|
| + void EnumerateDevices();
|
| RawGamepadInfo* ParseGamepadInfo(HANDLE hDevice);
|
| void UpdateGamepad(RAWINPUT* input, RawGamepadInfo* gamepad_info);
|
| // Handles WM_INPUT messages.
|
| @@ -138,8 +148,11 @@ class RawInputDataFetcher : public base::SupportsWeakPtr<RawInputDataFetcher>,
|
| bool rawinput_available_;
|
| bool filter_xinput_;
|
| bool events_monitored_;
|
| + int last_source_id_;
|
| + int last_enumeration_id_;
|
|
|
| - std::map<HANDLE, RawGamepadInfo*> controllers_;
|
| + typedef std::map<HANDLE, RawGamepadInfo*> ControllerMap;
|
| + ControllerMap controllers_;
|
|
|
| // Function pointers to HID functionality, retrieved in
|
| // |GetHidDllFunctions|.
|
|
|