|
@@ -28,13 +28,18 @@ void flush_cmd_resp();
|
|
|
|
|
|
//keyboard_emu.ino
|
|
//keyboard_emu.ino
|
|
void keyboard_get_info();
|
|
void keyboard_get_info();
|
|
-void keyboard_reset();
|
|
|
|
|
|
+void keyboard_reset();
|
|
void handle_keyboard_get_info_reply();
|
|
void handle_keyboard_get_info_reply();
|
|
int keyboard_press_key(uint8_t keycode);
|
|
int keyboard_press_key(uint8_t keycode);
|
|
int keyboard_release_key(uint8_t keycode);
|
|
int keyboard_release_key(uint8_t keycode);
|
|
int keyboard_press_modkey(uint8_t opcode);
|
|
int keyboard_press_modkey(uint8_t opcode);
|
|
int keyboard_release_modkey(uint8_t opcode);
|
|
int keyboard_release_modkey(uint8_t opcode);
|
|
|
|
|
|
|
|
+//mouse_emu.ino
|
|
|
|
+int mouse_button_press(uint8_t opcode);
|
|
|
|
+int mouse_button_release(uint8_t opcode);
|
|
|
|
+int mouse_scroll_up(uint8_t tilt);
|
|
|
|
+int mouse_scroll_down(uint8_t tilt);
|
|
|
|
|
|
// Set the USB descriptor exposed to the slave device
|
|
// Set the USB descriptor exposed to the slave device
|
|
void setup_keyboard_chip_cfg() {
|
|
void setup_keyboard_chip_cfg() {
|
|
@@ -62,30 +67,56 @@ void handle_cmd_processing(uint8_t cmd) {
|
|
}
|
|
}
|
|
|
|
|
|
//This function will handle the incoming cmd from RemdesKVM control software
|
|
//This function will handle the incoming cmd from RemdesKVM control software
|
|
|
|
+//return 0x00 if success and 0x01 if error
|
|
void handle_ctrl_cmd() {
|
|
void handle_ctrl_cmd() {
|
|
uint8_t cmd = cmdBuf[1]; //Type of operation
|
|
uint8_t cmd = cmdBuf[1]; //Type of operation
|
|
uint8_t value = cmdBuf[2]; //values for 2 bytes cmd
|
|
uint8_t value = cmdBuf[2]; //values for 2 bytes cmd
|
|
|
|
+ int ret = 0;
|
|
switch (cmd) {
|
|
switch (cmd) {
|
|
case 0x01:
|
|
case 0x01:
|
|
//keyboard press
|
|
//keyboard press
|
|
- keyboard_press_key(value);
|
|
|
|
|
|
+ ret = keyboard_press_key(value);
|
|
break;
|
|
break;
|
|
case 0x02:
|
|
case 0x02:
|
|
//keyboard release
|
|
//keyboard release
|
|
- keyboard_release_key(value);
|
|
|
|
|
|
+ ret = keyboard_release_key(value);
|
|
break;
|
|
break;
|
|
case 0x03:
|
|
case 0x03:
|
|
//keyboard modifier key press
|
|
//keyboard modifier key press
|
|
- keyboard_press_modkey(value);
|
|
|
|
|
|
+ ret = keyboard_press_modkey(value);
|
|
break;
|
|
break;
|
|
case 0x04:
|
|
case 0x04:
|
|
//keyboard modifier key release
|
|
//keyboard modifier key release
|
|
- keyboard_release_modkey(value);
|
|
|
|
|
|
+ ret = keyboard_release_modkey(value);
|
|
|
|
+ break;
|
|
|
|
+ case 0x05:
|
|
|
|
+ //mouse button press
|
|
|
|
+ ret = mouse_button_press(value);
|
|
|
|
+ break;
|
|
|
|
+ case 0x06:
|
|
|
|
+ //mouse button release
|
|
|
|
+ ret = mouse_button_release(value);
|
|
|
|
+ break;
|
|
|
|
+ case 0x07:
|
|
|
|
+ //Mouse scroll up
|
|
|
|
+ ret = mouse_scroll_up(value);
|
|
|
|
+ break;
|
|
|
|
+ case 0x08:
|
|
|
|
+ //Mouse scroll down
|
|
|
|
+ ret = mouse_scroll_down(value);
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
//unknown operation, do nothing
|
|
//unknown operation, do nothing
|
|
|
|
+ ret = -1;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (ret < 0){
|
|
|
|
+ //Error
|
|
|
|
+ USBSerial_print(0x01);
|
|
|
|
+ }else{
|
|
|
|
+ USBSerial_print(0x00);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void setup() {
|
|
void setup() {
|