László Monda
729e0be0ad
Make scrolling utilize mouse_kinetic_state_t, just like mouse movements. Fix scrolling issue by making distance float. Add new debug functions for ints and float.
2017-11-28 02:01:26 +01:00
László Monda
0867132ba3
Adjust the distance divisor from 10 to 1000 and other kinetic values accordingly.
2017-11-27 02:09:45 +01:00
László Monda
1b9273a5e5
Make processMouseKineticState() work with float x,y offsets to accumulate fractions.
2017-11-27 01:24:03 +01:00
László Monda
ebbd74407d
Extract code into processMouseKineticState() and add mouse_kinetic_state_t
2017-11-26 21:35:50 +01:00
László Monda
5df6220ab7
Slightly reorder mouse movement related variables.
2017-11-26 02:32:53 +01:00
László Monda
3d0993998c
Add double tap switch layer timeout.
2017-11-26 01:05:36 +01:00
László Monda
071be7e815
Implement "hold and double tap" layer switch mode and temporarily treat every hold mode keys this way.
2017-11-26 00:23:50 +01:00
László Monda
bb7faaa799
Make non-accelerated movements gradually accelerate from the start. Make all other movements and speed transitions immediate.
2017-11-24 22:49:39 +01:00
László Monda
368c724e6a
Fix the stuck state of the decelerate key that triggered once it was pressed.
2017-11-24 17:39:45 +01:00
László Monda
210ef31f27
Implement mouse movement acceleration and deceleration.
2017-11-24 13:00:05 +01:00
László Monda
0cb3c7e0ad
Implement horizontal scrolling.
2017-11-24 01:00:02 +01:00
László Monda
b68e8a736e
Make processMouseAction() handle acceleration and deceleration, even though I can't yet trigger these actions for some reason.
2017-11-23 01:54:54 +01:00
László Monda
4d211f0fe1
Reset mouseMoveCurrentSpeed when the mouse movement keys are no longer pressed, even if a mouse button key stays pressed due to drag and drop or selection purposes.
2017-11-22 02:34:37 +01:00
László Monda
8429ee2b71
Implement mouse acceleration.
2017-11-21 21:15:12 +01:00
László Monda
4bbc49f4ca
Clean up processMouseAction() by using floats instead of divisor values. Move MouseSpeed_* into mouse_speed_action_t
2017-11-21 19:01:59 +01:00
László Monda
d2ef63184b
Move updateUsbReports() from main.c to usb_report_updater.c and delete main.h
2017-11-17 01:21:30 +01:00
László Monda
a0afdcf476
Implement key debouncer.
2017-11-14 22:54:53 +01:00
László Monda
332f2a69fa
Set up the timer properly and introduce CurrentTime.
2017-11-12 17:33:23 +01:00
László Monda
c06b06ed1b
Make the secondary role work properly when a layer is set and when pressing the non-dual role key for long right after keeping the dual role key pressed.
2017-11-10 00:41:33 +01:00
László Monda
402697c0a3
Don't call applyKeyAction() when a secondary role is triggered because it'd output the scancode of the pressed key which is not the right thing when the secondary role is layer switching.
2017-11-09 22:26:44 +01:00
László Monda
4fa2304e4b
Suppress pressed keys upon layer switcher key release.
2017-11-07 02:21:36 +01:00
László Monda
f6beeecec1
Make local variables static.
2017-11-07 01:37:46 +01:00
László Monda
e3d4eb50db
Make secondary role layer switching work.
2017-11-07 00:30:40 +01:00
László Monda
31fa1a0d5e
Don't make secondary role stuck when holding a layer switcher even after releasing the dual role key.
2017-11-07 00:00:02 +01:00
László Monda
693315222f
Handle secondary role modifiers.
2017-11-06 18:11:05 +01:00
László Monda
c2a1a94349
Switch keymap only upon keypress.
2017-11-03 22:39:18 +01:00
László Monda
35b8f0084b
Don't put a zero scancode into ActiveUsbBasicKeyboardReport->scancodes[basicScancodeIndex++]
2017-11-03 22:32:10 +01:00
László Monda
0688c1bdfc
Rename keymaps.[ch] to keymap.[ch]
2017-11-03 19:01:56 +01:00
László Monda
4072a0ea33
Rename Keymap_Switch() to SwitchKeymap()
2017-11-03 18:59:58 +01:00
László Monda
e169627cde
Move updateLayerStates() and getActiveLayer() into the newly created layer.c
2017-11-03 18:53:17 +01:00
László Monda
aeb325a09f
Being static variables, lowercamelcase HeldLayers and PressedLayers.
2017-11-03 18:43:26 +01:00
László Monda
0df7879358
Get rid of the unused PreviousToggledLayer.
2017-11-03 18:42:04 +01:00
László Monda
bbbecb8f87
Handle layer toggle actions.
2017-11-03 18:29:17 +01:00
László Monda
05bbd28877
Maintain the states of previous key states.
2017-11-03 13:43:16 +01:00
László Monda
b18cb651ce
Leave the active layer active even if another layer switcher key gets pressed while holding it.
2017-11-03 12:49:55 +01:00
László Monda
88fac5c1ff
Rename key_matrix_instance.[ch] to right_key_matrix.[ch]
2017-11-03 03:30:14 +01:00
László Monda
fe2e611bb1
Update KeyStates[SlotId_RightKeyboardHalf] within usb_report_updater.c instead of main.c
2017-11-03 03:22:56 +01:00
László Monda
a0a162ae9e
Extend key states to include not only the current state but also the previous state and suppressed state.
2017-11-03 03:17:46 +01:00
László Monda
e0868ac866
Rename CurrentKeyStates to KeyStates and move it to the newly created key_states.[ch]
2017-11-03 02:46:34 +01:00
László Monda
2aaef66d85
Convert LAYER_ID_* macros to LayerId_* enum values.
2017-11-02 21:48:30 +01:00
László Monda
00dfd96d55
Instead of scanning the keyboard matrix from the main loop and utilizing busy loops, try to use a PIT interrupt handler to do the same thing, scanning one row per interrupt call without busy loops.
...
For some reason, this makes the movement of the mouse pointer very slow and makes it jump from time to time, so I ended up adding INTERRUPT_KEY_SCANNER and disabling the timer interrupt.
Also double bufferred the mouse report just like the others. Unfortunately this does not affect this issue.
2017-11-02 01:11:41 +01:00
László Monda
751810ec4c
Explicitly add void to the argument list of zero argument functions.
2017-09-28 03:03:11 +02:00
László Monda
430c02f0ed
Remove test actions and related code.
2017-08-19 13:32:02 +02:00
Eric Tang
ce84ac3e14
Implement part of the macro engine
2017-08-10 15:09:20 -07:00
Eric Tang
2621707206
Implement keymap switching
2017-08-08 12:10:26 -07:00
Eric Tang
599e701479
Rename current_keymap.* to keymaps.*
2017-08-08 12:03:13 -07:00
László Monda
01baa31241
Rename slave_driver_led_driver.[ch] to is31fl3731_driver.[ch]
2017-08-06 16:09:33 +02:00
László Monda
fef35bf68e
Rename slave_driver_uhk_module.[ch] to uhk_module_driver.[ch]
2017-08-06 16:06:40 +02:00
Eric Tang
1eb2a73753
Display the active layer
2017-07-14 13:28:48 -07:00
László Monda
7e5951162f
Make Alt+Tab keymapping and the like work as assumed.
2017-07-09 02:09:22 +02:00