Skip to content

Commit

Permalink
Fix some broken mouse features and make mouse settings configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
malcx95 committed Aug 5, 2024
1 parent df993ec commit c4f63d9
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 10 deletions.
3 changes: 3 additions & 0 deletions core/firmware.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ void Firmware::update()
backlight.signal_failure();
}
loaded_keymap = true;

mouse_state.mouse_speed = settings.mouse_speed;
mouse_state.mouse_acceleration = settings.mouse_acceleration;
}
device.start_timer();
key_scanner.scan(keyboard_scan_result);
Expand Down
2 changes: 2 additions & 0 deletions core/keyboard/keymap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ void KeyMap::read_mouse_keys(const KeyboardScanResult& scan_result, MouseState&
bool middle = false;
bool right = false;

mouse.accelerated = false;

for (int i = 0; i < scan_result.num_pressed; ++i)
{
const auto key = scan_result.pressed[i];
Expand Down
2 changes: 1 addition & 1 deletion core/keyboard/keymap_loader.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "keymap_loader.h"
#include "keyutils.h"
#include "../util/buffer_utils.h"
#include <cstdint>
#include <stdint.h>


namespace core::keyboard
Expand Down
6 changes: 3 additions & 3 deletions core/keyboard/mouse.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ MouseMovement MouseState::get_movement() const
return {};
}

const int8_t acceleration = accelerated ? MOUSE_ACCELERATION_AMOUNT : 1;
const int8_t acceleration = accelerated ? mouse_acceleration : 1;

return {
true,
static_cast<int8_t>(dx * MOUSE_MOVE_DEFAULT_SPEED * acceleration),
static_cast<int8_t>(dy * MOUSE_MOVE_DEFAULT_SPEED * acceleration),
static_cast<int8_t>(dx * mouse_speed * acceleration),
static_cast<int8_t>(dy * mouse_speed * acceleration),
static_cast<int8_t>(wheel * MOUSE_WHEEL_DEFAULT_SPEED * acceleration)
};
}
Expand Down
8 changes: 5 additions & 3 deletions core/keyboard/mouse.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include <cstdint>
#include <stdint.h>


namespace core::keyboard
Expand Down Expand Up @@ -32,10 +32,9 @@ struct MouseMovement
};


// TODO make configurable
const int8_t MOUSE_ACCELERATION_AMOUNT = 2;

const int8_t MOUSE_MOVE_DEFAULT_SPEED = 1;
const int8_t MOUSE_MOVE_DEFAULT_SPEED = 5;
const int8_t MOUSE_WHEEL_DEFAULT_SPEED = 1;

class MouseState
Expand All @@ -59,6 +58,9 @@ class MouseState
wheel = 0;
}

int8_t mouse_speed = MOUSE_MOVE_DEFAULT_SPEED;
int8_t mouse_acceleration = MOUSE_ACCELERATION_AMOUNT;

private:
int8_t dx = 0;
int8_t dy = 0;
Expand Down
6 changes: 3 additions & 3 deletions device.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ enum class PinState

enum class DeviceMouseButton
{
LEFT = 0,
RIGHT = 1,
MIDDLE = 2,
LEFT = 1,
RIGHT = 2,
MIDDLE = 4,
};


Expand Down

0 comments on commit c4f63d9

Please sign in to comment.