mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 17:20:30 +08:00
refactoring
This commit is contained in:
parent
2bf9761d70
commit
21e4cf86c8
@ -93,16 +93,16 @@ static void _initOutputs() {
|
|||||||
outputs = 0;
|
outputs = 0;
|
||||||
|
|
||||||
# if defined(HID_WITH_USB) && defined(HID_SET_USB_KBD)
|
# if defined(HID_WITH_USB) && defined(HID_SET_USB_KBD)
|
||||||
outputs |= PROTO::OUTPUTS::KEYBOARD::USB;
|
outputs |= PROTO::OUTPUTS1::KEYBOARD::USB;
|
||||||
# elif defined(HID_WITH_PS2) && defined(HID_SET_PS2_KBD)
|
# elif defined(HID_WITH_PS2) && defined(HID_SET_PS2_KBD)
|
||||||
outputs |= PROTO::OUTPUTS::KEYBOARD::PS2;
|
outputs |= PROTO::OUTPUTS1::KEYBOARD::PS2;
|
||||||
# endif
|
# endif
|
||||||
# if defined(HID_WITH_USB) && defined(HID_SET_USB_MOUSE_ABS)
|
# if defined(HID_WITH_USB) && defined(HID_SET_USB_MOUSE_ABS)
|
||||||
outputs |= PROTO::OUTPUTS::MOUSE::USB_ABS;
|
outputs |= PROTO::OUTPUTS1::MOUSE::USB_ABS;
|
||||||
# elif defined(HID_WITH_USB) && defined(HID_SET_USB_MOUSE_REL)
|
# elif defined(HID_WITH_USB) && defined(HID_SET_USB_MOUSE_REL)
|
||||||
outputs |= PROTO::OUTPUTS::MOUSE::USB_REL;
|
outputs |= PROTO::OUTPUTS1::MOUSE::USB_REL;
|
||||||
# elif defined(HID_WITH_PS2) && defined(HID_SET_PS2_MOUSE)
|
# elif defined(HID_WITH_PS2) && defined(HID_SET_PS2_MOUSE)
|
||||||
outputs |= PROTO::OUTPUTS::MOUSE::PS2;
|
outputs |= PROTO::OUTPUTS1::MOUSE::PS2;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef HID_DYNAMIC
|
# ifdef HID_DYNAMIC
|
||||||
@ -110,21 +110,21 @@ static void _initOutputs() {
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
uint8_t kbd = outputs & PROTO::OUTPUTS::KEYBOARD::MASK;
|
uint8_t kbd = outputs & PROTO::OUTPUTS1::KEYBOARD::MASK;
|
||||||
switch (kbd) {
|
switch (kbd) {
|
||||||
# ifdef HID_WITH_USB
|
# ifdef HID_WITH_USB
|
||||||
case PROTO::OUTPUTS::KEYBOARD::USB: _usb_kbd = new UsbKeyboard(); break;
|
case PROTO::OUTPUTS1::KEYBOARD::USB: _usb_kbd = new UsbKeyboard(); break;
|
||||||
# endif
|
# endif
|
||||||
# ifdef HID_WITH_PS2
|
# ifdef HID_WITH_PS2
|
||||||
case PROTO::OUTPUTS::KEYBOARD::PS2: _ps2_kbd = new Ps2Keyboard(); break;
|
case PROTO::OUTPUTS1::KEYBOARD::PS2: _ps2_kbd = new Ps2Keyboard(); break;
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t mouse = outputs & PROTO::OUTPUTS::MOUSE::MASK;
|
uint8_t mouse = outputs & PROTO::OUTPUTS1::MOUSE::MASK;
|
||||||
switch (mouse) {
|
switch (mouse) {
|
||||||
# ifdef HID_WITH_USB
|
# ifdef HID_WITH_USB
|
||||||
case PROTO::OUTPUTS::MOUSE::USB_ABS: _usb_mouse_abs = new UsbMouseAbsolute(); break;
|
case PROTO::OUTPUTS1::MOUSE::USB_ABS: _usb_mouse_abs = new UsbMouseAbsolute(); break;
|
||||||
case PROTO::OUTPUTS::MOUSE::USB_REL: _usb_mouse_rel = new UsbMouseRelative(); break;
|
case PROTO::OUTPUTS1::MOUSE::USB_REL: _usb_mouse_rel = new UsbMouseRelative(); break;
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,17 +132,17 @@ static void _initOutputs() {
|
|||||||
|
|
||||||
switch (kbd) {
|
switch (kbd) {
|
||||||
# ifdef HID_WITH_USB
|
# ifdef HID_WITH_USB
|
||||||
case PROTO::OUTPUTS::KEYBOARD::USB: _usb_kbd->begin(); break;
|
case PROTO::OUTPUTS1::KEYBOARD::USB: _usb_kbd->begin(); break;
|
||||||
# endif
|
# endif
|
||||||
# ifdef HID_WITH_PS2
|
# ifdef HID_WITH_PS2
|
||||||
case PROTO::OUTPUTS::KEYBOARD::PS2: _ps2_kbd->begin(); break;
|
case PROTO::OUTPUTS1::KEYBOARD::PS2: _ps2_kbd->begin(); break;
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (mouse) {
|
switch (mouse) {
|
||||||
# ifdef HID_WITH_USB
|
# ifdef HID_WITH_USB
|
||||||
case PROTO::OUTPUTS::MOUSE::USB_ABS: _usb_mouse_abs->begin(); break;
|
case PROTO::OUTPUTS1::MOUSE::USB_ABS: _usb_mouse_abs->begin(); break;
|
||||||
case PROTO::OUTPUTS::MOUSE::USB_REL: _usb_mouse_rel->begin(); break;
|
case PROTO::OUTPUTS1::MOUSE::USB_REL: _usb_mouse_rel->begin(); break;
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -151,19 +151,19 @@ static void _initOutputs() {
|
|||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
static void _cmdSetKeyboard(const uint8_t *data) { // 1 bytes
|
static void _cmdSetKeyboard(const uint8_t *data) { // 1 bytes
|
||||||
# ifdef HID_DYNAMIC
|
# ifdef HID_DYNAMIC
|
||||||
_writeOutputs(PROTO::OUTPUTS::KEYBOARD::MASK, data[0], false);
|
_writeOutputs(PROTO::OUTPUTS1::KEYBOARD::MASK, data[0], false);
|
||||||
_reset_required = true;
|
_reset_required = true;
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _cmdSetMouse(const uint8_t *data) { // 1 bytes
|
static void _cmdSetMouse(const uint8_t *data) { // 1 bytes
|
||||||
# ifdef HID_DYNAMIC
|
# ifdef HID_DYNAMIC
|
||||||
_writeOutputs(PROTO::OUTPUTS::MOUSE::MASK, data[0], false);
|
_writeOutputs(PROTO::OUTPUTS1::MOUSE::MASK, data[0], false);
|
||||||
_reset_required = true;
|
_reset_required = true;
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _cmdSetUsbConnected(const uint8_t *data) { // 1 byte
|
static void _cmdSetConnected(const uint8_t *data) { // 1 byte
|
||||||
# if defined(AUM) && defined(HID_WITH_USB)
|
# if defined(AUM) && defined(HID_WITH_USB)
|
||||||
digitalWriteFast(AUM_SET_USB_CONNECTED_PIN, (bool)data[0]);
|
digitalWriteFast(AUM_SET_USB_CONNECTED_PIN, (bool)data[0]);
|
||||||
# endif
|
# endif
|
||||||
@ -241,7 +241,7 @@ static uint8_t _handleRequest(const uint8_t *data) { // 8 bytes
|
|||||||
case PROTO::CMD::PING: return PROTO::PONG::OK;
|
case PROTO::CMD::PING: return PROTO::PONG::OK;
|
||||||
case PROTO::CMD::SET_KEYBOARD: HANDLE(_cmdSetKeyboard);
|
case PROTO::CMD::SET_KEYBOARD: HANDLE(_cmdSetKeyboard);
|
||||||
case PROTO::CMD::SET_MOUSE: HANDLE(_cmdSetMouse);
|
case PROTO::CMD::SET_MOUSE: HANDLE(_cmdSetMouse);
|
||||||
case PROTO::CMD::SET_USB_CONNECTED: HANDLE(_cmdSetUsbConnected);
|
case PROTO::CMD::SET_CONNECTED: HANDLE(_cmdSetConnected);
|
||||||
case PROTO::CMD::CLEAR_HID: HANDLE(_cmdClearHid);
|
case PROTO::CMD::CLEAR_HID: HANDLE(_cmdClearHid);
|
||||||
case PROTO::CMD::KEYBOARD::KEY: HANDLE(_cmdKeyEvent);
|
case PROTO::CMD::KEYBOARD::KEY: HANDLE(_cmdKeyEvent);
|
||||||
case PROTO::CMD::MOUSE::BUTTON: HANDLE(_cmdMouseButtonEvent);
|
case PROTO::CMD::MOUSE::BUTTON: HANDLE(_cmdMouseButtonEvent);
|
||||||
@ -274,35 +274,35 @@ static void _sendResponse(uint8_t code) {
|
|||||||
if (_reset_required) {
|
if (_reset_required) {
|
||||||
response[1] |= PROTO::PONG::RESET_REQUIRED;
|
response[1] |= PROTO::PONG::RESET_REQUIRED;
|
||||||
}
|
}
|
||||||
response[2] = PROTO::OUTPUTS::DYNAMIC;
|
response[2] = PROTO::OUTPUTS1::DYNAMIC;
|
||||||
# endif
|
# endif
|
||||||
if (_usb_kbd) {
|
if (_usb_kbd) {
|
||||||
response[1] |= _usb_kbd->getOfflineAs(PROTO::PONG::KEYBOARD_OFFLINE);
|
response[1] |= _usb_kbd->getOfflineAs(PROTO::PONG::KEYBOARD_OFFLINE);
|
||||||
response[1] |= _usb_kbd->getLedsAs(PROTO::PONG::CAPS, PROTO::PONG::SCROLL, PROTO::PONG::NUM);
|
response[1] |= _usb_kbd->getLedsAs(PROTO::PONG::CAPS, PROTO::PONG::SCROLL, PROTO::PONG::NUM);
|
||||||
response[2] |= PROTO::OUTPUTS::KEYBOARD::USB;
|
response[2] |= PROTO::OUTPUTS1::KEYBOARD::USB;
|
||||||
} else if (_ps2_kbd) {
|
} else if (_ps2_kbd) {
|
||||||
response[1] |= _ps2_kbd->getOfflineAs(PROTO::PONG::KEYBOARD_OFFLINE);
|
response[1] |= _ps2_kbd->getOfflineAs(PROTO::PONG::KEYBOARD_OFFLINE);
|
||||||
response[1] |= _ps2_kbd->getLedsAs(PROTO::PONG::CAPS, PROTO::PONG::SCROLL, PROTO::PONG::NUM);
|
response[1] |= _ps2_kbd->getLedsAs(PROTO::PONG::CAPS, PROTO::PONG::SCROLL, PROTO::PONG::NUM);
|
||||||
response[2] |= PROTO::OUTPUTS::KEYBOARD::PS2;
|
response[2] |= PROTO::OUTPUTS1::KEYBOARD::PS2;
|
||||||
}
|
}
|
||||||
if (_usb_mouse_abs) {
|
if (_usb_mouse_abs) {
|
||||||
response[1] |= _usb_mouse_abs->getOfflineAs(PROTO::PONG::MOUSE_OFFLINE);
|
response[1] |= _usb_mouse_abs->getOfflineAs(PROTO::PONG::MOUSE_OFFLINE);
|
||||||
response[2] |= PROTO::OUTPUTS::MOUSE::USB_ABS;
|
response[2] |= PROTO::OUTPUTS1::MOUSE::USB_ABS;
|
||||||
} else if (_usb_mouse_rel) {
|
} else if (_usb_mouse_rel) {
|
||||||
response[1] |= _usb_mouse_rel->getOfflineAs(PROTO::PONG::MOUSE_OFFLINE);
|
response[1] |= _usb_mouse_rel->getOfflineAs(PROTO::PONG::MOUSE_OFFLINE);
|
||||||
response[2] |= PROTO::OUTPUTS::MOUSE::USB_REL;
|
response[2] |= PROTO::OUTPUTS1::MOUSE::USB_REL;
|
||||||
} // TODO: ps2
|
} // TODO: ps2
|
||||||
# if defined(AUM) && defined(HID_WITH_USB)
|
# if defined(AUM) && defined(HID_WITH_USB)
|
||||||
response[3] |= PROTO::PARAMS::USB_CONNECTABLE;
|
response[3] |= PROTO::OUTPUTS2::CONNECTABLE;
|
||||||
if (digitalReadFast(AUM_SET_USB_CONNECTED_PIN)) {
|
if (digitalReadFast(AUM_SET_USB_CONNECTED_PIN)) {
|
||||||
response[3] |= PROTO::PARAMS::USB_CONNECTED;
|
response[3] |= PROTO::OUTPUTS2::CONNECTED;
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
# ifdef HID_WITH_USB
|
# ifdef HID_WITH_USB
|
||||||
response[3] |= PROTO::PARAMS::HAS_USB;
|
response[3] |= PROTO::OUTPUTS2::HAS_USB;
|
||||||
# endif
|
# endif
|
||||||
# ifdef HID_WITH_PS2
|
# ifdef HID_WITH_PS2
|
||||||
response[3] |= PROTO::PARAMS::HAS_PS2;
|
response[3] |= PROTO::OUTPUTS2::HAS_PS2;
|
||||||
# endif
|
# endif
|
||||||
} else {
|
} else {
|
||||||
response[1] = code;
|
response[1] = code;
|
||||||
|
|||||||
@ -45,7 +45,7 @@ namespace PROTO {
|
|||||||
const uint8_t RESET_REQUIRED = 0b01000000;
|
const uint8_t RESET_REQUIRED = 0b01000000;
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace OUTPUTS { // Complex request/responce flags
|
namespace OUTPUTS1 { // Complex request/responce flags
|
||||||
const uint8_t DYNAMIC = 0b10000000;
|
const uint8_t DYNAMIC = 0b10000000;
|
||||||
namespace KEYBOARD {
|
namespace KEYBOARD {
|
||||||
const uint8_t MASK = 0b00000111;
|
const uint8_t MASK = 0b00000111;
|
||||||
@ -60,20 +60,20 @@ namespace PROTO {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace PARAMS {
|
namespace OUTPUTS2 { // Complex response
|
||||||
const uint8_t HAS_USB = 0b00000001;
|
const uint8_t CONNECTABLE = 0b10000000;
|
||||||
const uint8_t HAS_PS2 = 0b00000010;
|
const uint8_t CONNECTED = 0b01000000;
|
||||||
const uint8_t USB_CONNECTABLE = 0b10000000;
|
const uint8_t HAS_USB = 0b00000001;
|
||||||
const uint8_t USB_CONNECTED = 0b01000000;
|
const uint8_t HAS_PS2 = 0b00000010;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace CMD {
|
namespace CMD {
|
||||||
const uint8_t PING = 0x01;
|
const uint8_t PING = 0x01;
|
||||||
const uint8_t REPEAT = 0x02;
|
const uint8_t REPEAT = 0x02;
|
||||||
const uint8_t SET_KEYBOARD = 0x03;
|
const uint8_t SET_KEYBOARD = 0x03;
|
||||||
const uint8_t SET_MOUSE = 0x04;
|
const uint8_t SET_MOUSE = 0x04;
|
||||||
const uint8_t SET_USB_CONNECTED = 0x05;
|
const uint8_t SET_CONNECTED = 0x05;
|
||||||
const uint8_t CLEAR_HID = 0x10;
|
const uint8_t CLEAR_HID = 0x10;
|
||||||
|
|
||||||
namespace KEYBOARD {
|
namespace KEYBOARD {
|
||||||
const uint8_t KEY = 0x11;
|
const uint8_t KEY = 0x11;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user