diff options
author | tomaszduda23 <[email protected]> | 2022-07-10 02:57:03 +0900 |
---|---|---|
committer | GitHub <[email protected]> | 2022-07-09 20:57:03 +0300 |
commit | 793edf8203ec7ea5aba934558ea26054628a5618 (patch) | |
tree | c9238136a8fa52d75d52c20bbb3860188729e9aa /hid/src | |
parent | c840ea73068f855e1ebbf738f8ae9e62dde05286 (diff) |
add structures for drivers (#94)
Diffstat (limited to 'hid/src')
-rw-r--r-- | hid/src/main.cpp | 12 | ||||
-rw-r--r-- | hid/src/usb/hid.h | 14 |
2 files changed, 14 insertions, 12 deletions
diff --git a/hid/src/main.cpp b/hid/src/main.cpp index a512b65b..ce2d8da9 100644 --- a/hid/src/main.cpp +++ b/hid/src/main.cpp @@ -125,7 +125,11 @@ static void _initOutputs() { switch (mouse) { # ifdef HID_WITH_USB case PROTO::OUTPUTS1::MOUSE::USB_ABS: - case PROTO::OUTPUTS1::MOUSE::USB_WIN98: _usb_mouse_abs = new UsbMouseAbsolute(); break; + _usb_mouse_abs = new UsbMouseAbsolute(DRIVERS::USB_MOUSE_ABSOLUTE); + break; + case PROTO::OUTPUTS1::MOUSE::USB_WIN98: + _usb_mouse_abs = new UsbMouseAbsolute(DRIVERS::USB_MOUSE_ABSOLUTE_WIN98); + break; case PROTO::OUTPUTS1::MOUSE::USB_REL: _usb_mouse_rel = new UsbMouseRelative(); break; # endif } @@ -147,7 +151,7 @@ static void _initOutputs() { # ifdef HID_WITH_USB_WIN98 case PROTO::OUTPUTS1::MOUSE::USB_WIN98: # endif - _usb_mouse_abs->begin(mouse == PROTO::OUTPUTS1::MOUSE::USB_WIN98); + _usb_mouse_abs->begin(); break; case PROTO::OUTPUTS1::MOUSE::USB_REL: _usb_mouse_rel->begin(); break; # endif @@ -299,8 +303,8 @@ static void _sendResponse(uint8_t code) { response[2] |= PROTO::OUTPUTS1::KEYBOARD::PS2; } if (_usb_mouse_abs) { - response[1] |= (_usb_mouse_abs->isOffline() ? PROTO::PONG::MOUSE_OFFLINE : 0); - if (_usb_mouse_abs->isWin98FixEnabled()) { + response[1] |= _usb_mouse_abs->isOffline() ? PROTO::PONG::MOUSE_OFFLINE : 0; + if (_usb_mouse_abs->getType() == DRIVERS::USB_MOUSE_ABSOLUTE_WIN98) { response[2] |= PROTO::OUTPUTS1::MOUSE::USB_WIN98; } else { response[2] |= PROTO::OUTPUTS1::MOUSE::USB_ABS; diff --git a/hid/src/usb/hid.h b/hid/src/usb/hid.h index cd58a1f8..6e5d7279 100644 --- a/hid/src/usb/hid.h +++ b/hid/src/usb/hid.h @@ -26,12 +26,14 @@ #include <HID-Project.h> #include "keyboard.h" +#include "mouse.h" #include "../tools.h" #ifdef AUM # include "../aum.h" #endif #include "keymap.h" +using namespace DRIVERS; // ----------------------------------------------------------------------------- #ifdef HID_USB_CHECK_ENDPOINT @@ -147,17 +149,13 @@ class UsbKeyboard { if (down_select) _sendButton(MOUSE_NEXT, down_state); \ } -class UsbMouseAbsolute { +class UsbMouseAbsolute : public DRIVERS::Mouse { public: - UsbMouseAbsolute() {} + UsbMouseAbsolute(DRIVERS::type _type) : Mouse(_type) {} - void begin(bool win98_fix) { + void begin() { _mouse.begin(); - _mouse.setWin98FixEnabled(win98_fix); - } - - bool isWin98FixEnabled() { - return _mouse.isWin98FixEnabled(); + _mouse.setWin98FixEnabled(getType() == DRIVERS::USB_MOUSE_ABSOLUTE_WIN98); } void clear() { |