123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*
- usbkvm_fw.h
- Author: tobychui
- */
- #ifndef _usbkvm_
- #define _usbkvm_
- /* Hardware Configurations */
- #define MIN_KEY_EVENTS_DELAY 20 //ms
- #define LED_RW_SIG 16
- #define USB_SW_SEL 32
- /* Operation Types */
- #define OPR_TYPE_RESERVED 0x00 // Reserved
- #define OPR_TYPE_KEYBOARD_WRITE 0x01 // Keyboard-related operation
- #define OPR_TYPE_MOUSE_WRITE 0x02 // Mouse-related operation
- #define OPR_TYPE_MOUSE_MOVE 0x03 // Mouse-move operation (Notes: When opr_type is OPR_TYPE_MOUSE_MOVE, opr_subtype is the X position value)
- #define OPR_TYPE_MOUSE_SCROLL 0x04 //Mouse scroll (Notes: when opr_type is OPR_TYPE_MOUSE_SCROLL, opr_subtype is up/down and payload is scroll tilt valie (max 127))
- #define OPR_TYPE_SWITCH_WRITE 0x05 // Switch/button operation
- #define OPR_TYPE_LED_WRITE 0x06 // LED control operation
- #define OPR_TYPE_RESET_INSTR_COUNT 0xFE // Reset instruction counter
- #define OPR_TYPE_DATA_RESET 0xFF //Reset opr data queue, if state of device is unknown, clear before use
- /* Operation Sub-types */
- #define SUBTYPE_RESERVED 0x00
- /* Keyboard Subtypes */
- #define SUBTYPE_KEYBOARD_ASCII_WRITE 0x01 // Write ASCII characters (32-127)
- #define SUBTYPE_KEYBOARD_ASCII_PRESS 0x02 // Press a key (ASCII 32-127)
- #define SUBTYPE_KEYBOARD_ASCII_RELEASE 0x03 // Release a key (ASCII 32-127)
- #define SUBTYPE_KEYBOARD_MODIFIER_SET 0x04 // Modifier key write (bit flags)
- #define SUBTYPE_KEYBOARD_MODIFIER_CLEAR 0x05 // Modifier key press (bit flags)
- #define SUBTYPE_KEYBOARD_FUNCTKEY_WRITE 0x06 //Function key write
- #define SUBTYPE_KEYBOARD_OTHERKEY_PRESS 0x07 //Other keys press
- #define SUBTYPE_KEYBOARD_OTHERKEY_RELEASE 0x08 //Other keys release
- #define SUBTYPE_KEYBOARD_SPECIAL_CTRLALTDEL 0xFD //Ctrl + Alt + Del
- #define SUBTYPE_KEYBOARD_SPECIAL_RESET 0xFE //Reset all keypress state
- #define SUBTYPE_KEYBOARD_SPECIAL_RESERVED 0xFF //Reserved
- /* Mouse Subtypes */
- #define SUBTYPE_MOUSE_CLICK 0x01 //Mouse button click
- #define SUBTYPE_MOUSE_PRESS 0x02 //Mouse button press
- #define SUBTYPE_MOUSE_RELEASE 0x03 //Mouse button release
- #define SUBTYPE_MOUSE_SETPOS 0x04 //Mouse presets position
- #define SUBTYPE_MOUSE_RESET 0x05 //Reset all mouse button states
- /* Mouse Buttons ID */
- #define PAYLOAD_MOUSE_BTN_LEFT 0x01
- #define PAYLOAD_MOUSE_BTN_RIGHT 0x02
- #define PAYLOAD_MOUSE_BTN_MID 0x03
- /* Response Codes */
- #define resp_ok 0x00
- #define resp_unknown_opr 0x01
- #define resp_invalid_opr_type 0x02
- #define resp_invalid_key_value 0x03
- #define resp_not_implemented 0x04
- /* Debug */
- #define resp_start_of_info_msg 0xED
- #define resp_end_of_msg 0xEF
- #endif
|