Add Ploopyco functions for host state control (#23953)

This commit is contained in:
Victor 2024-10-10 22:27:15 -05:00 committed by GitHub
parent c8a87ff3fe
commit 27d68ef8b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 9 deletions

View File

@ -128,6 +128,16 @@ void encoder_driver_task(void) {
}
#endif
void toggle_drag_scroll(void) {
is_drag_scroll ^= 1;
}
void cycle_dpi(void) {
keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE;
eeconfig_update_kb(keyboard_config.raw);
pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]);
}
report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) {
if (is_drag_scroll) {
scroll_accumulated_h += (float)mouse_report.x / PLOOPY_DRAGSCROLL_DIVISOR_H;
@ -174,9 +184,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
}
if (keycode == DPI_CONFIG && record->event.pressed) {
keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE;
eeconfig_update_kb(keyboard_config.raw);
pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]);
cycle_dpi();
}
if (keycode == DRAG_SCROLL) {
@ -184,7 +192,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
is_drag_scroll = record->event.pressed;
#else
if (record->event.pressed) {
is_drag_scroll ^= 1;
toggle_drag_scroll();
}
#endif
}

View File

@ -37,3 +37,5 @@ enum ploopy_keycodes {
bool encoder_update_user(uint8_t index, bool clockwise);
bool encoder_update_kb(uint8_t index, bool clockwise);
void toggle_drag_scroll(void);
void cycle_dpi(void);

View File

@ -10,11 +10,11 @@
# Customizing your PloopyCo Device
There are a number of behavioral settings that you can use to help customize your experience
| | | |
|---------------------------------|-------------------|-----------------------------------------------------------|
| `PLOOPY_IGNORE_SCROLL_CLICK` | *__not_defined__* | Ignores scroll wheel if it is pressed down. |
| `PLOOPY_SCROLL_DEBOUNCE` | `5` | Number of milliseconds between scroll events. |
| `PLOOPY_SCROLL_BUTTON_DEBOUNCE` | `100` | Time to ignore scroll events after pressing scroll wheel. |
|Define |Default Value|Description |
|-------------------------------|-------------|---------------------------------------------------------|
|`PLOOPY_IGNORE_SCROLL_CLICK` |*Not defined*|Ignores scroll wheel if it is pressed down. |
|`PLOOPY_SCROLL_DEBOUNCE` |`5` |Number of milliseconds between scroll events. |
|`PLOOPY_SCROLL_BUTTON_DEBOUNCE`|`100` |Time to ignore scroll events after pressing scroll wheel.|
## DPI