logitechprotocol.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 49 行

JAVA
49
字号
/*
 * $Id: LogitechProtocol.java,v 1.2 2003/12/20 15:00:00 epr Exp $
 */
package org.jnode.driver.input;

public class LogitechProtocol implements MouseProtocolHandler {

	static final int BIT_LEFT = 0x01; 
	static final int BIT_RIGHT = 0x02; 
	static final int BIT_MIDDLE = 0x04; 
	static final int BIT_BUTTON_MASK = BIT_LEFT | BIT_RIGHT | BIT_MIDDLE; 
	static final int BIT_X_SIGN = 0x10; 
	static final int BIT_Y_SIGN = 0x20; 
	
	public boolean supportsId(int id) {
		return id == 0;
	}

	public String getName() {
		return "Logitech Mouse";
	}

	public int getPacketSize() {
		return 3;
	}

	public PointerEvent buildEvent(byte[] data) {
		final int d0 = data[0] & 0xFF;
		final int d1 = data[1] & 0xFF;
		final int d2 = data[2] & 0xFF;
		
		final int buttons = d0 & BIT_BUTTON_MASK; 
		final int x;
		final int y;
		if ((d0 & BIT_X_SIGN) != 0) {
			x = d1 - 256;
		} else {
			x = d1;
		}
		if ((d0 & BIT_Y_SIGN) != 0) {
			y = d2 - 256;
		} else {
			y = d2;
		}
		
		return new PointerEvent(buttons, x, -y, PointerEvent.RELATIVE);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?