mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
Fix up mouse acceleration
This commit is contained in:
@@ -22,10 +22,9 @@ typedef struct {
|
||||
bool left_mouse_held;
|
||||
bool right_mouse_pressed;
|
||||
bool connected;
|
||||
uint32_t button_press_repeat_count;
|
||||
uint8_t acceleration;
|
||||
HidTransport transport;
|
||||
} HidMouseModel;
|
||||
static uint32_t button_press_repeat_count;
|
||||
|
||||
static void hid_mouse_draw_callback(Canvas* canvas, void* context) {
|
||||
furi_assert(context);
|
||||
@@ -121,11 +120,10 @@ static void hid_mouse_process(HidMouse* hid_mouse, InputEvent* event) {
|
||||
hid_mouse->view,
|
||||
HidMouseModel * model,
|
||||
{
|
||||
button_press_repeat_count =
|
||||
(event->type == InputTypePress) ? 2 :
|
||||
(event->type == InputTypeRelease) ? 0 :
|
||||
(button_press_repeat_count > 10) ? 10 :
|
||||
++button_press_repeat_count;
|
||||
model->acceleration = (event->type == InputTypePress) ? 1 :
|
||||
(event->type == InputTypeRelease) ? 0 :
|
||||
(model->acceleration >= 20) ? 20 :
|
||||
model->acceleration + 1;
|
||||
|
||||
if(event->key == InputKeyBack) {
|
||||
if(event->type == InputTypeShort) {
|
||||
@@ -158,7 +156,7 @@ static void hid_mouse_process(HidMouse* hid_mouse, InputEvent* event) {
|
||||
model->right_pressed = true;
|
||||
hid_hal_mouse_move(hid_mouse->hid, MOUSE_MOVE_SHORT, 0);
|
||||
} else if(event->type == InputTypeRepeat) {
|
||||
for(int32_t i = model->button_press_repeat_count; i > 1; i = i - 2)
|
||||
for(uint8_t i = model->acceleration; i > 1; i -= 2)
|
||||
hid_hal_mouse_move(hid_mouse->hid, MOUSE_MOVE_LONG, 0);
|
||||
} else if(event->type == InputTypeRelease) {
|
||||
model->right_pressed = false;
|
||||
@@ -168,7 +166,7 @@ static void hid_mouse_process(HidMouse* hid_mouse, InputEvent* event) {
|
||||
model->left_pressed = true;
|
||||
hid_hal_mouse_move(hid_mouse->hid, -MOUSE_MOVE_SHORT, 0);
|
||||
} else if(event->type == InputTypeRepeat) {
|
||||
for(int32_t i = model->button_press_repeat_count; i > 1; i = i - 2)
|
||||
for(uint8_t i = model->acceleration; i > 1; i -= 2)
|
||||
hid_hal_mouse_move(hid_mouse->hid, -MOUSE_MOVE_LONG, 0);
|
||||
} else if(event->type == InputTypeRelease) {
|
||||
model->left_pressed = false;
|
||||
@@ -178,7 +176,7 @@ static void hid_mouse_process(HidMouse* hid_mouse, InputEvent* event) {
|
||||
model->down_pressed = true;
|
||||
hid_hal_mouse_move(hid_mouse->hid, 0, MOUSE_MOVE_SHORT);
|
||||
} else if(event->type == InputTypeRepeat) {
|
||||
for(int32_t i = model->button_press_repeat_count; i > 1; i = i - 2)
|
||||
for(uint8_t i = model->acceleration; i > 1; i -= 2)
|
||||
hid_hal_mouse_move(hid_mouse->hid, 0, MOUSE_MOVE_LONG);
|
||||
|
||||
} else if(event->type == InputTypeRelease) {
|
||||
@@ -189,7 +187,7 @@ static void hid_mouse_process(HidMouse* hid_mouse, InputEvent* event) {
|
||||
model->up_pressed = true;
|
||||
hid_hal_mouse_move(hid_mouse->hid, 0, -MOUSE_MOVE_SHORT);
|
||||
} else if(event->type == InputTypeRepeat) {
|
||||
for(int32_t i = model->button_press_repeat_count; i > 1; i = i - 2)
|
||||
for(uint8_t i = model->acceleration; i > 1; i -= 2)
|
||||
hid_hal_mouse_move(hid_mouse->hid, 0, -MOUSE_MOVE_LONG);
|
||||
} else if(event->type == InputTypeRelease) {
|
||||
model->up_pressed = false;
|
||||
|
||||
Reference in New Issue
Block a user