void s_mouserel(uSynergyCookie cookie, int16_t x, int16_t y)
{
    if(0 == usb_request(REQ_MOUSE_REL, x, y)) {
        lastMouseMoveWasRelative = 1;
        if (debugLevel) fprintf(stderr, "mouse, rel.move x=%d y=%d\n", x, y);
    }
}
Exemplo n.º 2
0
void s_keyboard(uSynergyCookie cookie, uint16_t key, uint16_t modifiers, uSynergyBool down,
                uSynergyBool repeat)
{
    int result;
    result = usb_request(REQ_KEYBOARD, key, down);
    printf("keyboard, key=%2x down=%d repeat=%d - %d\n", key, down, repeat, result);

}
void usb_send_amiga_key(uint8_t amigaKey, uint8_t keyUp) {
    static int count = 0;
    const uint8_t amigaKeyUpMask = 0x80;
    
    if(0 == usb_request(REQ_KEYBOARD, amigaKey | (keyUp ? amigaKeyUpMask : 0x00) , 0)) {
        if (debugLevel) fprintf(stderr, "send_amiga_key, amigaKey=0x%02x keyUp=%d count=%d\n", amigaKey, keyUp, count++);
    }
}
void mouseAbsResetToNearestCorner(uint16_t x, uint16_t y) {
    int mouseMoveToReset_x = x < (amigaMouseResWidth / 2) ? -amigaMouseResWidth : amigaMouseResWidth;
    int mouseMoveToReset_y = y < (amigaMouseResHeight / 2) ? -amigaMouseResHeight : amigaMouseResHeight;
        
    if(0 == usb_request(REQ_MOUSE_REL, mouseMoveToReset_x, mouseMoveToReset_y)) {
        mouse_x = mouseMoveToReset_x < 0 ? 0 : amigaMouseResWidth - 1;
        mouse_y = mouseMoveToReset_y < 0 ? 0 : amigaMouseResHeight - 1;
        if (debugLevel) fprintf(stderr, "mouse, abs.reset to x=%d y=%d\n", mouse_x, mouse_y);
    }
}
void mouseAbsMove(uint16_t x, uint16_t y) {
    const int16_t diff_x = x - mouse_x;
    const int16_t diff_y = y - mouse_y;

    if(0 == usb_request(REQ_MOUSE_REL, diff_x, diff_y)) {
        mouse_x = x;
        mouse_y = y;
        if (debugLevel > 1) fprintf(stderr, "mouse, abs.move to x=%d y=%d\n", x, y);
    }
}
Exemplo n.º 6
0
void s_mouse(uSynergyCookie cookie, uint16_t x, uint16_t y, int16_t wheelX,
             int16_t wheelY, uSynergyBool buttonLeft, uSynergyBool buttonRight,
             uSynergyBool buttonMiddle)
{
    static uint8_t old_mstate = 0;
    uint8_t mstate =
        (buttonLeft ? 1 : 0) | (buttonRight ? 2 : 0) | (buttonMiddle ? 4 : 0);
    int result;

    if (mstate != old_mstate) {
        result = usb_request(REQ_MOUSE_BTN, mstate, 0);
        printf("mouse, button=%d,%d,%d - %d\n", buttonLeft,
               buttonMiddle, buttonRight, result);
        old_mstate = mstate;
    }
}
Exemplo n.º 7
0
static size_t example_read(struct file_desc *desc, void *buf, size_t size) {
	struct usb_dev_desc *ddesc = desc->file_info;
	size_t actual_size;
	int ret;

	if (size > 4) {
		actual_size = 4;
	} else {
		actual_size = size;
	}

	ret = usb_request(ddesc, 1, USB_TOKEN_IN, buf, actual_size);
	if (ret < 0) {
		return ret;
	}

	return actual_size;
}
void s_mouse(uSynergyCookie cookie, uint16_t x, uint16_t y, int16_t wheelX,
             int16_t wheelY, uSynergyBool buttonLeft, uSynergyBool buttonRight,
             uSynergyBool buttonMiddle)
{
    static uint8_t old_mstate = 0;
    uint8_t mstate =
        (buttonLeft ? 1 : 0) | (buttonRight ? 2 : 0) | (buttonMiddle ? 4 : 0);

    if(mouseAbsHasMoved(x, y)) {
        if(lastMouseMoveWasRelative) {
            mouseAbsResetToNearestCorner(x, y);
            lastMouseMoveWasRelative = 0;
        }
        mouseAbsMove(x, y);
    }

    if (mstate != old_mstate) {
        if(0 == usb_request(REQ_MOUSE_BTN, mstate, 0)) {
            old_mstate = mstate;
            lastMouseMoveWasRelative = 0;
            if (debugLevel > 1) fprintf(stderr, "mouse, button=%d,%d,%d\n", buttonLeft, buttonMiddle, buttonRight);
        }
    }
}
Exemplo n.º 9
0
void s_mouserel(uSynergyCookie cookie, int16_t x, int16_t y)
{
    int result;
    result = usb_request(REQ_MOUSE_REL, x, y);
    printf("mouse, rel=%d, %d - %d\n", x, y, result);
}