+ StopPollingIfNecessary();
+}
+
+bool GamepadSharedMemoryReader::OnControlMessageReceived(
+ const IPC::Message& message) {
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(GamepadSharedMemoryReader, message)
+ IPC_MESSAGE_HANDLER(GamepadMsg_GamepadConnected, OnGamepadConnected)
+ IPC_MESSAGE_HANDLER(GamepadMsg_GamepadDisconnected, OnGamepadDisconnected)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
+}
+
+void GamepadSharedMemoryReader::OnGamepadConnected(
+ int index,
+ const blink::WebGamepad& gamepad) {
+ if (gamepad_listener_)
+ gamepad_listener_->didConnectGamepad(index, gamepad);
+}
+
+void GamepadSharedMemoryReader::OnGamepadDisconnected(
+ int index,
+ const blink::WebGamepad& gamepad) {
+ if (gamepad_listener_)
+ gamepad_listener_->didDisconnectGamepad(index, gamepad);