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

View File

@ -37,3 +37,5 @@ enum ploopy_keycodes {
bool encoder_update_user(uint8_t index, bool clockwise); bool encoder_update_user(uint8_t index, bool clockwise);
bool encoder_update_kb(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 # Customizing your PloopyCo Device
There are a number of behavioral settings that you can use to help customize your experience There are a number of behavioral settings that you can use to help customize your experience
| | | | |Define |Default Value|Description |
|---------------------------------|-------------------|-----------------------------------------------------------| |-------------------------------|-------------|---------------------------------------------------------|
| `PLOOPY_IGNORE_SCROLL_CLICK` | *__not_defined__* | Ignores scroll wheel if it is pressed down. | |`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_DEBOUNCE` |`5` |Number of milliseconds between scroll events. |
| `PLOOPY_SCROLL_BUTTON_DEBOUNCE` | `100` | Time to ignore scroll events after pressing scroll wheel. | |`PLOOPY_SCROLL_BUTTON_DEBOUNCE`|`100` |Time to ignore scroll events after pressing scroll wheel.|
## DPI ## DPI