core: Mouse buttons state integration #101
This allows users to use mousekey buttons with PS/2, ADB or Serial pointing device.
This commit is contained in:
parent
b981b8e266
commit
5f7d388dee
12 changed files with 86 additions and 0 deletions
|
|
@ -22,6 +22,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "util.h"
|
||||
#include "debug.h"
|
||||
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
# include "mousekey.h"
|
||||
#endif
|
||||
#ifdef PS2_MOUSE_ENABLE
|
||||
# include "ps2_mouse.h"
|
||||
#endif
|
||||
#ifdef SERIAL_MOUSE_ENABLE
|
||||
# include "serial_mouse.h"
|
||||
#endif
|
||||
#ifdef ADB_MOUSE_ENABLE
|
||||
# include "adb.h"
|
||||
#endif
|
||||
#ifdef IBMPC_MOUSE_ENABLE
|
||||
uint8_t ibmpc_mouse_buttons(void);
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(NKRO_ENABLE) || defined(NKRO_6KRO_ENABLE)
|
||||
bool keyboard_nkro = true;
|
||||
|
|
@ -70,7 +86,26 @@ void host_mouse_send(report_mouse_t *report)
|
|||
report->boot_x = (report->x > 127) ? 127 : ((report->x < -127) ? -127 : report->x);
|
||||
report->boot_y = (report->y > 127) ? 127 : ((report->y < -127) ? -127 : report->y);
|
||||
#endif
|
||||
|
||||
/* Mouse buttons integration */
|
||||
uint8_t b = report->buttons;
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
report->buttons |= mousekey_buttons();
|
||||
#endif
|
||||
#ifdef PS2_MOUSE_ENABLE
|
||||
report->buttons |= ps2_mouse_buttons();
|
||||
#endif
|
||||
#ifdef SERIAL_MOUSE_ENABLE
|
||||
report->buttons |= serial_mouse_buttons();
|
||||
#endif
|
||||
#ifdef ADB_MOUSE_ENABLE
|
||||
report->buttons |= adb_mouse_buttons();
|
||||
#endif
|
||||
#ifdef IBMPC_MOUSE_ENABLE
|
||||
report->buttons |= ibmpc_mouse_buttons();
|
||||
#endif
|
||||
(*driver->send_mouse)(report);
|
||||
report->buttons = b;
|
||||
}
|
||||
|
||||
void host_system_send(uint16_t report)
|
||||
|
|
|
|||
|
|
@ -182,6 +182,11 @@ void mousekey_clear(void)
|
|||
mousekey_accel = 0;
|
||||
}
|
||||
|
||||
uint8_t mousekey_buttons(void)
|
||||
{
|
||||
return mouse_report.buttons;
|
||||
}
|
||||
|
||||
static void mousekey_debug(void)
|
||||
{
|
||||
if (!debug_mouse) return;
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ void mousekey_on(uint8_t code);
|
|||
void mousekey_off(uint8_t code);
|
||||
void mousekey_clear(void);
|
||||
void mousekey_send(void);
|
||||
uint8_t mousekey_buttons(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue