def handleMouseMove(self, pdu: PlayerMouseMovePDU): eventHeader = FastPathInputType.FASTPATH_INPUT_EVENT_MOUSE << 5 flags = PointerFlag.PTRFLAGS_MOVE x = pdu.x y = pdu.y event = FastPathMouseEvent(eventHeader, flags, x, y) self.sendInputEvents([event])
def handleMouseWheel(self, pdu: PlayerMouseWheelPDU): eventHeader = FastPathInputType.FASTPATH_INPUT_EVENT_MOUSE << 5 flags = PointerFlag.PTRFLAGS_WHEEL x = pdu.x y = pdu.y if pdu.delta < 0: flags |= PointerFlag.PTRFLAGS_WHEEL_NEGATIVE if pdu.horizontal: flags |= PointerFlag.PTRFLAGS_HWHEEL flags |= abs(pdu.delta) & PointerFlag.WheelRotationMask event = FastPathMouseEvent(eventHeader, flags, x, y) self.sendInputEvents([event])
def handleMouseButton(self, pdu: PlayerMouseButtonPDU): mapping = { MouseButton.LEFT_BUTTON: PointerFlag.PTRFLAGS_BUTTON1, MouseButton.RIGHT_BUTTON: PointerFlag.PTRFLAGS_BUTTON2, MouseButton.MIDDLE_BUTTON: PointerFlag.PTRFLAGS_BUTTON3, } if pdu.button not in mapping: return eventHeader = FastPathInputType.FASTPATH_INPUT_EVENT_MOUSE << 5 flags = mapping[pdu.button] | (PointerFlag.PTRFLAGS_DOWN if pdu.pressed else 0) x = pdu.x y = pdu.y event = FastPathMouseEvent(eventHeader, flags, x, y) self.sendInputEvents([event])
def parseMouseEvent(self, eventHeader: int, stream: BytesIO) -> FastPathMouseEvent: pointerFlags = Uint16LE.unpack(stream) mouseX = Uint16LE.unpack(stream) mouseY = Uint16LE.unpack(stream) return FastPathMouseEvent(eventHeader, pointerFlags, mouseX, mouseY)
def parseMouseEvent(self, data, eventHeader): pointerFlags = Uint16LE.unpack(data[1:3]) mouseX = Uint16LE.unpack(data[3:5]) mouseY = Uint16LE.unpack(data[5:7]) return FastPathMouseEvent(eventHeader, pointerFlags, mouseX, mouseY)