#pragma once

/* USB mouse driver */
int  usb_mouse_get_event(int *buttons, int *dx, int *dy, int *wheel);
void usb_mouse_init(void);

/* PS/2 mouse driver */
void ps2_mouse_init(void);
int  ps2_mouse_poll(int *buttons, int *dx, int *dy, int *wheel);

/* Software cursor */
void mouse_cursor_init(void);
void mouse_cursor_update(int dx, int dy);
void mouse_cursor_render(void);

/* High-level mouse poll + click/wheel tracking */
void mouse_poll(void);
int  mouse_get_click(int *x, int *y, int *btn);
int  mouse_get_wheel(void);
