| Index: device/gamepad/gamepad_platform_data_fetcher_mac.h
|
| diff --git a/device/gamepad/gamepad_platform_data_fetcher_mac.h b/device/gamepad/gamepad_platform_data_fetcher_mac.h
|
| index 36377f761ad0ce4c61590805dc2e8c76788466a4..7b126ac9adfa24120cea2a5fd007778c3c57d49a 100644
|
| --- a/device/gamepad/gamepad_platform_data_fetcher_mac.h
|
| +++ b/device/gamepad/gamepad_platform_data_fetcher_mac.h
|
| @@ -16,7 +16,6 @@
|
| #include "base/macros.h"
|
| #include "build/build_config.h"
|
| #include "device/gamepad/gamepad_data_fetcher.h"
|
| -#include "device/gamepad/xbox_data_fetcher_mac.h"
|
|
|
| #if defined(__OBJC__)
|
| @class NSArray;
|
| @@ -26,13 +25,18 @@ class NSArray;
|
|
|
| namespace device {
|
|
|
| -class GamepadPlatformDataFetcherMac : public GamepadDataFetcher,
|
| - public XboxDataFetcher::Delegate {
|
| +class GamepadPlatformDataFetcherMac : public GamepadDataFetcher {
|
| public:
|
| + typedef GamepadDataFetcherFactoryImpl<GamepadPlatformDataFetcherMac,
|
| + GAMEPAD_SOURCE_MAC_HID>
|
| + Factory;
|
| +
|
| GamepadPlatformDataFetcherMac();
|
| ~GamepadPlatformDataFetcherMac() override;
|
| - void GetGamepadData(blink::WebGamepads* pads,
|
| - bool devices_changed_hint) override;
|
| +
|
| + GamepadSource source() override;
|
| +
|
| + void GetGamepadData(bool devices_changed_hint) override;
|
| void PauseHint(bool paused) override;
|
|
|
| private:
|
| @@ -54,46 +58,30 @@ class GamepadPlatformDataFetcherMac : public GamepadDataFetcher,
|
| void* sender,
|
| IOHIDValueRef ref);
|
|
|
| + void OnAddedToProvider() override;
|
| +
|
| size_t GetEmptySlot();
|
| size_t GetSlotForDevice(IOHIDDeviceRef device);
|
| - size_t GetSlotForXboxDevice(XboxController* device);
|
|
|
| void DeviceAdd(IOHIDDeviceRef device);
|
| bool CheckCollection(IOHIDElementRef element);
|
| - bool AddButtonsAndAxes(NSArray* elements, size_t slot);
|
| + bool AddButtonsAndAxes(NSArray* elements, PadState* state, size_t slot);
|
| void DeviceRemove(IOHIDDeviceRef device);
|
| void ValueChanged(IOHIDValueRef value);
|
|
|
| - void XboxDeviceAdd(XboxController* device) override;
|
| - void XboxDeviceRemove(XboxController* device) override;
|
| - void XboxValueChanged(XboxController* device,
|
| - const XboxController::Data& data) override;
|
| -
|
| void RegisterForNotifications();
|
| void UnregisterFromNotifications();
|
|
|
| - void SanitizeGamepadData(size_t index, blink::WebGamepad* pad);
|
| -
|
| - std::unique_ptr<XboxDataFetcher> xbox_fetcher_;
|
| -
|
| // Side-band data that's not passed to the consumer, but we need to maintain
|
| // to update data_.
|
| struct AssociatedData {
|
| - bool is_xbox;
|
| - union {
|
| - struct {
|
| - IOHIDDeviceRef device_ref;
|
| - IOHIDElementRef button_elements[blink::WebGamepad::buttonsLengthCap];
|
| - IOHIDElementRef axis_elements[blink::WebGamepad::axesLengthCap];
|
| - CFIndex axis_minimums[blink::WebGamepad::axesLengthCap];
|
| - CFIndex axis_maximums[blink::WebGamepad::axesLengthCap];
|
| - CFIndex axis_report_sizes[blink::WebGamepad::axesLengthCap];
|
| - } hid;
|
| - struct {
|
| - XboxController* device;
|
| - UInt32 location_id;
|
| - } xbox;
|
| - };
|
| + int location_id;
|
| + IOHIDDeviceRef device_ref;
|
| + IOHIDElementRef button_elements[blink::WebGamepad::buttonsLengthCap];
|
| + IOHIDElementRef axis_elements[blink::WebGamepad::axesLengthCap];
|
| + CFIndex axis_minimums[blink::WebGamepad::axesLengthCap];
|
| + CFIndex axis_maximums[blink::WebGamepad::axesLengthCap];
|
| + CFIndex axis_report_sizes[blink::WebGamepad::axesLengthCap];
|
| };
|
| AssociatedData associated_[blink::WebGamepads::itemsLengthCap];
|
|
|
|
|