package andraus.bluetoothhidemu.sock.payload; /** * * @author andraus * */ public class HidPointerPayload extends HidPayload { private static final int SIZE = 6; private static final int REPORT_ID_POINTER = 0x02; public static final int MAX_POINTER_MOVE = 0x7f; public static final int MOUSE_BUTTON_NONE = 0x00; public static final int MOUSE_BUTTON_1 = 0x01; // bit 0 public static final int MOUSE_BUTTON_2 = 0x02; // bit 1 /** * */ public HidPointerPayload() { super(SIZE); mPayload[0] = (byte)0xa1; mPayload[1] = (byte)REPORT_ID_POINTER; // report_id (mouse) mPayload[2] = (byte)0x00; // button mPayload[3] = (byte)0x00; // x mPayload[4] = (byte)0x00; // y mPayload[5] = (byte)0x00; // wheel } /** * * @param x * @param y */ public void movePointer(int x, int y) { setByte(3, x); setByte(4, y); } /** * */ public void resetBytes() { setByte(2, MOUSE_BUTTON_NONE); movePointer(0x00, 0x00); } /** * */ public void clickButton(int button) { // enable bit setByte(2, mPayload[2] | button); } /** * */ public void releaseButton(int button) { // disable bit setByte(2, mPayload[2] ^ button); } }